본문 바로가기

AWS

[AWS] Lambda Managed Instances 구성 방법 가이드

반응형

AWS Lambda Managed Instances는 기존 Lambda가 가진 서버리스의 단순함은 그대로 유지하면서, EC2 인스턴스에서 Lambda 함수를 실행할 수 있도록 제공되는 새로운 실행 모델입니다.
Lambda의 자동 운영·스케일링·패치 관리 기능을 그대로 활용하면서 EC2의 비용 모델, 특수 하드웨어, Graviton4 기반 인스턴스, 고성능 네트워크 옵션까지 자유롭게 사용할 수 있다는 점이 가장 큰 장점입니다.

Lambda Managed Instances 개념 이해

Lambda Managed Instances는 기존 Lambda와 달리 EC2 인스턴스 상에 Execution Environment가 배치되는 구조입니다. 이 Execution Environment는 AWS가 관리하며 다음 기능을 자동 제공합니다.

  • 인스턴스 라이프사이클 관리
  • OS / 런타임 패치
  • Auto Scaling 관리
  • 로드 밸런싱 및 요청 라우팅
  • CloudWatch 모니터링 연동

즉, EC2를 직접 프로비저닝하거나 AMI 패치를 관리할 필요도 없습니다.
사용자에게 필요한 것은 Capacity Provider 설정Lambda 함수 연결뿐입니다.

Managed Instances 구성 준비

VPC 네트워크 준비

Managed Instances는 EC2 기반이므로 Lambda 실행 환경을 위한 VPC 서브넷, 보안 그룹, IAM 역할이 필요합니다.

  • 프라이빗 서브넷 권장
  • NAT 연결 필요 여부는 함수 사용 패턴에 따라 결정
  • IAM 역할에는 EC2 관련 정책 및 CloudWatch 로그 권한 포함

Capacity Provider 생성

Lambda Managed Instances의 핵심은 Capacity Provider입니다. 이는 EC2 인스턴스 그룹을 선언적으로 관리하는 리소스로, Lambda가 사용할 EC2 용량을 정의하는 역할을 수행합니다.

 

 

생성 절차 (콘솔 기준)

  1. AWS 콘솔 → Lambda → Managed Instances → Create capacity provider
  2. Instance requirements 설정
    • Graviton4, GPU 기반 인스턴스, 높은 vCPU·메모리 등 자유롭게 선택
    • On-Demand / Spot / Savings Plans / RIs 선택 가능
  3. VPC 설정
    • Lambda 함수가 실행될 서브넷 및 보안 그룹 지정
  4. Minimum / Maximum capacity 정의
    • 고정 처리량이 필요한 경우를 고려해 최소 용량을 설정하는 것이 좋음
  5. Auto Scaling 정책(Optional)
    • Lambda 요청량 증가를 기반으로 EC2 인스턴스 수 자동 조정

Capacity Provider를 생성하고 나면 해당 Provider가 Execution Environment를 AWS가 관리하는 방식으로 EC2에 배치합니다.

Lambda 함수 생성 및 Capacity Provider 연결

Lambda 콘솔에서 기존 함수를 선택하거나 신규로 함수를 생성한 후, Execution Configuration에서 Capacity Provider를 연결할 수 있습니다.

연결 절차

  1. Lambda 함수 → Configuration → General configuration
  2. Edit 클릭
  3. Execution mode: Managed Instance 선택
  4. Capacity provider 선택
  5. 함수 버전을 생성하여 배포

이제 Lambda 요청이 들어오면, Lambda는 Capacity Provider 내 EC2 인스턴스에 배치된 Execution Environment로 요청을 라우팅합니다.

코드 배포 및 런타임 지원

Lambda Managed Instances는 기존 Lambda와 동일한 런타임을 지원합니다.

  • Node.js 20+
  • Python 3.12+
  • Java 17+
  • .NET 8

코드 업로드 방식 및 배포 방식도 기존 Lambda와 동일하여 기존 운영 절차를 변경하지 않고 도입할 수 있습니다.

병렬 실행(Parallel Invocations) 구성

Managed Instances의 중요한 기능 중 하나는 병렬 요청 처리입니다.

기존 Lambda는 요청당 하나의 execution environment를 따로 생성하지만, Managed Instances는 하나의 Execution Environment가 여러 요청을 동시에 처리할 수 있습니다.

이를 위해 함수 설정에서 Reserved Concurrency 또는 Provisioned Concurrency(Managed Instances 모드 기준) 값을 조정할 수 있으며, Capacity Provider의 인스턴스 스펙에 따라 초당 처리량을 크게 늘릴 수 있습 니다.

비용 최적화 전략

Lambda Managed Instances는 Lambda 자체 비용은 무료이며, EC2 인스턴스 비용만 과금됩니다.

비용 최적화 전략은 다음과 같습니다.

Savings Plans 또는 Reserved Instances 적극 활용

지속되는 처리량이 있다면 Savings Plans 또는 RI를 적용하면 Lambda보다 훨씬 낮은 비용 구조를 만들 수 있습니다.

Graviton4 기반 인스턴스 선택

AI inference, 고성능 웹 처리, 분석 워크로드에 매우 높은 성능 대비 가격 효율을 제공합니다.

병렬 요청 처리로 처리량 향상

동일 인스턴스 수 대비 처리할 수 있는 요청이 증가하여 비용 대비 효율이 높아집니다.

CloudWatch 모니터링 설정

Lambda Managed Instances는 다음 지표가 새롭게 추가됩니다:

  • MiActiveInstances
  • MiInstanceUtilization
  • MiConcurrentExecutions
  • MiThrottles

이를 기반으로 인스턴스 활용률을 확인하고 자동 확장을 조정할 수 있습 니다.

X-Ray를 활성화하면 EC2 기반 환경에서도 동일하게 트레이싱이 가능해 문제 분석이 수월합니다.

주의사항

  • Lambda의 cold start 개념이 존재하지만, EC2 기반이므로 훨씬 예측 가능한 성능을 제공합니다.
  • VPC 구성이 잘못되면 Lambda 라우팅이 실패할 수 있으므로 네트워크 설정이 매우 중요합니다.
  • 함수 실행 시간이 길고 지속적으로 리소스를 사용하는 ML inference 같은 워크로드에서 특히 효과적입니다.
  • Spot 인스턴스를 사용할 경우 중단 대응 로직을 고려해야 합니다.

마무리

AWS Lambda Managed Instances는 기존 Lambda의 단순함을 유지하면서도 EC2의 성능과 가격 모델을 모두 활용할 수 있는 새로운 실행 옵션입니다.

고성능 워크로드, 장기 실행 ML 추론, 대규모 처리 시스템 등 기존 Lambda로 처리하기 어려웠던 영역에서도 서버리스 경험을 그대로 유지하면서 효과적으로 운영할 수 있는 구조를 제공합니다.

 

반응형