AWS CLI và SDK

Mỗi request gửi đến AWS cần được sign, cụ thể là Sig4, có thể gửi dưới dạng request param (X-Amz-xxxx) hoặc request header (Authorization)

CLI

  • Có thể chỉ định profile cho các access key / secret key khác nhau để sử dụng cho các credential khác nhau trên cùng một máy tính
  • Khi sử dụng MFA, cần call api sts get-session-token để lấy temp credential rồi setting profile mới

Credential Chain

  • Command line option: –region, –output, –profile
  • Environment variables
  • CLI credentials file
  • CLI configuration file
  • Container credentials
  • Instance profile credentials

Khi sử dụng SDK thì sẽ như sau (VD là Java)

  • Java system properties
  • Environment variables
  • The default credential profiles file
  • Amazon ECS container credentials
  • Instance profile credentials

Limit

  • API Rate Limits
    • Có giới hạn khi call API AWS, vd như DescribeInstances API for EC2 has a limit of 100 calls per seconds, GetObject on S3 has a limit of 5500 GET per second per prefix
    • For Intermittent Errors: implement Exponential Backoff
    • For Consistent Errors: request an API throttling limit increase
  • Service Quotas (Service Limits)
    • Có giới hạn khi sử dụng các service của AWS, vd như Running On-Demand Standard Instances: 1152 vCPU
    • Request tăng service quota bằng cách gửi Ticket
    • Request tăng service quota bằng cách sử dụng Service Quotas API

Exponential Backoff

Ý tưởng của cách implement này là nếu một request lỗi thì thì gửi lại request đó sau 1 khoảng thời gian lâu gấp đôi thời gian request trước. VD như lần đầu gửi là giây đầu tiên, nếu có lỗi thì đợi 2 giây rồi gửi lại request, nếu có lỗi tiếp thì gửi lại sau 4 giây.

  • AWS SDK đã implement cách này
  • Chỉ implement các lỗi mà http request return error 5xx
  • Không implement các lỗi mà http request return error 4xx

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *