AWS, 클라우드 앱을 내 컴퓨터에서 시험할 무료 에뮬레이터 공개
편집·검토: AI Ping 편집팀
3줄 요약
- AWS가 11월 11일 클라우드용 애플리케이션을 개인 컴퓨터에서 시험하는 AWS 에뮬레이터를 공개했다.
- 로컬 테스트에는 AWS 계정이나 서비스 요금이 필요 없으며, 서비스별 시험 통과 건수는 릴리스마다 공개한다.
- AWS는 자율 AI 에이전트가 에뮬레이터 코드를 작성했다고 밝혔다.
아마존웹서비스(AWS)가 클라우드에 배포하기 전에 개발자 컴퓨터에서 애플리케이션을 시험할 수 있는 무료 도구 ‘AWS 에뮬레이터(AWS Emulator)’를 11월 11일 공개했다. AWS 계정 없이 쓸 수 있고, 에뮬레이터에서 처리한 요청에는 AWS 서비스 요금이 붙지 않는다. 실제 클라우드에 리소스를 배포하면 해당 리소스의 요금이 적용된다.
이미 AWS용으로 작성한 프로그램은 기존 개발 도구나 SDK를 사용하면서 테스트 요청이 가는 곳을 에뮬레이터로 바꿀 수 있다. 개인 컴퓨터나 개발 서버에서 실행할 수 있고, 코드 변경 때마다 자동으로 검사를 돌리는 지속적 통합(CI) 환경에도 넣을 수 있다. AWS는 에뮬레이터의 코드를 자율 AI 에이전트가 작성했다고 밝혔다.
버킷을 만들고 목록을 확인하는 테스트
AWS 사용자 안내는 파일 저장 공간인 아마존 S3 버킷을 만든 뒤 목록에 나타나는지 확인하는 예를 든다. 같은 테스트에서 리소스 생성과 뒤이은 조회가 연결되는지 보는 방식이다. 다른 예에서는 데이터베이스 서비스인 다이너모DB(DynamoDB)에 이름이 너무 짧은 테이블을 만들려 할 때 실제 서비스와 같은 입력 오류가 돌아오는지 확인한다. 에뮬레이터가 실행되는 동안 만든 리소스는 메모리에 남고 프로그램을 종료하면 지워진다.
리눅스에서는 AWS가 배포하는 RPM이나 데비안 패키지를 설치할 수 있다. 맥과 윈도우에서는 AWS가 제공한 파일로 도커 컨테이너 이미지를 만들어 실행한다. 러스트(Rust)용 AWS SDK로 작성한 테스트는 에뮬레이터를 테스트 프로세스 안에 넣는 방식도 지원한다. 인스턴스마다 상태가 따로 있어 여러 테스트를 동시에 돌릴 때 각자 만든 리소스를 분리할 수 있다. 이 방식은 프로젝트를 처음 빌드할 때 에뮬레이터 코드도 함께 컴파일한다.
릴리스마다 서비스별 검증 결과 공개
스와미 시바수브라마니안 AWS 부사장은 출시일 기고에서 에뮬레이터의 바탕이 된 API 모델이 400개 이상이며 200개 넘는 AWS 서비스를 다룬다고 밝혔다. 이 모델은 각 서비스에 어떤 요청을 보낼 수 있고 어떤 응답을 받는지 기술한다. 실제 구현 수준은 서비스와 동작마다 다르다. AWS에 따르면 현재는 S3 버킷을 만들거나 목록을 조회하는 리소스 관리 기능이 실제 서비스에 가장 가깝다. 버킷에 파일을 쓰고 읽는 데이터 처리 기능이나 코드로 인프라를 정의하는 도구의 지원 범위는 서비스마다 다르다.
AWS가 공개하는 ‘충실도’ 점수는 해당 서비스의 검증 시나리오 가운데 에뮬레이터가 통과한 수를 보여 준다. 한 시나리오에서 여러 요청이 이어지면 응답과 처리 후 리소스 상태까지 맞아야 통과하며, 실제 AWS에서 오류가 난 요청은 같은 오류가 돌아와야 한다. AWS는 아직 통과하지 못한 테스트도 공개한다. 릴리스가 바뀌면서 새 시나리오가 추가될 수 있어 점수는 같은 시험 묶음으로 측정한 경우에 비교할 수 있다.
프로젝트에서 쓰는 동작에 대응하는 공개 테스트가 아직 없으면 점수표에서 그 동작의 일치 여부를 알 수 없다. AWS 문서는 그 경우 실제 AWS에서도 같은 시나리오를 실행해 결과를 대조하는 방법을 설명한다. 지역별 서비스 차이나 접근 권한을 확인하는 작업도 별개다. AWS는 에뮬레이터의 용도를 개발과 테스트로 한정하고, 운영 환경이나 보안 검증에는 실제 서비스에서 확인해야 한다고 안내한다.
에이전트가 짠 코드, 실제 AWS 응답으로 확인
AWS 개발자 도구팀의 매튜 골드버그 수석 엔지니어는 프로젝트 팀이 에뮬레이터 코드를 직접 작성하거나 검토하지 않았다고 밝혔다. 개발 과정에는 엔지니어가 설계한 시험과 검사 절차가 들어갔다. 골드버그의 설명에 따르면 한 에이전트 팀이 공개 API 명세를 바탕으로 시험 시나리오를 만들고 실제 AWS에서 기대 결과를 확인한다. 다른 팀이 에뮬레이터에서 같은 시험을 반복해 차이를 기록하면, 세 번째 팀이 해당 문제를 고친다.
수정한 코드는 빌드와 기존 동작을 다시 확인하는 자동 검사를 통과해야 저장소에 들어간다. AWS는 변경 사항을 모아 패키지로 내보내기 전에도 다시 빌드하고 검사한다고 밝혔다. 저장소에는 수정 이력과 아직 해결하지 못한 동작 차이도 올라온다. 에뮬레이터 본체는 CC0 1.0으로 공개했고 저장소의 일부 외부 코드는 아파치 2.0 라이선스를 적용한다. 사용자 보고는 깃허브 이슈에서 받으며 외부 코드 변경 요청은 접수하지 않는다.
출처
- AWS Emulator release and local testing — AWS News Blog
- AWS on the API models and engineering checks behind the emulator — All Things Distributed
- AWS Emulator use cases, examples and limits — AWS Documentation
- How AWS measures emulator fidelity — AWS Documentation
- Checking a project against AWS Emulator — AWS Documentation
- Matthew Goldberg on the agents that built AWS Emulator — About Amazon
- AWS Emulator source, releases and licensing — AWS on GitHub