본문 바로가기
서버/SAA-C03

[SAA-C03] 람다 함수의 주요 사항

by jamong1014 2024. 5. 27.
반응형

사례

한 전자 상거래 기업의 엔지니어링 팀에 인프라를 서버리스 아키텍처로 마이그레이션하는 업무가 주어졌습니다. 엔지니어링 팀은 Lambda를 아키텍처 백본(backbone)으로 사용할 때 고려해야 할 주요 사항에 초점을 맞추고 있습니다.

솔루션 아키텍트의 관점에서 다음 중 주어진 요구 사항에 대해 맞게 설명한 것은 무엇입니까? (3개를 고르시오.)

 

본론

기본적으로 Lambda 함수는 항상 AWS 소유의 VPC에서 동작하기 때문에 공용 인터넷 주소나 공용 AWS API에 접근할 수 있다. Lambda 함수가 VPC를 사용하도록 설정되어 있다면 퍼블릭 서브넷에서 NAT 게이트웨이를 통해 라우팅하여 퍼블릭 리소스에 접근해야 한다.

말 그대로 VPC를 연결하지 않은 일반적인 경우에는 퍼블릭 리소스에 접근할 수 있으나 VPC를 연결하게 되면 공용 인터넷 주소에 액세스하지 못한다.

함수에 VPC가 활성화되면 함수에서 나오는 모든 네트워크 트래픽은 VPC/서브넷의 라우팅 규칙을 따르게 된다. 함수가 공용 리소스와 상호작용을 해야 한다면 퍼블릭 서브넷의 NAT 게이트웨이를 통한 라우트가 필요하다.

 

 

Lambda 함수는 아주 빠르게 늘어날 수 있기 때문에 동시 실행(Concurrent Executions) 또는 동시 호출과 같은 함수 지표가 예상 임계값을 초과했을 때 팀에게 알려줄 수 있도록 CloudWatch 경보를 배포하는 것이 좋다.

람다 함수는 매우 빠르게 스케일링할 수 있기 때문에 동시성이 급증하면 알림을 받을 수 있는 통제장치를 해두어야 한다. ConcurrentExecutions 또는 Invocations 같은 함수 지표가 한계치를 초과하면 팀에게 알리는 CloudWatch 알람을 배포하는 것이 좋다. 매일 비용을 모니터링할 수 있도록 AWS Budget을 생성해야 함

 

둘 이상의 Lambda 함수에서 코드를 재사용할 거라면 코드 재사용이 가능한 Lambda 계층 생성을 고려해야 한다.

람다 함수를 구성하여 레이어 형태로 된 추가적인 코드와 콘텐츠를 가져올 수 있다. 레이어는 라이브러리, 커스텀 런타임 또는 기타 의존성이 포함되어 있는 ZIP 아카이브이다. 레이어를 사용하면 배포 패키지에 넣지 않고도 함수에서 라이브러리를 사용할 수 있다. 레이어를 사용하면 배포 패키지의 크기를 작게 유지하여 개발이 더 쉬워진다. 함수는 한 번에 레이어를 5개까지 사용할 수 있음.


Lambda는 함수에 할당된 메모리 크기에 비례하여 컴퓨팅 성능을 할당하기 때문에 AWS는 Lambda 함수가 제 성능을 낼 수 있도록 함수 제한 시간 설정값을 오버 프로비저닝하는 것을 권장한다.

이 지문은 틀린 지문이다.

람다는 함수에 할당한 메모리에 비례하여 연산력을 할당한다. 따라서 더 빠르게 함수를 실행하고 비용도 절약할 수 있도록 메모리를 오버프로비저닝할 수 있다. 그러나 AWS는 여러분이 함수 타임아웃 설정을 오버프로비저닝하지 않도록 권장한다. 함수 타임아웃을 오버프로비저닝하면 종종 람다 함수가 예상보다 오래 실행되고 예상치 못한 비용이 유발될 수 있다.

 

서버리스 아키텍처와 컨테이너는 서로를 보완하지만 Lambda 함수를 컨테이너 이미지로 패키징하여 배포할 수는 없다.

이 지문도 틀린 지문이다.람다 함수를 컨테이너 이미지로서 패키징하고 배포할 수 있다.

 

배포 패키지가 커질수록 Lambda 함수가 느려져 콜드 스타트(Cold Start)가 발생한다. 따라서 AWS에서는 의존성을 실제 Lambda 패키지와 분리하여 별도 패키지로 패키징하는 것을 권장한다.

여기서 콜드 스타트(Cold Start)는 처음 실행될 때 발생하는 지연 현상을 의미한다.

모든 의존성도 하나의 람다 배포 패키지에 패키징 된다.

반응형

댓글