Lambda MicroVM의 모범 사례
AWS Lambda MicroVM을 사용하여 안정적이고 비용 효과적이며 안전한 애플리케이션을 구축하려면 다음 모범 사례를 따르세요.
애플리케이션 설계
MicroVM 스냅샷 및 수명 주기 후크와 잘 작동하도록 애플리케이션을 설계하세요.
-
수명 주기 후크 사용 - 실행 후 초기화를 위한
/run, 정상적인 정리를 위한/suspend, 연결 재설정을 위한/resume, 데이터 삭제를 위한/terminate를 구현합니다. -
스냅샷 재사용 처리 - 이미지 빌드 중이 아닐 때
/run후크에서 UUID, 시크릿 및 난수를 생성합니다. 모든 난수 생성에는 CSPRNG를 사용합니다. -
재개를 고려한 설계 -
/resume후크에서 모든 네트워크 연결과 캐시된 상태를 검증합니다. AWS SDK 연결은 일반적으로 자동으로 복구되지만 사용자 지정 연결은 그렇지 않을 수 있습니다.
성능
다음 모범 사례에 따라 MicroVM 성능을 최적화하세요.
-
MicroVM 크기 적절히 조정 - CPU, 메모리 및 대역폭 요구 사항을 충족하는 가장 작은 MicroVM 크기를 선택합니다. 대역폭은 구성된 메모리에 따라 확장됩니다.
-
스냅샷 크기 최소화 - 애플리케이션 설치 공간을 작게 유지하여 실행 및 재개 시간을 단축합니다. 이미지 스냅샷이 캡처되기 전에 빌드 타임 종속성과 임시 파일을 제거합니다.
-
지연 시간에 민감한 워크로드에 일시 중지/재개 사용 - 자주 사용하는 환경을 일시 중지된 상태로 유지하여 실행을 신속하게 재개합니다.
보안
다음 모범 사례에 따라 MicroVM 워크로드를 보호하세요.
-
인증 토큰 교체 - 수명이 짧은 토큰(15~30분)을 생성합니다. 만료 전에 클라이언트에서 토큰 새로 고침 로직을 구현합니다.
-
특정 포트로 토큰 범위 지정 -
allowedPorts파라미터를 사용하여 애플리케이션에서 사용하는 포트로만 토큰 범위를 제한합니다. -
민감한 트래픽에 VPC 송신 사용 - 퍼블릭 인터넷이 아닌 VPC 송신 커넥터를 통해 데이터베이스와 내부 API로 전송되는 트래픽을 라우팅합니다.
-
최소 권한 IAM 적용 - 빌드 역할(이미지 생성)과 실행 역할(런타임)을 분리합니다. 필요한 권한을 최소한으로 부여합니다.
비용 최적화
다음 전략을 통해 비용을 절감하세요.
-
유휴 정책 구성 -
maxIdleDurationSeconds를 설정하여 유휴 MicroVM을 자동으로 일시 중지합니다. 일시 중지된 MicroVM에는 컴퓨팅 요금이 부과되지 않습니다. -
maximumDurationInSeconds 설정 - 모든 MicroVM에 하드 종료 시간을 설정하여 비용이 급증하는 것을 방지합니다.
-
미사용 MicroVM 종료 - MicroVM을 무기한 실행 상태로 두지 말고,
suspendedDurationSeconds를 사용하여 장시간 유휴 상태가 지속되면 자동 종료되도록 설정합니다. -
리소스 태그 지정 - AWS Cost Explorer에서 비용 할당 및 보고를 위해 MicroVM 이미지에 태그를 사용합니다.
-
MicroVM 크기 적절히 조정 - 성능 요구 사항을 충족하는 가장 작은 기준으로 시작합니다. 다시 프로비저닝하지 않고도 피크 활동 중 기준의 4배까지 버스트할 수 있습니다.
-
미사용 이미지 정리 - 더 이상 필요 없는 MicroVM 이미지 버전을 삭제하여 스토리지 비용을 줄입니다.
모니터링
효과적으로 MicroVM을 모니터링합니다.
-
stateReason 검토 - MicroVM이 예기치 않게 종료되면
get-microvm응답에 예기치 않은 오류 원인을 나타내는stateReason이 포함됩니다.