🌿 Requirements

  • Tạo một mobile app:
    • Expose REST API với HTTPS
    • Kiến trúc serverless.
    • User có thể tương tác trực tiếp với folder của họ trên S3
    • User cần xác thực thông qua một service quản lý không máy chủ.
    • User có thể đọc và ghi mới các to-do, nhưng thường chủ yếu là họ sẽ đọc.
    • Database có thể scale và có thông lượng có khả năng đọc cao.

🌿 Serverless Architecture

  • Sử dụng API Gateway để expose các HTTP API và để gọi đến các Lambda function.
  • Lambda function dùng để xử lý logic và query vào database
  • Database sử dụng DynamoDB để đáp ứng kiến trúc không máy chủ.
  • Về vụ xác thực sử dụng Amazon Cognito để định danh cho người dùng. Sử dụng Cognito Indentity pool để cung cấp certificate cho người dùng. Người dùng có thể sử dụng nó để thực hiện các tác vụ với S3.
  • Để nâng cao khả năng đọc dữ liệu từ trong DB, sử dụng DAX làm lớp layer giữa LambdaDynamoDB. Giúp cache lại các thông tin hay được sử dụng, từ đó nâng cao hiệu suất đọc cũng như giảm thiểu các câu queries tới DynamoDB.