LocalStack - AWS Cloud trên máy tính của bạn

LocalStack giúp bạn giả lập hơn 80 dịch vụ AWS trên máy tính của bạn, cho phép bạn phát triển và kiểm tra ứng dụng AWS của mình một cách nhanh chóng.

LocalStack - AWS Cloud trên máy tính của bạn
Localstack

Giới thiệu về LocalStack

LocalStack là một framework mã nguồn mở, cho phép bạn giả lập hơn 80 dịch vụ AWS trên local. Điều này giúp việc phát triển và kiểm thử ứng dụng trở nên dễ dàng hơn, mà không cần có tài khoản AWS.

Tuy nhiên, một số dịch vụ yêu cầu phiên bản trả phí LocalStack Pro để sử dụng🙃

Các điểm nổi bật của LocalStack

  1. Giả lập hơn 80 dịch vụ AWS
    LocalStack hỗ trợ mô phỏng các dịch vụ AWS quan trọng như S3, Lambda, RDS, SQS, SNN và nhiều dịch vụ khác. Bạn có thể xem và tương tác với các tài nguyên này như là khi sử dụng các dịch vụ thực tế từ AWS. Điều này rất hữu ích trong quá trình phát triển và kiểm thử ứng dụng, vì bạn có thể làm việc cục bộ mà không cần tài khoản AWS và tất nhiên là cả internet.
  2. Dễ dàng cài đặt và sử dụng
    LocalStack được viết bằng Python và có thể được cài đặt thông qua pip. Sau khi cài đặt, bạn có thể chạy LocalStack bằng một dòng lệnh duy nhất. Nó cung cấp cả giao diện web UI và các API để tương tác với các dịch vụ.
  3. Cấu hình linh hoạt
    LocalStack cho phép bạn cấu hình nhiều thuộc tính khác nhau, chẳng hạn như port của từng dịch vụ, thông tin đăng nhập, quyền truy cập và nhiều hơn nữa. Bạn có thể tùy chỉnh việc để phù hợp với yêu cầu của của bạn.

Hướng dẫn setup LocalStack

LocalStack hỗ trợ nhiều hệ điều hành và nhiều phương thức để cài đặt và sử dụng như nhưng ở đây tôi sẽ hướng dẫn setup localstack trên Ubuntu với pip:
1. Cài đặt LocalStack bằng pip

pip install localstask
  1. Sau khi cài đặt thành công, bạn có thể chạy LocalStack bằng cách chạy lệnh
localstask start

màn hình hiện ra như sau là đã start thành công

     __                     _______ __             __
    / /   ____  _________ _/ / ___// /_____ ______/ /__
   / /   / __ \/ ___/ __ `/ /\__ \/ __/ __ `/ ___/ //_/
  / /___/ /_/ / /__/ /_/ / /___/ / /_/ /_/ / /__/ ,<
 /_____/\____/\___/\__,_/_//____/\__/\__,_/\___/_/|_|

 💻 LocalStack CLI 3.1.0
 👤 Profile: default

[11:09:15] starting LocalStack in Docker mode 🐳  
───────────────────────────────────── LocalStack Runtime Log (press CTRL-C to quit) ─────────────────────────────────────
LocalStack version: 3.0.3.dev
LocalStack Docker container id: 06bb3bfac191
LocalStack build date: 2024-01-19
LocalStack build git hash: fd8b8ace

2024-02-01T04:09:17.982  INFO --- [-functhread4] hypercorn.error            : Running on https://0.0.0.0:4566 (CTRL + C to quit)
2024-02-01T04:09:17.982  INFO --- [-functhread4] hypercorn.error            : Running on https://0.0.0.0:4566 (CTRL + C to quit)
Ready.

Kết nối với LocalStack

Chúng ta thường thao tác với các dịch vụ AWS thông qua AWS CLI hoặc từ ứng dụng thông qua AWS SDK.

AWS CLI và AWS SDK đều hỗ trợ ghi đè endpoint của AWS. Để thao tác với LocalStack thông qua AWS CLI chúng ta chỉ cần thêm param --endpointurl http://localhost:4566.

Để thao tác với LocalStack, chúng ta nên cài thêm awslocal để thuận tiện hơn cho việc sử dụng:

pip install awscli-local

Ví dụ tương tác với LocalStack

awslocal s3api create-bucket --bucket sample-bucket --region us-west-2

Create bucket

awslocal s3api list-buckets

List bucket

awslocal s3api put-object \
  --bucket sample-bucket \
  --key image.jpg \
  --body image.jpg \
  --region us-west-2

Put object

Nếu muốn sử dụng UI thì các bạn cần có tài khoản Localstack để truy cập, bạn có thể tham khảo thêm tại đây. Tuy còn nhiều hạn chế nhưng tôi thấy đây là một công cụ rất tiện cho các bạn trong quá trình thực hành thao tác với AWS.