AWS เปิดตัว AWS Emulator ตัวจำลองบริการกว่า 200 รายการที่สร้างโดย AI

AWS ได้เปิดตัว AWS Emulator ซึ่งเป็นตัวจำลอง AWS API แบบโลคัลที่ช่วยให้นักพัฒนาสามารถรันบริการต่างๆ ได้บนแล็ปท็อป เซิร์ฟเวอร์สำหรับพัฒนา หรือในระบบ CI โดย AWS CLI และ SDK จะสื่อสารกับตัวจำลองนี้แทนการเชื่อมต่อกับ AWS จริง ทำให้ไม่จำเป็นต้องมีบัญชี AWS และ ไม่มีค่าบริการ
ความน่าสนใจของโปรเจกต์นี้คือ Autonomous agent เป็นผู้เขียนและตรวจสอบโค้ดทั้งหมด ซึ่งจะช่วยให้เหล่านักพัฒนาและ coding agent สามารถทดสอบการทำงานกับ API ที่มีรูปแบบเหมือน AWS (AWS-shaped APIs) ได้อย่างรวดเร็วโดยไม่มีค่าใช้จ่าย
TL;DR
- ขนาด: สร้างขึ้นจาก 438 AWS API models ครอบคลุม 200+ บริการ โดยใช้สถาปัตยกรรมหนึ่ง Rust crate ต่อหนึ่งบริการ
- การติดตั้ง: รองรับ Linux x86_64/aarch64 (RPM หรือ Debian) หรือใช้ Docker บน macOS/Windows โดยจำกัดหน่วยความจำที่ 2 GiB สำหรับการ build จาก source ต้องใช้พื้นที่ดิสก์ว่าง 100 GB
- ประสิทธิภาพ: ผ่านการทดสอบความแม่นยำ 24,243 จาก 42,857 รายการ (56.6%) ใน release v1.0.322
- บริการที่แม่นยำสูงสุด: AWS KMS อยู่ที่ 93.9% (ผ่าน 291 จาก 310 การทดสอบ) และ Amazon SQS อยู่ที่ 89.8%
- บริการที่ยังต้องพัฒนา: AWS CloudFormation อยู่ที่ 15.8% (ผ่าน 414 จาก 2,612 การทดสอบ)
AWS Emulator คืออะไร?
AWS Emulator เป็นโปรแกรมแบบ headless สำหรับใช้งานภายในเครื่องที่ทำหน้าที่เป็น endpoint ของ AWS API คุณสามารถกำหนดค่า CLI หรือ SDK ให้ชี้มาที่ตัวจำลองนี้ผ่าน environment variables ได้ทันทีโดยไม่ต้องแก้ไขโค้ดเดิม โดยทรัพยากรต่างๆ จะถูกเก็บไว้ในหน่วยความจำและจะหายไปทันทีเมื่อหยุดการทำงาน
จาก เอกสารประกอบแสดงตัวอย่าง DynamoDB พบว่าการเรียกใช้ CreateTable ด้วยชื่อที่มีความยาวเพียง 2 ตัวอักษรจะล้มเหลวพร้อมข้อความ ValidationException ซึ่งเป็นรูปแบบเดียวกับที่ AWS จริงส่งกลับมาทุกประการ
AI agent สร้าง AWS Emulator ได้อย่างไร?
โปรเจกต์นี้เริ่มต้นจากการส่ง prompt ไปยัง Kiro จนได้ตัวจำลอง Amazon SQS ที่ใช้งานได้จริงภายในเวลาเพียง 15 นาที หลังจากนั้น AWS ได้แบ่งงานออกเป็น 3 ทีมของ agent ดังนี้:
- Test writers: สร้างสถานการณ์จำลองจาก Smithy API models สาธารณะ และตรวจสอบความถูกต้องเทียบกับระบบ AWS จริง
- Issue finders: นำการทดสอบเหล่านั้นมารันซ้ำกับตัวจำลองเพื่อค้นหาและรายงานจุดที่ทำงานผิดพลาด
- Fixers: รับหน้าที่แก้ไขปัญหาที่ได้รับรายงานและส่งแพตช์แก้ไขเป็นรายรายการ
ทุกแพตช์ต้องผ่าน merge gate ที่เข้มงวด ทั้งการ build การรีวิวโค้ด ความปลอดภัย และความแม่นยำ นอกจากนี้ มี security agent หลายรายทำการรีวิวแบบ adversarial โดย Matthew Goldberg ระบุว่ามี agent หลายร้อยตัวทำงานขนานกันเพื่อแก้ไขปัญหาหลายพันรายการต่อวัน กระบวนการทั้งหมดรันบน AWS Developer Tools และใช้ CodeCommit เป็น repository หลักของเหล่า agent ก่อนจะส่งโค้ดไปยัง GitHub ในขั้นตอนสุดท้าย
AWS Emulator มีความแม่นยำแค่ไหน?
AWS จะเผยแพร่ไฟล์ scores.json พร้อมกับการอัปเดตทุกครั้ง โดยสถิติจาก ไฟล์ v1.0.322 เมื่อวันที่ 11 พฤศจิกายน 2026 มีรายละเอียดดังนี้:
- ภาพรวม: ผ่านการทดสอบ 24,243 จาก 42,857 รายการ (56.6%) และมีการข้ามไป 80 รายการ
- ระดับขั้นตอน (Step level): ผ่าน 49,810 จาก 68,007 ขั้นตอนย่อย (73.2%)
- เวิร์กโฟลว์ข้ามบริการ (Cross-service workflows): ผ่าน 2,752 จาก 6,569 รายการ (41.9%)
- บริการหลัก: S3 ทำได้ 79.1%, DynamoDB 77.3%, SNS 73.9%, Lambda 46.4% และ EC2 41.5%
ตามเอกสารความแม่นยำ (fidelity docs) ระบุว่า API ในส่วน control-plane จะมีความแม่นยำสูงสุด ส่วนการรองรับ data-plane รวมถึง CloudFormation, Terraform และ CDK จะมีความแม่นยำแตกต่างกันไปในแต่ละบริการ หากมีการเรียกใช้งานส่วนที่ยังไม่ได้พัฒนา ระบบจะส่งกลับ HTTP 501 NotImplemented โดยสามารถตรวจสอบรายการที่ทดสอบไม่ผ่านได้ใน aws-emulator-evaluation-suite
วิธีการรัน AWS Emulator
สามารถรันได้ 4 วิธีตามที่ระบุใน README:
- Linux: ติดตั้งแพ็กเกจ RPM หรือ Debian แล้วใช้คำสั่ง
aws-emulator - macOS/Windows: สร้างคอนเทนเนอร์จาก AWS’s Dockerfile โดยจำกัดหน่วยความจำไว้ที่ 2 GiB
- Rust embedded mode: เพิ่มเป็น dev-dependency เพื่อสร้างอินสแตนซ์แยกอิสระสำหรับการทดสอบ
- Coding agents: ใช้คำสั่ง
aws agent-toolkit add-skill --skill-name aws-emulator(ต้องใช้ AWS CLI 2.35.0 ขึ้นไป)
สำหรับการ build จาก source ระบบจะให้บริการผ่าน HTTPS ที่ 127.0.0.1:9297 พร้อม self-signed certificate ซึ่งผู้ใช้จำเป็นต้องมี Rust toolchain, C compiler และพื้นที่ว่างในดิสก์อย่างน้อย 100 GB
เปรียบเทียบกับเครื่องมืออื่น
| คุณสมบัติ | AWS Emulator | LocalStack | Moto | Floci |
|---|---|---|---|---|
| สัญญาอนุญาต (License) | CC0 1.0 | แผนบริการเชิงพาณิชย์ | Apache-2.0 | MIT |
| ราคา | ฟรี | เริ่มต้น $0 - $89/เดือน | ฟรี | ฟรี |
| การครอบคลุม | 200+ บริการ | 30+ ถึง 110+ ตามแผน | ไม่ระบุ | ไม่ระบุ |
| Endpoint | HTTPS 127.0.0.1:9297 | Port 4566 | Port 5000 | Port 4566 |
| การเผยแพร่คะแนนความแม่นยำ | มีในทุก release | ไม่มีระบุ | ไม่มีระบุ | ไม่มีระบุ |
ข้อจำกัดที่ควรทราบ
- ไม่มีการประเมิน IAM: ระบบจะไม่ตรวจสอบนโยบายเกี่ยวกับ Identity และ Resource เหมือนใน AWS จริง จึงห้ามใช้สำหรับการทดสอบด้านความปลอดภัย
- จำกัด Region และ Account: รองรับได้เพียง 1 Region และ 1 Account เท่านั้น โดยไม่มีการแยกทรัพยากรออกจากกันตาม ID
- เน้น us-west-2: การตรวจสอบจะเน้นที่ภูมิภาค us-west-2 เป็นหลัก ยกเว้นบริการระดับ global ที่จะใช้ us-east-1
- เน้นใช้งานชั่วคราว: ออกแบบมาเพื่อรันในหน่วยความจำ ไม่เหมาะสำหรับการรันระยะยาวหรือการทดสอบโหลด (load tests)
- Telemetry: ระบบเปิดใช้งานการส่งข้อมูลทางไกลเป็นค่าเริ่มต้น แต่สามารถปิดได้ด้วยคำสั่ง
--telemetry offหรือตั้งค่าใน environment variables
ปัจจุบัน AWS Emulator มีอัตราการออกเวอร์ชันใหม่ที่รวดเร็วมาก โดยเวอร์ชัน v1.0.265 ถึง v1.0.322 ถูกปล่อยออกมาต่อเนื่องในช่วงเวลาเพียง 4 วันเท่านั้น เพื่อเร่งปรับปรุงความแม่นยำให้สูงขึ้นตามเป้าหมายที่วางไว้
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
