안녕하세요! 오늘은 람다와 파게이트에 대한 포스팅입니다.
람다와 파게이트는 서버리스 바운더리에서 같은 내용이지만, 다른 쓰임새를 가지고 있는데 내용 한번 살펴보겠습니다.
그럼 람다, 파게이트는 언제 사용할까?
1. 람다와 파게이트
Lambda를 선택해야 하는 경우
- 이벤트 기반 워크로드가 있는 경우, 즉 애플리케이션이 이벤트에 대한 작업을 트리거해야 하는 경우입니다.
- 애플리케이션에 알 수 없는 수요를 처리하는 기능이 필요한 경우.
- 플릿 상태 모니터링, 기본 컴퓨팅 리소스에 보안 패치 적용, 코드 모니터링 및 로깅 등과 같은 관리되는 운영 및 관리 활동이 필요한 경우
- 관리형 프로비저닝, 용량 확장, 고가용성 및 활용도가 필요할 때.
- 애플리케이션 배포 패키지 크기가 50MB 이하이고 실행 시간이 15분 이하인 경우.
- 비용 최적화에 중점을 둘 때.
Lambda는 이벤트에 의해 트리거되는 컴퓨팅 애플리케이션을 위해 설계되었습니다. 예를 들어 SNS 메시지 수신, API 호출, S3 객체 업데이트 시, 크론 작업 등이 있습니다.
Fargate를 선택해야 하는 경우
- 애플리케이션이 지연 시간에 민감한 경우.
- 애플리케이션에 컨테이너 간 통신이 필요하거나 스토리지 집약적일 때.
- 장기 실행 예약 작업(>15분)에 대한 지원이 필요한 경우.
- 애플리케이션이 예측 가능한 높은 고객 트래픽을 제공하는 경우.
- 런타임 환경에서 더 많은 선택이 필요한 경우.
- 대규모 / 일괄 워크로드가 있고 더 적은 작업 로드를 찾고 있는 경우.
- 컴퓨팅 인스턴스에 대한 완전한 제어는 필요하지 않지만 컴퓨팅 환경(CPU 및 메모리 구성)에 대한 제어가 필요한 경우.
스트리밍, 고주파수 폴링 또는 캐싱 응용 프로그램은 하드웨어를 직접 관리할 필요 없이 데이터의 더 긴 라이브 지속성을 허용하는 Fargate에 매우 적합합니다.
의사 결정 모델은 다음과 같습니다.
2. 람다와 파게이트 의사결정 모델
하기 내용은 Fargate와 Lambda의 성능에 대한 테스트 결과 비교 수치입니다.
- AWS Fargate는 AWS Lambda보다 일관되게 약간 더 빠릅니다.
- 초당 요청을 늘렸을 때 AWS Fargate에서 높은 요청 실패율을 발견했습니다. 이는 Fargate가 확장하는 데 더 오래 걸리기 때문일 수 있습니다.
Fargate 시작 시간이 느릴 수 있습니다.
3. 람다와 파게이트 성능 비교
초기 워밍업 결과
워밍업 후 결과
응답 시간
fargate와 lambda의 대역폭 차이에 대해서 테스트하고 올려놓은 자료가 있어서 공유 드립니다.
vCPU가 증가함에 따라서 반드시 비례하게 증가하는 것은 아닌 것으로 보이며,
일부 Task의 경우, vCPU가 1일때 10Gbps까지 버스트 하였던 것을 확인하실 수 있습니다.
Results (Fargate)
Results (Lambda)
참조 링크 : https://github.com/sjakthol/aws-network-benchmark
- Lambda 함수는 초기에 1.7Gbps까지 작은 버스트와 함께 안정적인 600Mbps 네트워크 처리량을 보이는 것으로 보입니다.
만약 실시간으로 영상에 대한 인코딩이 필요하신 내용이 아니라면, step function을 사용하시는 것도 선택지가 될 것 같습니다. 실패시 다른 람다 함수 호출해서 fargate 쪽으로 명령어 실행하는 로직도 구현이 가능합니다.
참조 링크 : https://aws.plainenglish.io/system-design-choosing-between-aws-lambda-and-aws-fargate-d586f28da34
https://www.learnaws.org/2019/09/14/deep-dive-aws-fargate/
https://greenm.io/aws-lambda-or-aws-fargate/
'IT > AWS' 카테고리의 다른 글
AWS 보안 그룹 인바운드룰 sdk / awscli를 통해 추가하기 (0) | 2022.07.15 |
---|---|
EC2 CPU Steal (0) | 2022.02.25 |
aws efs vs ebs (0) | 2022.01.25 |
AWS S3 Pre-signed URL 완벽 가이드 (0) | 2022.01.13 |
Aws Cloudwatch와 EC2 내부 CPU 사용량 차이 (0) | 2022.01.09 |