사전지식
- vCPU초
보통 1Ghz 당 1초 기준으로 산정
인스턴스 실행 시 1Ghz만큼의 CPU 점유가 발생하는 경우 1초이고, 0.25Ghz면 4초가 됨
24만 Ghz초면 1Ghz일 경우 24만초, 0.25Ghz일 경우 96만초가 됨
- 메모리 GB초
보통 1GB당 1초 기준으로 산정
인스턴스 실행 시 1GB만큼의 메모리 점유가 발생하는 경우 1초, 256MB면 4초가 됨
45만 GB초면 1GB일 경우 45만초, 256MB일 경우 180만초가 됨
AWS Lambda
AWS에서 제공하는 대표적인 서버리스 서비스
람다 함수는 아마존 S3로의 객체 업로드, 아마존 SNS 알림, API 동작과 같은 이벤트에 반응하여 실행됨
람다 함수는 자동으로 500MB의 임시 스크래치 디렉터리를 받으며
영구 상태를 위해 아마존 S3, 아마존 다이나모 DB 및 기타 인터넷 스토리지 서비스를 사용할 수 있음
람다 함수는 아마존 리눅스에서 지원되는 모든 언어를 사용해서 프로세스를 실행하고 라이브러리를 호출 할 수 있다
지원 언어
파이썬 / NodeJS / 루비 / 자바 / C# / 파워 셸 / Go
비용
프리티어의 경우 1GB 메모리 환경에서 월 100만 건 / 40만 GB초의 실행 시간을 무료 제공
프리티어에는 요청 당 6MB를 초과하는 월 100GB의 HTTP 응답 스트리밍까지 포함
단, 다른 지역에 실행중인 스토리지 서비스 간 데이터 전송 시 수수료 발생 가능
무료 사용량 초과후 요청 당 0.0000002 달러 / 컴퓨트 시간 GB초 0.00000025 달러 (메모리 1GB 시 1초당 0.00000025달러)
스펙
최대 실행 시간 900초/15분
메모리 기본 128MB, 최대 3008MB까지 할당량 지원
환경변수 크기 최대 4KB
장점
AWS가 인프라를 관리해주기 때문에 개발자가 코드에만 집중할 수 있다
트래픽이 몰리면 자동으로 확장해주기 때문에 안정적으로 서비스를 제공할 수 있다
다양한 언어를 지원한다
다양한 AWS 서비스와 통합되어 있어, 람다 함수를 확장할 수 있다
- AWS 람다 엣지
아마존 클라우드 프론트 CDN 이벤트에 대응해 200개 이상의 AWS 엣지 위치에서 람다 함수를 실행할 수 있게 해준다
- AWS SAM (AWS Serverless Application Model)
서버리스 애플리케이션 및 서비스를 모델링하고 배포할 수 있도록 해주는 서버리스 애플리케이션 모델
- AWS 서버리스 애플리케이션 레포지터리
서버리스 애플리케이션과 애플리케이션 구성요소를 찾아서 재사용할 수 있게 해줌
아마존 클라우드 워치를 통해 모니터링이 가능하고, 아마존 X-Ray를 통해 분석 및 디버깅까지 지원
단점
함수가 처음 시작될 때 초기화가 필요하므로 응답 시간이 늦어질 수 있다
> 이를 해결하기 위해 람다는 함수를 미리 초기화 해놓는 웜 스타트 라는 매커니즘을 제공
로깅 및 디버깅 기능이 제한적이므로 별도의 서비스를 사용해야한다
함수를 실행할 수 있는 지역이 제한적이어서 특정 리소스를 사용할 수 없는 경우가 있다
MS Azure Function
복잡한 오케스트레이션 문제를 해결할 수 있는 이벤트 기반의 서버리스 컴퓨팅 플랫폼
클라우드에서 대규모로 설정, 배포, 운영할 필요없이 로컬에서 애저 펑션을 구축하고 디버깅 가능
트리거와 바인딩을 통해 서비스를 통합할 수 있다
지원 언어
C# / 자바 / 자바스크립트 / 파워셸 / 파이썬 / 타입스크립트
비용
월 100만 건 / 40만 GB초의 실행 시간을 무료 제공
유연한 사용량 플랜의 경우 25만 건 / 10만 GB초의 실행 시간을 무료 제공
콜드 부팅 없이 향상된 성능을 제공하는 프리미엄 플랜이 따로 존재
다른 Azure 클라우드 지역으로의 데이터 이동에 대해 요금을 부과하지 않음
무료 사용량 초과 후 100만 요청 당 0.2달러 / 실행시간 GB 당 0.000004 달러 (1GB 메모리 기준 초당 0.000004 달러)
https://azure.microsoft.com/ko-kr/pricing/details/functions/
스펙
http 요청 최대 2.5분 / 이벤트 실행 최대 10분
장점
Azure가 인프라 관리를 담당하기 때문에 개발자는 코드에만 집중할 수 있음
이벤트 기반 트리거로 필요에 따라 자동으로 확장되어 안정적으로 서비스 제공 가능
다양한 언어를 지원
Azure 서비스와 통합하여 기능 확장 가능
단점
함수가 처음 시작될 때 초기화가 필요하므로 응답 시간이 늦어질 수 있다
> 프리미엄 서비스를 이용하거나 듀어러블 펑션이라는 확장 프로그램을 통해 스테이트 풀 워크 플로우 정의 가능
10초에 하나의 function app 인스턴스가 생성되며 최대 200개의 인스턴스를 생성할 수 있기 때문에 호출이 많이 들어오면 처리를 못할 수 있다
Google Cloud Function
구글에서 제공하는 확장 가능한 종량제 FaaS 플랫폼
모니터링, 로깅, 디버깅 기능이 통합되어 있으며 역할 및 함수 수준에서의 보안을 내장함
하이브리드 클라우드와 멀티 클라우드 시나리오를 위한 주요 네트워킹 기능을 제공
트리거를 통해 구를 클라우드 또는 서드파티 클라우드 서비스에 연결하여 까다로운 오케스트레이션 문제를 원활하게 해결
지원 언어
Go / 자바 / nodeJS / 파이썬
비용
월 200만 건 / 메모리 40만 GB초, CPU 20만 Ghz초의 실행 시간, 5GB 아웃바운드 트래픽 무료 제공
무료 제공 초과 후 요청 당 0.0000004 달러 / 컴퓨트 시간 GB당 0.00001667 달러 (1GB 메모리 기준 초당 0.00001667 달러)
https://cloud.google.com/functions/pricing?hl=ko
스펙
http 요청 최대 60분 / 이벤트 기반 함수 최대 9분
장점
일반적인 http 요청 및 클라우드 인프라에서의 이벤트 처리를 위한 백그라운드 함수 지원
클라우드 펑션의 자동 테스트 및 배포를 위한 클라우드 빌드 제공
깃허브, 비트버킷, 클라우드 소스 레포지터리와 같은 소스 코드 레포지터리와 연동하여 사용 가능
로컬 시스템에서 클라우드 펑션을 개발하고 배포 가능
GCP의 기능들과 연계 가능
단점
지원하는 언어가 적은 편이다
Google Cloud Run
컨테이너를 기반으로 서버리스를 제공하는 서비스
클라우드 펑션의 경우 함수를 직접 올리지만, 클라우드 런은 컨테이너를 올리기 때문에 언어에 대한 제약이 없으며, 컨테이너로 구동 가능한 어떤 것이든 서비스가 가능하다
지원언어
모든 언어
스펙
각 태스크 당 최대 10분 간 실행 가능
비용
200만 요청 / 메모리 45만 GB초 / CPU 24만 GHz 초 제공
무료 시간 초과 시 vCPU 1코어 사용 시간 초당 0.000018 달러 / 메모리 1GB 초당 0.000002 달러
https://cloud.google.com/run/pricing?hl=ko
장점
컨테이너를 사용하기 때문에 언어나 환경에 대한 제약이 적다
애플리케이션이나 웹 서비스를 서버리스로 배포할 수 있다
단점
다른 함수형 서버리스 서비스에 비해 비용이 비싸다 (인프라 빌리는 것보다는 훨씬 저렴함)
기타 서비스
- IBM 클라우드 펑션
- 오라클 클라우드 펑션
=> 이 둘은 자료도 적고 인지도가 낮기 때문에 차후 사용할 일이 있다면 정리해보도록 하겠다...
Preference
'Devops > DevOps' 카테고리의 다른 글
무료 DDNS 만들기 (0) | 2024.08.17 |
---|---|
Modular Monolithic Architecture (MMA) (0) | 2024.08.17 |
데브옵스 통합 과정에서 벌어지는 10가지 실수 (0) | 2024.06.26 |
뽑지 말아야할 CTO (0) | 2024.04.27 |
데브섹옵스 실현을 위한 '정적 보안 테스팅 (SAST)' (0) | 2024.04.27 |