AWS ra mắt trình giả lập AWS Emulator chạy cục bộ

Công nghệ12 tháng 11, 2026·5 phút đọc

AWS vừa công bố AWS Emulator, công cụ giả lập các API AWS chạy ngay trên máy cục bộ, giúp lập trình viên kiểm thử phần mềm mà không cần tài khoản AWS hay gọi dịch vụ thật. Công cụ hỗ trợ chế độ server và chế độ nhúng trong Rust, nhưng AWS khuyến cáo không dùng cho môi trường production.

AWS ra mắt trình giả lập AWS Emulator chạy cục bộ

AWS vừa chính thức phát hành AWS Emulator, một chương trình giả lập cục bộ các API của AWS. Đây là bước đi đáng chú ý vì trước đây việc giả lập AWS chủ yếu do các dự án mã nguồn mở bên thứ ba như LocalStack đảm nhận.

Công cụ cho phép lập trình viên kiểm thử phần mềm mà không cần gọi đến AWS thật, không cần tài khoản AWS, và có thể chạy trên máy cá nhân, máy chủ phát triển hoặc trong quy trình tích hợp liên tục (CI - continuous integration). Các yêu cầu sẽ được gửi tới emulator thay vì AWS, nghĩa là bạn làm việc với tài nguyên mô phỏng chứ không phải tài nguyên AWS thật.

Cách hoạt động

AWS Emulator là một chương trình cục bộ cung cấp một endpoint API AWS, không có giao diện đồ họa. Sau khi khởi động, người dùng đặt biến môi trường để trỏ AWS CLI hoặc SDK AWS về endpoint của emulator, rồi chạy mã như bình thường. Ở chế độ nhúng (embedded mode), bạn truyền HTTP client của emulator thẳng vào SDK client.

Công cụ hỗ trợ hai cách dùng chính:

  • Chế độ server: cài gói RPM hoặc Debian trên Linux rồi chạy lệnh aws-emulator; trên Windows và macOS thì chạy emulator trong container dựng từ một Dockerfile ngắn.
  • Chế độ nhúng cho kiểm thử Rust: thêm emulator làm dev-dependency và chạy nó trong cùng tiến trình, mỗi bài kiểm thử một phiên bản riêng biệt, không cần endpoint URL, chứng chỉ hay biến môi trường.

AWS cũng bổ sung đường dẫn dành cho AI coding agent: cài skill aws-emulator bằng lệnh aws agent-toolkit add-skill --skill-name aws-emulator --region us-east-1, yêu cầu CLI phiên bản 2.35.0 trở lên.

Khi chạy trực tiếp từ mã nguồn, emulator phục vụ HTTPS trên 127.0.0.1:9297 với chứng chỉ tự ký (self-signed certificate).

Yêu cầu khi tự build

Vì mỗi dịch vụ AWS là một crate (đơn vị biên dịch trong hệ sinh thái Rust) riêng, việc build toàn bộ từ mã nguồn khá nặng:

  • Cần bộ công cụ Rust kèm Cargo, cùng trình biên dịch C như GCC hoặc clang.
  • Cần ít nhất 100 GB dung lượng trống cho thư mục target/, và con số này còn tăng khi có thêm dịch vụ.
  • Máy nhiều nhân sẽ build lần đầu nhanh hơn; các lần build lại sau khi sửa một dịch vụ sẽ nhanh hơn nhiều.
  • Chế độ nhúng chịu cùng chi phí build này, nên AWS khuyến nghị dùng chung một CARGO_TARGET_DIR, cache target/ hoặc dùng sccache trong CI, và ghim (pin) emulator vào một commit phát hành cố định.

Build từ mã nguồn chỉ được hỗ trợ trên Linux (x86_64 và aarch64); trên Windows và macOS cần dùng đường Docker.

Độ trung thực và các giới hạn

AWS công bố điểm số độ trung thực (fidelity score) theo từng bản phát hành để cho biết mức độ khớp của mỗi dịch vụ so với AWS thật. Các khoảng trống chức năng được theo dõi trong thư mục issues/ của kho mã: phần chưa hoạt động nằm ở issues/things-that-do-not-work/, phần đã sửa chuyển sang issues/things-that-now-work/.

Đáng lưu ý, AWS nêu rõ emulator chỉ dành cho việc xây dựng và kiểm thử, không dùng cho khối lượng công việc production hay để kiểm thử bảo mật. Kho mã cũng không nhận pull request, người dùng chỉ báo lỗi qua GitHub Issues.

Dữ liệu đo từ xa bật mặc định

AWS Emulator được cấu hình thu thập và gửi dữ liệu sử dụng về AWS, và tính năng đo từ xa (telemetry) này bật mặc định. AWS khẳng định dữ liệu thu thập được giảm thiểu tối đa, không bao gồm nội dung yêu cầu/phản hồi, mã nguồn, thông tin xác thực hay dữ liệu cá nhân, và không chia sẻ với bên thứ ba.

Người dùng có thể tắt telemetry theo bốn cách:

  • Dùng tùy chọn dòng lệnh: aws-emulator --telemetry off (áp dụng cho tiến trình đó).
  • Đặt biến môi trường EMULATOR_TELEMETRY=off (áp dụng cho mọi emulator khởi chạy từ shell đó).
  • Thêm [telemetry] enabled = false vào tệp config.toml tại ~/.aws/emulator/config.toml trên Linux/macOS hoặc %USERPROFILE%\.aws\emulator\config.toml trên Windows.
  • Ở chế độ nhúng, tắt qua API cấu hình EmbeddedOptions.

AWS cũng lưu ý những ai xây công cụ có tích hợp emulator, ví dụ framework kiểm thử cho người khác dùng, cần thông báo về telemetry và cho người dùng cách tắt.

Giấy phép

Phần mềm phát hành theo giấy phép CC0 1.0 Universal (CC0-1.0), riêng mã trong thư mục vendor/ dùng giấy phép Apache License 2.0.

Góc nhìn

Việc AWS tự làm emulator có ý nghĩa thực tế rõ rệt với các nhóm phát triển đang dùng dịch vụ AWS: một công cụ chính thức thường theo sát đặc tả API hơn các bản giả lập cộng đồng, nên sai lệch hành vi giữa môi trường kiểm thử và môi trường thật có thể giảm bớt. Với đội ngũ làm CI, chế độ nhúng trong Rust và các cách trỏ SDK qua biến môi trường là điểm đáng cân nhắc.

Tuy vậy, các ràng buộc cần tính đến trước khi đưa vào quy trình: chi phí build và dung lượng ổ đĩa lớn, chỉ hỗ trợ build từ mã nguồn trên Linux, không nhận đóng góp từ cộng đồng, và telemetry bật mặc định phải tắt thủ công nếu tổ chức có quy định chặt về dữ liệu. Vì AWS nói rõ không dùng để kiểm thử bảo mật, các bài kiểm thử liên quan đến IAM hay cấu hình quyền vẫn cần chạy trên tài khoản thật.

Nguồn: github.com · Quy trình biên tập

Chia sẻ:FacebookX