Tối ưu hiệu năng và tài nguyên

Triển khai Ứng dụng trên AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Vừa chậm vừa đắt

  • Ứng dụng chậm khi lưu lượng tăng đột biến
  • Hóa đơn Lambda tăng vọt trong cùng tháng
  • Tối chỉnh giúp chạy nhanh hơn và rẻ hơn

Đồng hồ tốc độ và chi phí cho thấy hàm vừa chậm vừa đắt, cần tối ưu

Triển khai Ứng dụng trên AWS

Đồng thời cho chi phí vs cold start


Reserved: giới hạn và bảo vệ

  • Giới hạn và đảm bảo năng lực cho một hàm
  • Cách rẻ nhất để kiểm soát, nhưng không xử lý cold start

Provisioned: trả phí cho trạng thái ấm

  • Giữ sẵn phiên bản được làm ấm, không còn cold start
  • Tốn hơn; chỉ dùng khi độ trễ thật sự quan trọng
Triển khai Ứng dụng trên AWS

Chọn đúng bộ nhớ theo đường cong thời lượng-chi phí

Đường cong thời lượng-chi phí khi tăng bộ nhớ: thời lượng giảm rồi phẳng, tổng chi phí tạo hình chữ U với mức bộ nhớ tối ưu rẻ nhất được tô sáng

  • Nhiều bộ nhớ = nhiều CPU = thời lượng ngắn hơn
  • Chi phí = giá bộ nhớ x thời lượng
  • Điểm rẻ nhất thường ở giữa
  • Profile ở vài mức, rồi chọn
Triển khai Ứng dụng trên AWS

Cache ở tầng ứng dụng

  • Tái sử dụng công việc trong execution context
  • Lambda ấm giữ biến toàn cục giữa các lần gọi
  • Cache cấu hình, client và tra cứu nóng
  • ElastiCache cho cache dùng chung giữa các phiên bản

Bộ nhớ đệm theo execution context của Lambda: đối tượng client toàn cục được tái sử dụng qua các lần gọi khi ấm, và cụm ElastiCache chia sẻ dữ liệu nóng giữa nhiều phiên bản hàm

Triển khai Ứng dụng trên AWS

CloudFront caching ở edge

  • CloudFront: cache phản hồi tại edge
  • Phục vụ yêu cầu lặp lại mà không gọi backend
  • Khóa cache có thể gồm headers, query strings, cookies
  • Nội dung tĩnh và cache được mở rộng gần như miễn phí

CloudFront cache tại edge: quả địa cầu với các điểm edge phục vụ phản hồi cache cho người dùng gần đó mà không gọi backend, cùng cấu hình khóa cache gồm headers và query strings

Triển khai Ứng dụng trên AWS

Chọn lớp cache phù hợp

Ba lớp cache xếp chồng: CloudFront ở edge cho nội dung tĩnh chia sẻ rộng rãi, cache trong bộ nhớ theo từng phiên bản cho đối tượng nóng, và ElastiCache hoặc DAX cho đọc tần suất cao dùng chung

  • Edge (CloudFront): nội dung tĩnh, chia sẻ rộng
  • Ứng dụng (trong bộ nhớ): đối tượng nóng theo phiên bản
  • Dữ liệu (ElastiCache/DAX): lượt đọc nóng dùng chung
  • Phối hợp nhiều lớp; mỗi lớp giảm một kiểu chi phí khác nhau
Triển khai Ứng dụng trên AWS

Ghép các kỹ thuật tối ưu

  • Chọn đúng bộ nhớ theo đường cong thời lượng-chi phí
  • Chỉ thêm provisioned concurrency nơi độ trễ quan trọng
  • Cache ở các lớp edge, ứng dụng, dữ liệu
  • Đo lường, đổi một thứ, rồi đo lại

Tóm tắt tối ưu: đường cong thời lượng-chi phí để chọn bộ nhớ, quyết định provisioned concurrency, sơ đồ ba lớp cache, và vòng lặp đo-đổi-đo

Triển khai Ứng dụng trên AWS

Cùng luyện tập nào!

Triển khai Ứng dụng trên AWS

Preparing Video For Download...