다양한 회사들의 데이터 파이프라인 설계 문서를 보면, Lambda나 이것 저것 클라우드 서버리스 서비스를 사용한 것을 많이 보았다!
우리 학교에 멘토링 와주신 GS 데엔 분도, 서비스 설계 문서를 블러 처리해서 보여주셨는데 다 보이잖아!! ㅋㅋㅋ
그래서 궁금하던 중 ! 전에 회사에서 내게 GCP Cloud Run과 App Engine의 비교 테스팅을 맡겨 주시면서,
아 이런 세계가 있구나와 동시에 서비스에 대한 이해가 필요하겠다 싶었다!
그 당시 뜨문뜨문 정리해둔 것을 바탕으로 다시 짚고 넘어가보자 🧐
Serverless란?
- Server + Less == 서버가 없다 ?? 👉 NO
- 클라우드 컴퓨팅의 모델 중 하나로 사용자가 "서버를 직접 관리할 필요가 없는 모델"을 의미
- 인프라적 고민을 자동화
- 서버리스는 동적으로 서버의 자원을 할당하고, 사용자는 그 부분 만큼만 비용을 지불
- 사용자가 없다면 자원을 할당하지 않고 대기하다가 요청이 들어오면 그 때 자원을 할당해서 요청을 처리 후 다시 대기 상태로 돌ㄹ아간다. 사용자가 없다면 자원을 할당하지 않고, 대기하다가 요청이 들어오면 그 때 자원을 할당해서 요청을 처리하고, 다시 대기 상태로 들어가게 된다 ▶︎ 자원을 효율적으로 사용
서버리스의 장단점
장점
- 어떠한 서버에서 애플리케이션이 24시간동안 계속 돌아가고 있다.
- 애플리케이션의 품질과 비즈니스에 집중 가능
- 세분화된 요금 체계로 실제 사용한 컴퓨팅 리소스에 대해서만 비용 지불 ▶︎ 경제적
- 높은 가용성과 유연한 확장
단점
- Cold Start
- 클라우드 제공 플랫폼에 심하게 종속적
- 장기적인 작업에는 적합하지 않음
- 사용할 수 있는 자원 제한적
Serverless의 FaaS 와 BaaS
1. FaaS (Function as a Service)
- 함수를 서비스로 제공
- 프로젝트를 여러 개의 함수로 쪼개서, 코드를 쓰면, 인프라가 런타임 환경을 제공하고, 코드를 로드해서 실행하여, Runtime 라이프 사이클을 제어하는 작업을 담당
- WebHoook, HTTP 요청, Stream, Storage Bucket, DB 등 다른 구성요소와 통합되어 서버리스 애플리케이션 형성
- 주기적으로 실행되게 설정 가능 (5분마다, 1시간 마다, 하루마다) ▶︎ 크롤링 작업, 주기적인 처리 등 가능
- 관련 서비스
- AWS Lambda
- Microsoft Azure Functions
- Google Cloud Function
- IBM Cloud Function
- Oracle Clooud Functioon
2. BaaS (Backend as a Service)
- 애플리케이션 개발 시 요구되는 복잡한 백엔드 기능들을 개발자가 직접 개발하지 않고 클라우드 공급자가 제공하는 서비스를 이용해 쉽고 안정적으로 구현하는 것
- 서비스 제공자로부터 미리 만들어진 백엔드 API로 제공하는 서비스
- 서버 확장 작업의 불필요함, 개발 시간의 단축
3. PaaS (Platform as a Service)
4. CaaS (Container as a Service)
Cloud Function
- 사용한 만큼만 지불하는 확장 가능한 서비스
- FaaS
- 서버나 컨테이너 관리 불필요
- 이벤트에 대한 응답으로 코드 실행 (코드를 트리거하거나 원하는 웹, 모바일 또는 백엔드 애플리케이션에서 http를 통해 바로 코드 호출 가능)
- Pub/Sub 메시지 큐에서 들어오는 메시지
- Firebase 모바일 SDK에 의해서 발생되는 이벤트
- Google Cloud Storage 서비스에 의해서 파일이 생성, 수정, 삭제 되었을 때
- HTTP로 들어오는 요청(REST API)
- 목적 : 적은 데이터 처리량, 짧은 실행시간, 많은 자원을 할당하지 않는 간단한 서비스
- 사용 사례
할당량 | Cloud Functions 문서 | Google Cloud
의견 보내기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 할당량 이 문서에서는 Google Cloud Functions의 할당량 한도를 설명합니다.여기에 나온 기본값 이상
cloud.google.com
Cloud Run
- 확장 가능한 인프라에서 직접 컨테이너를 실행할 수 있게 해주는 관리형 컴퓨팅 플랫폼
- 컨테이너화된 애플리케이션을 위한 관리형 런타임 환경
- CaaS
- 완전 관리형 플랫폼
- 장점
- 모든 서비스의 고유 HTTPS 엔드포인트
- 빠른 요청 기반 자동 확장
- 트래픽 관리
- 컨테이너 워크 플로 및 표준 활용
- Cloud Build, Cloud Code, Artifact Registry, Docker과 페어링
- 목적 : 많은 데이터 처리량, 다른 서비스에 요청할 때 데이터 양이 큰 서비스, 로깅이 필요한 서비스
App Engine
- 구글 클라우드 플랫폼에서 구동되는 웹 프레임워크
- 웹 어플리케이션 등을 쉽게 개발/배포/관리 할 수 있는 서버리스 플랫폼
- PaaS
- HTTP/HTTPS 요청을 처리하는 서비스
- 완전 관리형 서비스
- 장점
- 쉽고 간단하다
- EC2를 사용하여 구축 시, 여러개의 설정 필요, 추가 배포, 앱이 죽었는지 살았는 지 Health Check 필요
- 구글 앱엔진은 필요 없다 -> Load Balancer 과 Scale 설정은 간단한 옵션으로 관리
- 인스턴스가 죽으면 해당 인스턴스를 자동 재시작
- 무중단 서비스
- Blue Green Deployment
- 새로운 앱을 배포하면 앱엔진 내부에서 새로운 앱을 배포한 후 라우팅을 새로운 앱으로 돌림
- 서버리스
- 개발자가 서버 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있는 클라우드 네이티브 개발 모델
- 배포를 위해 코드를 컨테이너에 패키징만 하면 되고, 클라우드 제공업체가 서버 인프라에 대한 프로비저닝, 유지 관리, 스케일링 등 일상적인 작업 처리
- 쉽고 간단하다
- 목적 : 많은 데이터 처리량, 다른 서비스에 요청할 때 데이터 양이 적은 서비스
참고 블로그
1. 서버 리스
https://cloud.google.com/serverless?hl=ko
서버리스 | Serverless computing | Google Cloud
Google Cloud 서버리스를 사용하면 완전 관리형 엔드 투 엔드 서버리스 플랫폼에서 기능과 애플리케이션을 빌드하고 배포할 수 있습니다.
cloud.google.com
https://www.samsungsds.com/kr/insights/1232763_4627.html
클라우드 패러다임의 전환: 서버리스 컴퓨팅
클라우드 패러다임의 전환: 서버리스 컴퓨팅
www.samsungsds.com
https://tibetsandfox.tistory.com/4
서버리스(Serverless)의 개념
서버리스(Serverless)란? 서버리스는 클라우드 컴퓨팅의 모델 중 하나로 사용자가 서버를 직접 관리할 필요가 없는 모델을 의미합니다. 여기서 서버를 직접 관리할 필요가 없다는 의미는 IaaS와 같
tibetsandfox.tistory.com
인프라 운영을 쉽게 만들어주는, '서버리스 컴퓨팅'이란? - wishket
이번 시간 IT 아웃소싱 플랫폼, 위시켓은 서버리스 컴퓨팅에 대해 집중적으로 알아보고자 합니다. 개발을 더 쉽게, 운영비용을 더 저렴하게 만들고 싶으시다면 주목해 주세요:)
blog.wishket.com
[WEB] 🌐 서버리스(ServerLess) 개념 💯 정리 (BaaS / FaaS)
서버리스 아키텍쳐 란? 서버리스(Serverless)는 직역하면 "서버가 없다"라는 뜻이 된다. 하지만 정말로 서버가 없는 것을 뜻하는게 아니다. 서비스를 하는데 있어 어찌되었든 저장소는 필요하고 서
inpa.tistory.com
2. 앱엔진
https://dev.wisedog.net/2018/04/22/introduce-google-cloud-app-engine-1/
구글 앱 엔진 소개
구글 앱 엔진(Google App Engine)은 구글 클라우드 플랫폼에서 구동되는 ౯
dev.wisedog.net
https://cheony-y.tistory.com/280
[Cloud] Google app engine에 대하여
Q. Google App Engine? Google App Engine이란 Google 인프라스트럭쳐를 이용하여 원하는 웹 어플리케이션 등을 쉽게 개발 / 배포 / 관리 할 수 있는 Cloud Computing을 지원하는 서버리스 플랫폼입니다. HTTP / H..
cheony-y.tistory.com
3. 클라우드 런
https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ko
Cloud Run이란 무엇인가요? | Cloud Run 문서 | Google Cloud
의견 보내기 Cloud Run이란 무엇인가요? 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Cloud Run은 Google의 확장 가능한 인프라에서 직접 컨테이너를 실행할 수
cloud.google.com
https://intrepidgeeks.com/tutorial/gcp-difference-between-application-engine-and-cloud-operation
[GCP] App Engine과 Cloud Run의 차이점
goo에서 웹 서비스 No.4(GAE로 디버깅) 명령행을 사용하는 작업이 나타나는 경우가 있습니다.cd,ls,mkdir,touch 등 기본 명령은 제가 아는 전제에서 진행할 수 있도록 해 주세요. 환경에 따라 작업과 실
intrepidgeeks.com
'Cloud & Infra & Tool > GCP' 카테고리의 다른 글
[GCP] Cloud Pub/Sub에 대해 알아보자! (Message Queue) (0) | 2022.10.23 |
---|