프로덕션 환경을 위한 AWS Lambda 구성
AWS에서 애플리케이션 배포하기
Dunieski Otano
Amazon Web Services Solutions Architect
테스트에서는 작동했는데
함수가 모든 테스트를 통과했어요
하지만 프로덕션에서는 시간 초과와 스로틀링이 발생해요
코드는 문제없었지만 구성이 문제였어요
프로덕션에서 중요한 Lambda 구성
메모리
: CPU와 네트워크도 함께 확장돼요
시간 초과
: 함수가 종료되기까지의 최대 시간(초)
임시 스토리지
: /tmp의 임시 공간
동시성
: 동시에 실행되는 함수 수
메모리 크기와 CPU의 관계
메모리가 늘어나면
CPU도 비례해서 늘어나요
CPU 바운드 함수는 메모리가 높을수록 더 빠르게 실행돼요
실행 시간이 짧아지면
비용도 낮아질 수 있어요
추측이 아닌 테스트로 적정 크기를 찾으세요
동시성: 예약형 vs 프로비저닝형
예약된 동시성
최대 동시 실행 수를 제한해요
다운스트림 시스템과 다른 함수를 보호해요
프로비저닝된 동시성
인스턴스를 미리 준비해서 콜드 스타트가 없어요
지연 시간에 민감한 사용자 대상 함수에 적합해요
구성 패키징과 코드 공유
환경 변수
: 환경별 구성
레이어
: 함수 간 코드와 종속성을 공유
확장 기능
: 함수와 함께 실행되는 도구
구성 정보는 배포 패키지 밖에 두세요
Lambda를 VPC에 연결하기
내부 리소스에 접근하려면 Lambda를
프라이빗 서브넷
에 연결하세요
Lambda가 VPC 내에
ENI
를 생성해요
보안 그룹
이 접근 가능한 대상을 제어해요
외부 접근에는 NAT 또는 VPC 엔드포인트가 필요해요
대상과 DLQ로 실패 처리하기
비동기 호출은 실패 시
자동으로 재시도
돼요
Lambda Destinations
: onSuccess와 onFailure를 라우팅해요
데드레터 큐
: 끝내 성공하지 못한 이벤트를 포착해요
실패한 이벤트를 조용히 버리지 마세요
연습해 봅시다!
AWS에서 애플리케이션 배포하기
Preparing Video For Download...