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