Fakecloud: Trình giả lập AWS chạy cục bộ dành cho kiểm thử tích hợp

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

Fakecloud là công cụ mã nguồn mở giúp giả lập môi trường AWS ngay trên máy cục bộ, hỗ trợ 105 dịch vụ và hơn 7.500 thao tác API với độ tương thích 100% theo mô hình Smithy. Công cụ này cho phép lập trình viên dùng AWS SDK, CLI và các công cụ IaC quen thuộc mà không cần tài khoản hay gói trả phí, đồng thời cung cấp bộ SDK riêng để kiểm tra và điều khiển các tác vụ bất đồng bộ trong kiểm thử.

Fakecloud: Trình giả lập AWS chạy cục bộ dành cho kiểm thử tích hợp

Fakecloud: Trình giả lập AWS chạy cục bộ dành cho kiểm thử tích hợp

Fakecloud là một trình giả lập AWS chạy hoàn toàn cục bộ, hướng tới nhu cầu kiểm thử tích hợp của các nhóm phát triển phần mềm. Công cụ này cho phép ứng dụng của bạn kết nối bằng AWS SDK, CLI và công cụ hạ tầng như thật, nhưng không cần tài khoản AWS hay gói trả phí. Điểm đáng chú ý là độ tương thích được tuyên bố đạt mức 100% theo mô hình Smithy, với 105 dịch vụ và 7.508 thao tác được hỗ trợ.

Bài toán mà Fakecloud giải quyết

Với các nhóm phát triển ứng dụng trên nền AWS, việc kiểm thử tích hợp thường gặp hai lựa chọn: hoặc dùng môi trường AWS thật (tốn chi phí, phụ thuộc mạng và tài khoản), hoặc dùng các thư viện mock đơn thuần (nhanh nhưng không phản ánh đúng hành vi thực tế của hạ tầng).

Fakecloud chọn con đường thứ ba: cung cấp một môi trường AWS cục bộ hành xử như hạ tầng thật, chứ không chỉ là mock. Ứng dụng của bạn vẫn dùng AWS SDK chính thức, chạy CLI và các công cụ Infrastructure as Code như bình thường, chỉ khác là mọi thứ diễn ra trên máy cục bộ.

So với LocalStack Community ở thời điểm hiện tại, Fakecloud nhấn mạnh rằng người dùng không cần tài khoản, token xác thực hay gói trả phí chỉ để duy trì các luồng phát triển cốt lõi chạy cục bộ.

Số lượt tải fakecloud trên npmSố lượt tải fakecloud trên npm

Phạm vi dịch vụ và độ tương thích

Danh sách dịch vụ mà Fakecloud hỗ trợ khá rộng, trải từ lưu trữ, hàng đợi, tính toán cho tới các dịch vụ AI:

  • Lưu trữ và cơ sở dữ liệu: S3, DynamoDB, RDS, RDS Data API, Aurora DSQL, ElastiCache, MemoryDB
  • Truyền thông và sự kiện: SQS, SNS, EventBridge (bao gồm Pipes và Scheduler), Kinesis, Firehose
  • Tính toán và container: Lambda, EC2, ECS, ECR, EKS, Elastic Load Balancing v2, Application Auto Scaling
  • Bảo mật và quản trị: IAM, STS, Organizations, SSM, Secrets Manager, KMS, ACM, Cognito User Pools, Cognito Identity
  • AI/ML: Bedrock, Bedrock Agent, Bedrock Agent Runtime, Bedrock Runtime
  • Mạng và phân phối: API Gateway v1 (REST), API Gateway v2 (HTTP), CloudFront, Route 53, WAF v2, Cloud Map
  • Giám sát và điều phối: CloudWatch Logs, CloudWatch Metrics & Alarms, Step Functions, CloudFormation, Cloud Control API, Glue, Athena, SES

Theo công bố của dự án, trong số 3.932 thao tác API đã triển khai, toàn bộ 248.557/248.557 biến thể kiểm thử sinh từ mô hình Smithy đều vượt qua trên mỗi lần commit, kèm theo các bài kiểm thử đầu-cuối chạy với AWS SDK chính thức.

Thiết kế dành cho kiểm thử, không chỉ để chạy

Điểm khác biệt của Fakecloud nằm ở việc phân tách rõ hai lớp: API thật cho ứng dụng và công cụ chuyên dụng cho kiểm thử.

Ứng dụng của bạn dùng AWS SDK chính thức trỏ tới localhost. Sau khi tác vụ chạy xong, bạn kiểm chứng kết quả bằng Fakecloud thay vì phải ghép nối các vòng lặp polling, dữ liệu mẫu hay các hook kiểm thử riêng tư.

Các SDK của Fakecloud — có sẵn cho TypeScript, Python, Go, PHP, Java và Rust — bao bọc các endpoint /_fakecloud/*, cho phép:

  • Đặt lại trạng thái (reset) giữa các bài kiểm thử
  • Đưa ra các khẳng định (assertion) về những gì đã xảy ra
  • Điều khiển thủ công các bộ xử lý bất đồng bộ theo ý muốn

Nhờ đó, bạn có thể kiểm tra email SES đã gửi, tin nhắn SNS, hàng đợi SQS, các lần gọi Lambda, mã xác nhận Cognito và nhiều hơn nữa — tất cả ngay sau khi ứng dụng đã dùng API AWS bình thường.

Số lượt tải fakecloud trên PyPISố lượt tải fakecloud trên PyPI

Tích hợp giữa các dịch vụ

Fakecloud triển khai hơn 30 kết nối dịch vụ với dịch vụ, tức là các tương tác thật giữa các dịch vụ AWS chứ không phải giả lập rời rạc. Ví dụ:

  • Thông báo từ S3
  • Phân phối SNS (fanout)
  • Mục tiêu của EventBridge
  • DynamoDB Streams
  • Đăng ký CloudWatch Logs
  • Trigger của Cognito
  • Tích hợp tác vụ Step Functions
  • Luồng API Gateway → Lambda

Đây chính là điểm mà nhiều giải pháp mock truyền thống thường bỏ qua, khiến bài kiểm thử "xanh" trên máy cục bộ nhưng lại vỡ khi lên môi trường thật.

Giữ nguyên AWS SDK trong ứng dụng. Dùng SDK của Fakecloud khi bài kiểm thử cần khả năng quan sát và kiểm soát bổ sung trên chính trình giả lập.

Triển khai và lưu ý thực tế

Fakecloud có thể chạy dưới dạng một tệp nhị phân duy nhất hoặc image Docker. Bạn chỉ cần dùng thông tin xác thực giả bất kỳ, toàn bộ luồng làm việc diễn ra cục bộ, không phải đăng nhập vào nền tảng của bên thứ ba.

Đối với các nhóm phát triển tại Việt Nam đang xây dựng ứng dụng trên AWS, công cụ này có thể giúp giảm đáng kể chi phí môi trường staging, đặc biệt với những dự án cần chạy kiểm thử tích hợp thường xuyên trong CI/CD. Việc không yêu cầu tài khoản cũng giúp onboarding thành viên mới nhanh hơn.

Cần lưu ý rằng dự án vẫn đang ở giai đoạn đầu và danh sách dịch vụ vẫn đang được mở rộng. Các con số thống kê về lượt tải và sao trên GitHub phản ánh mức độ quan tâm của cộng đồng, không phải số lượng người dùng thực tế.

Số sao GitHub của fakecloudSố sao GitHub của fakecloud

Kết luận

Fakecloud định vị mình là giải pháp cho những nhóm muốn có một luồng làm việc hoàn toàn cục bộ với API AWS thật, không cần đăng ký tài khoản. Bộ SDK chỉ là lợi thế bổ sung cho kiểm thử, không thay thế cho định hướng cốt lõi đó.

Với độ tương thích được kiểm chứng tự động trên từng commit cùng dải dịch vụ được tinh chỉnh cho phát triển cục bộ và kiểm thử tích hợp, đây là một lựa chọn đáng cân nhắc cho các nhóm đang tìm cách thoát khỏi sự phụ thuộc vào môi trường đám mây thật trong vòng lặp phát triển hằng ngày.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗