Amazon Web Services 한국 블로그

AWS Lambda Managed Instances 출시 – 서버리스 운영 편리함 및 EC2 컴퓨팅 선택 옵션 동시 제공

오늘은 서버리스 운영의 단순성을 유지하면서 Amazon Elastic Compute Cloud(Amazon EC2) 컴퓨팅에서 AWS Lambda 함수를 실행하는 데 사용할 수 있는 새로운 기능인 AWS Lambda 관리형 인스턴스(Managed Instances)를 발표합니다. 이 개선 사항은 친숙하고 서버리스 개발 경험을 희생하지 않고도 전문 컴퓨팅 옵션에 액세스하고 안정적인 워크로드에 대한 비용을 최적화하는 등 고객의 주요 요구 사항을 해결합니다.

Lambda는 인프라 관리를 제거하지만 일부 워크로드에는 특정 CPU 아키텍처 또는 Amazon EC2 구매 약정을 통한 비용 최적화와 같은 특수 하드웨어가 필요합니다. 이러한 긴장으로 인해 많은 팀이 필요한 컴퓨팅 옵션 또는 가격 책정 모델에만 액세스하기 위해 Lambda의 서버리스 이점을 희생하면서 인프라를 직접 관리해야 합니다. 이로 인해 아키텍처가 크게 바뀌고 운영 책임이 커지는 경우가 많습니다.

Lambda 관리형 인스턴스
Lambda 관리형 인스턴스를 사용하여 Lambda 함수가 EC2 인스턴스에서 실행되는 방식을 정의할 수 있습니다. Amazon Web Services(AWS)는 사용자 계정에서 이러한 인스턴스를 설정하고 관리합니다. 최신 세대의 Amazon EC2 인스턴스에 액세스할 수 있으며 AWS는 인스턴스 수명 주기 관리, OS 패치 적용, 로드 밸런싱, 오토 스케일링과 같은 모든 운영 복잡성을 처리합니다. 즉, Amazon EC2 인프라 관리에 따른 운영 부담 없이 데이터 집약적 애플리케이션을 위한 고대역폭 네트워킹과 같은 특정 워크로드 요구 사항에 최적화된 컴퓨팅 프로필을 선택할 수 있습니다.

각 실행 환경은 한 번에 하나의 요청만 처리하는 대신 여러 요청을 처리할 수 있습니다. 이렇게 하면 코드가 각 간접 호출에 대해 별도의 실행 환경을 가동하는 대신 동시 요청 전반에서 리소스를 효율적으로 공유할 수 있기 때문에 컴퓨팅 소비를 크게 줄일 수 있습니다. Lambda 관리형 인스턴스는 컴퓨팅 절감형 플랜예약 인스턴스와 같은 Amazon EC2 약정 기반 요금 모델에 대한 액세스를 제공하며, 이를 통해 Amazon EC2 온디맨드 요금 대비 최대 72% 할인을 제공할 수 있습니다. 이를 통해 익숙한 Lambda 프로그래밍 모델을 유지하면서 안정적인 워크로드의 비용을 크게 절감할 수 있습니다.

직접 사용해 보기
Lambda 관리형 인스턴스를 사용해 보려면 먼저 용량 공급자를 생성해야 합니다. 다음 이미지에 표시된 것처럼, 탐색 창의 추가 리소스에 이러한 리소스를 생성할 수 있는 새 탭이 있습니다.

Lambda 관리형 인스턴스 콘솔

용량 공급자를 만들 때 가상 프라이빗 클라우드(VPC), 서브넷 구성 및 보안 그룹을 지정합니다. 용량 공급자 구성을 사용하면 인스턴스를 프로비저닝하고 관리할 위치를 Lambda에 알릴 수도 있습니다.

포함하거나 제외하려는 EC2 인스턴스 유형을 지정하거나 다양성이 높은 모든 인스턴스 유형을 포함하도록 선택할 수도 있습니다. 또한 최대 vCPU 수, 오토 스케일링을 사용할지 또는 CPU 정책을 사용할지 여부를 포함하여 오토 스케일링과 관련된 몇 가지 제어 항목을 지정할 수 있습니다.

용량 공급자를 구성한 후 새 Lambda 함수를 생성할 때 Amazon 리소스 이름(ARN)을 통해 이를 선택할 수 있습니다. 여기서는 메모리-VCPU 비율과 함께 원하는 메모리 할당을 선택할 수도 있습니다.

Lambda 관리형 인스턴스 사용하기
이제 기본 설정을 살펴보았으니 Lambda 관리형 인스턴스의 작동 방식을 더 자세히 살펴보겠습니다. 이 기능은 사용자가 Lambda 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWS CloudFormation, AWS Serverless Application Model(AWS SAM), AWS Cloud Development Kit(AWS CDK)Terraform과 같은 코드형 인프라(IaC) 도구를 통해 구성한 용량 공급자로 EC2 인스턴스를 구성합니다. 각 용량 공급자는 인스턴스 유형, 네트워킹 구성, 확장 파라미터를 포함하여 필요한 컴퓨팅 특성을 정의합니다.

용량 공급자를 생성할 때 최신 세대의 EC2 인스턴스 중에서 워크로드 요구 사항에 맞게 선택할 수 있습니다. 비용 최적화된 범용 컴퓨팅의 경우, 뛰어난 가격 성능을 제공하는 AWS Graviton4 기반 인스턴스를 선택할 수 있습니다. 어떤 인스턴스 유형을 선택해야 할지 확실하지 않은 경우, AWS Lambda는 함수 구성을 기반으로 성능과 비용의 균형을 맞춘 최적화된 기본값을 제공합니다.

용량 공급자를 생성한 후 간단한 구성 변경을 통해 Lambda 함수를 여기에 연결합니다. 함수를 연결하기 전에, 코드를 검토하여 요청별로 고유하지 않은 파일 경로에 쓰기 또는 읽기, 간접 호출 간에 공유 메모리 공간 및 변수 사용 등 다중 동시성 환경에서 문제를 일으킬 수 있는 프로그래밍 패턴이 있는지 확인해야 합니다.

Lambda는 인스턴스의 사전 프로비저닝된 실행 환경으로 요청을 자동으로 라우팅하여 첫 번째 요청 지연 시간에 영향을 줄 수 있는 콜드 스타트를 없앱니다. 각 실행 환경은 다중 동시성 기능을 통해 여러 개의 동시 요청을 처리하여 함수 전반의 리소스 활용도를 극대화할 수 있습니다. 트래픽이 증가하는 동안 추가 용량이 필요한 경우, AWS는 수십 초 내에 자동으로 새 인스턴스를 시작하여 용량 공급자에게 추가합니다. 용량 공급자는 기본적으로 확장할 필요 없이 최대 50%의 트래픽 스파이크를 흡수할 수 있지만, 내장 회로 차단기는 용량 공급자가 프로비저닝된 최대 용량에 도달하고 추가 용량이 아직 준비 중일 때 429 상태 코드와 함께 요청을 일시적으로 제한하여 극한의 트래픽 급증 시 컴퓨팅 리소스를 보호합니다.

운영 및 아키텍처 모델은 이 프로세스 전반에 걸쳐 서버리스 상태로 유지됩니다. AWS는 인스턴스 프로비저닝, OS 패치, 보안 업데이트, 인스턴스 간 로드 밸런싱, 수요에 따른 자동 조정을 처리합니다. AWS는 대개 실행 중인 애플리케이션을 중단하지 않고 운영 체제 및 런타임 구성 요소에 보안 패치와 버그 수정을 자동으로 적용합니다. 또한 인스턴스의 수명은 업계 보안 및 규정 준수 표준에 따라 최대 14일입니다. 자동 조정 정책을 작성하거나, 로드 밸런서를 구성하거나, 인스턴스 수명 주기를 직접 관리할 필요가 없으며 함수 코드, 이벤트 소스 통합, AWS Identity and Access Management(AWS IAM) 권한, Amazon CloudWatch 모니터링은 변경되지 않습니다.

지금 사용 가능
Lambda 콘솔, AWS CLI 또는 AWS SDK를 통해 지금 바로 Lambda 관리형 인스턴스를 사용할 수 있습니다. 이 기능은 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오리건), 아시아 태평양(도쿄) 및 유럽(아일랜드) 리전에서 사용할 수 있습니다. 리전별 가용성 및 향후 로드맵은 리전별 AWS 기능을 참조하세요. AWS Lambda 설명서에서 자세히 알아보세요.

Lambda 관리형 인스턴스 요금에는 세 가지 구성 요소가 있습니다. 첫 번째로, 간접 호출 1백만 건당 $0.20의 표준 Lambda 요청 요금을 지불합니다. 두 번째로, 프로비저닝된 컴퓨팅 용량에 대한 표준 Amazon EC2 인스턴스 요금을 지불합니다. 컴퓨팅 절감형 플랜 및 예약 인스턴스를 비롯한 기존 Amazon EC2 요금 계약을 이러한 인스턴스 요금에 적용하여 안정적인 상태에 있는 워크로드의 비용을 줄일 수 있습니다. 세 번째로, AWS의 인스턴스 운영 관리를 위해 EC2 온디맨드 인스턴스 가격을 기준으로 계산된 15%의 컴퓨팅 관리 수수료를 지불합니다. 참고로, 기존 Lambda 함수와 달리 요청당 실행 기간에 대해 별도로 요금이 청구되지 않습니다. 다중 동시성 기능은 요청을 처리하는 데 필요한 총 컴퓨팅 시간을 줄여 비용을 더욱 최적화하는 데 도움이 됩니다.

초기 릴리스는 최신 버전의 Node.js, Java, .NET 및 Python 런타임을 지원하며 다른 언어에 대한 지원도 곧 제공될 예정입니다. 이 기능은 함수 버전 관리, 별칭, AWS CloudWatch Lambda Insights, AWS AppConfig 확장, AWS SAM 및 AWS CDK와 같은 배포 도구를 비롯한 기존 Lambda 워크플로와 통합됩니다. (다중 동시성을 위한 스레드 안전성이 검증된 경우) 함수 코드를 변경하지 않고도 기존 Lambda 함수를 Lambda 관리형 인스턴스로 마이그레이션할 수 있으므로 특수 컴퓨팅 또는 비용 최적화의 혜택을 받을 수 있는 워크로드에 이 기능을 쉽게 채택할 수 있습니다.

Lambda 관리형 인스턴스는 Lambda 기능이 크게 확장되었음을 나타냅니다. 즉, 서버리스 운영 모델을 유지하면서 더 광범위한 워크로드를 실행할 수 있습니다. 트래픽이 높은 애플리케이션의 비용을 최적화하든, Graviton4와 같은 최신 프로세서 아키텍처에 액세스하든, 이 새로운 기능은 운영상의 복잡성 없이 필요한 유연성을 제공합니다. Lambda 관리형 인스턴스로 무엇을 구축할지 기대됩니다.