Claude Managed Agents를 위한 샌드박스로 Lambda MicroVMs 사용하기

Claude Managed Agents를 위한 샌드박스로 Lambda MicroVMs 사용하기

AWS Lambda MicroVMs는 Claude Managed Agents의 셀프 호스팅 샌드박스(self-hosted sandboxes)에서 관리형 샌드박스 공급자 역할을 해요. 민감한 파일, 패키지, 서비스를 여러분이 제어하는 인프라에 보관할 수 있어요. Anthropic은 에이전트 루프와 Claude 모델을 호스팅하고, Lambda MicroVM은 여러분의 도구 호출이 실행되는 곳이에요. 이 패턴을 통해 실행 환경(무엇이 설치되고, 어떤 네트워크 접근이 가능하며, 에이전트가 도달할 수 있는 리소스가 무엇인지)을 제어할 수 있어요.

각 MicroVM은 스냅샷 기반의 1초 미만 시작 시간을 가진 Firecracker 격리 가상 머신이며, 최대 8시간 동안 실행되고 세션이 끝나면 종료될 수 있어요. 세션은 상태를 절대 공유하지 않아요. VM의 보안 경계와 서버리스의 운영 모델(관리할 클러스터 없음, 지불할 유휴 용량 없음)을 모두 얻을 수 있어요. 아래에 설명된 대로 AWS 서비스로 MicroVM을 오케스트레이션하여 셀프 호스팅 샌드박스 사양을 구현할 수 있어요. Claude Managed Agents Self-Hosted Sandboxes on Lambda MicroVMs 참조 샘플에서 자세한 내용을 확인하세요.

출처: AWS Lambda 개발자 안내서

본문

작동 방식

제어 플레인(control plane)이 Claude 세션마다 MicroVM 하나를 실행해요.

  1. 세션이 실행 상태에 도달하면 Anthropic이 사용자 계정의 엔드포인트로 session.status_run_started 웹훅을 보내요.

  2. 실행자(launcher) Lambda 함수가 웹훅 서명을 검증한 다음 RunMicroVM을 호출해요.

  3. MicroVM의 코드가 세션을 획득하고, /workspace에서 도구 호출(bash, read, write, edit, glob, grep)을 실행하며, 결과를 Anthropic에 다시 게시해요.

  4. 세션이 끝나면 MicroVM은 일시 중지되거나 종료돼요.

여러분의 Anthropic 조직 API 키는 AWS 컴퓨팅에 절대 도달하지 않아요. 실행자는 Anthropic 환경 키에 대한 AWS Secrets Manager 참조만 전달하고, MicroVM의 실행 역할이 런타임에 코드가 이를 읽을 수 있게 허용해요.

주요 속성

속성 이점
Firecracker 격리 세션당 하드웨어 가상화 경계
스냅샷 기반 부팅 Firecracker 스냅샷에서 1초 미만~수 초 이내로 재개
IMDSv2를 통한 IAM 단기, 최소 권한 자격 증명 사용
상태 유지 기간 전체 디스크·메모리 접근으로 최대 8시간 실행 가능
세션당 과금 세션이 완료되면 MicroVM 종료되어 요금 청구 종료

사전 조건

  • Amazon Simple Storage Service(Amazon S3), AWS Identity and Access Management(IAM), Secrets Manager, AWS WAF, Lambda, Lambda MicroVMs에 대한 권한이 있는 AWS 계정
  • self_hosted 환경을 가진 Claude Managed Agents 에이전트
  • Claude Console의 환경 키와 웹훅 서명 시크릿

참조 구현 배포

Claude Managed Agents Self-Hosted Sandboxes on Lambda MicroVMs 저장소는 최소한의 작동하는 배포를 제공해요. 여기에는 다음이 포함돼요.

  • CloudFormation 스택(Amazon API Gateway, 실행자 Lambda 함수, Secrets Manager 시크릿, Amazon S3 버킷, IAM 역할)
  • MicroVM 이미지(Dockerfile, Node.js EnvironmentWorker, 라이프사이클 훅)
  • 배포 스크립트와 검증 스크립트

배포 단계:

  1. CloudFormation 스택을 배포해요.
  2. 생성된 Secrets Manager 시크릿에 환경 키와 서명 시크릿을 저장해요.
  3. MicroVM 이미지를 빌드해요.
  4. 스택의 웹훅 URL을 Claude Console에 등록해요.
  5. 세션을 만들어 검증해요.

자세한 지침은 저장소 README를 참고하세요.

네트워킹

Lambda MicroVMs는 기본적으로 공개 인터넷 접근이 가능해요. api.anthropic.com에 도달하기 위한 구성은 필요 없어요.

Amazon Aurora 데이터베이스나 Amazon ElastiCache 클러스터 같은 프라이빗 리소스에 접근하거나 자체 네트워크 제한을 적용하려면 실행 시점에 VPC 이그레스 커넥터(egress connector)를 연결하세요. 이그레스 네트워크 커넥터 작업을 참고하세요.

유휴 정책

세션별 MicroVM에는 suspendedDurationSeconds: 0과 autoResumeEnabled: false를 설정하세요. 멈춘 세션의 상한으로 maximumDurationInSeconds를 설정하세요(최대 28,800초).

{
  "maxIdleDurationSeconds": 120,
  "suspendedDurationSeconds": 0,
  "autoResumeEnabled": false
}

모니터링

애플리케이션 로그 – CloudWatch Logs에서 애플리케이션 로그를 검토해요.

aws logs tail /aws/lambda-microvms/claude-worker --follow

실행 중인 MicroVM – 계정의 실행 중인 MicroVM을 나열해요.

aws lambda-microvms list-microvms \
  --image-identifier claude-worker \
  --query 'items[].[microvmId,state,startedAt]' --output table

문제 해결

증상 원인
웹훅이 401 반환 서명 시크릿 불일치 또는 지연된 전달
MicroVM이 실행되지 않음 session.status_run_started용 웹훅이 등록되지 않았거나, 실행자 Lambda 함수 실행 역할에 RunMicroVM 권한 누락
MicroVM이 즉시 종료 /run 훅 타임아웃 – runTimeoutInSeconds 증가
워커가 즉시 종료 api.anthropic.com으로의 아웃바운드 HTTPS 차단
이미지 빌드가 S3_*로 실패 빌드 역할 또는 버킷 구성 오류

더 알아보기 (Learn more)

Lambda MicroVMs 네트워킹에 대한 자세한 내용은 Lambda MicroVMs 네트워킹을 참고하세요.