Lambda MicroVMs 모범 사례

Lambda MicroVMs 모범 사례

AWS Lambda MicroVMs로 안정적이고 비용 효율적이며 안전한 애플리케이션을 만들려면 다음 모범 사례를 따르세요.

출처: AWS Lambda 개발자 안내서

본문

애플리케이션 설계

애플리케이션이 MicroVM 스냅샷과 수명 주기 훅과 잘 작동하도록 설계하세요:

  • 수명 주기 훅 사용하기 — 실행 후 초기화에는 /run, 초기 정리를 위해 /suspend, 연결 재수립을 위해 /resume, 데이터 플러싱을 위해 /terminate를 구현하세요.
  • 스냅샷 재사용 처리하기 — UUID, 시크릿, 난수 값은 이미지 빌드 중이 아니라 /run 훅에서 생성하세요. 모든 난수 생성에는 CSPRNG를 사용합니다.
  • 재개를 위해 설계하기 — /resume 훅에서 모든 네트워크 연결과 캐시된 상태를 검증하세요. AWS SDK 연결은 보통 자동으로 복구되지만, 커스텀 연결은 그렇지 않을 수 있습니다.

성능

다음 관행으로 MicroVM 성능을 최적화하세요:

  • MicroVM 크기를 적절히 조정하기 — CPU, 메모리, 대역폭 요구 사항을 충족하는 가장 작은 MicroVM 크기를 선택하세요. 대역폭은 구성된 메모리에 따라 조정됩니다.
  • 스냅샷 크기 최소화하기 — 애플리케이션 공간을 작게 유지해 실행 및 재개 시간을 줄이세요. 이미지 스냅샷이 캡처되기 전에 빌드 타임 의존성과 임시 파일을 제거하세요.
  • 지연 시간에 민감한 워크로드에 일시 중지/재개 사용하기 — 자주 사용하는 환경을 일시 중지 상태로 유지해 실행을 빠르게 재개하세요.

보안

MicroVM 워크로드를 보호하려면 다음 관행을 따르세요:

  • 인증 토큰 교체하기 — 짧은 수명의 토큰(15-30분)을 생성하세요. 만료 전에 클라이언트에 토큰 갱신 로직을 구현합니다.
  • 토큰을 특정 포트로 범위 지정하기 — allowedPorts 파라미터를 사용해 토큰 범위를 애플리케이션이 사용하는 포트로만 제한하세요.
  • 민감한 트래픽에는 VPC 이그레스 사용하기 — 데이터베이스와 내부 API로 가는 트래픽은 공용 인터넷이 아니라 VPC 이그레스 커넥터로 라우팅하세요.
  • 최소 권한 IAM 적용하기 — 빌드 역할(이미지 생성)과 실행 역할(런타임)을 분리하고 최소 필수 권한만 부여하세요.

비용 최적화

다음 전략으로 비용을 줄이세요:

  • 유휴 정책 구성하기 — maxIdleDurationSeconds를 설정해 유휴 MicroVM을 자동으로 일시 중지하세요. 일시 중지된 MicroVM은 컴퓨팅 요금이 부과되지 않습니다.
  • maximumDurationInSeconds 설정하기 — 모든 MicroVM에 하드 종료 시간을 설정해 비용이 통제를 벗어나지 않게 하세요.
  • 사용하지 않는 MicroVM 종료하기 — MicroVM을 무한정 실행된 채 두지 마세요. suspendedDurationSeconds를 사용해 장시간 유휴 기간 후 자동 종료하세요.
  • 리소스에 태그 지정하기 — AWS Cost Explorer에서 비용 할당과 보고를 위해 MicroVM 이미지에 태그를 사용하세요.
  • MicroVM 크기를 적절히 조정하기 — 성능 요구를 충족하는 가장 작은 기준선으로 시작하세요. 재프로비저닝 없이 피크 활동 중 기준선의 4배까지 버스트할 수 있습니다.
  • 사용하지 않는 이미지 정리하기 — 더 이상 필요하지 않은 MicroVM 이미지 버전을 삭제해 스토리지 비용을 줄이세요.

모니터링

MicroVM을 효과적으로 모니터링하세요:

  • stateReason 검토하기 — MicroVM이 예기치 않게 종료되면 get-microvm 응답에 예기치 않은 실패 이유와 함께 stateReason이 포함됩니다.

더 알아보기 (Learn more)