🌿 Requirements

  • Một web viết blog có khả năng mở rộng toàn cầu.
  • Các bài blogs hiếm khi được viết nhưng thường hay được đọc.
  • Caching
  • Khi người dùng mới đăng ký phải gửi một email chào mừng người dùng.
  • Khi có ảnh được upload sẽ tự động tạo thumbnail.

🌿 Architecture

  • Vẫn sử dụng kiến trúc API Gateway + Lambda + DAX + DynamoDB để đáp ứng yêu cầu như expose API HTTP, truy vấn các bài posts tăng hiệu suất đọc dữ liệu.
  • Để app global, sử dụng CloudFront để phân phối. Các edge location sẽ nhận request của người dùng, giảm độ trễ, nâng cao trải nghiệm của người dùng.
  • S3 thiết lập OAC - Origin Access Control để các edge location có thể truy cập được vào S3.
  • Tiếp đến là vụ gửi mail. Bật DynamoDB Stream để nhận được sự kiện khi có người dùng được tạo mới trong db. Sau đó dùng Lambda để thực hiện gửi mail qua dịch vụ Simple Email Service(SES)
  • Về vụ gen ra thumbnail, sau khi ảnh được upload vào S3, gửi sử kiện đến Lambda để tạo thumbnail và import vào S3.