Xử lý sự cố ứng dụng đã triển khai

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

Dunieski Otano

Amazon Web Services Solutions Architect

Task timed out

  • Một hàm bị lỗi, nhưng chỉ thỉnh thoảng
  • Log ghi "Task timed out"
  • Dấu hiệu chỉ ra nguyên nhân thật sự

Một đồng hồ bấm giờ cạnh dòng log lỗi cho thấy một tác vụ Lambda bị hết thời gian

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

Các chữ ký lỗi Lambda thường gặp

Lưới 2x2 các chữ ký lỗi của Lambda: Timeout với log task-timed-out, Throttled với TooManyRequestsException, Access Denied với AccessDeniedException, và Out of Memory với lỗi signal-killed

  • Timeout: "Task timed out after N seconds"
  • Throttle: TooManyRequestsException
  • Từ chối IAM: AccessDenied, không được phép
  • Hết bộ nhớ: runtime bị dừng giữa chừng
Triển khai Ứng dụng trên AWS

Phản ứng đầu tiên khi hàm bị lỗi

  • Đọc thông báo lỗi trước khi thay đổi gì
  • Khớp nó với một chữ ký đã biết
  • Kiểm tra độ trễ cuộc gọi downstream để tìm timeout
  • Thay đổi một thứ, rồi kiểm tra lại

Vòng lặp xử lý sự cố: đọc thông báo lỗi, khớp với chữ ký đã biết, kiểm tra độ trễ downstream, thay đổi một thứ rồi kiểm tra lại

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

CloudWatch Logs Insights

Truy vấn Logs Insights dùng filter để thu hẹp và stats để tổng hợp. Ở đây, nó đếm lỗi theo phút:

fields @timestamp, @message
| filter level = "ERROR"
| stats count() as errors by bin(1m)
| sort errors desc
Triển khai Ứng dụng trên AWS

Gỡ lỗi lỗi tích hợp từ cả hai phía

  • Lỗi thường xảy ra giữa các dịch vụ
  • Đọc cả log của bên gọi và bên được gọi
  • Khớp theo request ID hoặc trace ID
  • Khoảng trống giữa chúng cho thấy điểm đứt gãy

Log của bên gọi và bên được gọi căn theo request ID, với một khoảng trống được gắn nhãn điểm lỗi tích hợp nơi yêu cầu dừng lại

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

Health check và readiness probe

Bộ cân bằng tải định tuyến tới các mục tiêu khỏe với dấu kiểm xanh, và một mục tiêu lỗi bị loại khỏi vòng quay sau nhiều lần kiểm tra sức khỏe thất bại

  • Health check: instance còn sống và phục vụ chứ?
  • Load balancer chỉ định tuyến tới mục tiêu khỏe
  • Readiness: đã sẵn sàng nhận traffic chưa?
  • Kiểm tra thất bại sẽ rút mục tiêu khỏi vòng quay
Triển khai Ứng dụng trên AWS

Sổ tay xử lý sự cố

  • Đọc lỗi và khớp chữ ký
  • Truy vấn log với Logs Insights để khoanh vùng
  • Liên hệ hai phía bằng request hoặc trace ID
  • Thay đổi một thứ rồi xác minh

Sổ tay xử lý sự cố 4 bước: Đọc lỗi và khớp chữ ký, Truy vấn log với Insights để khoanh vùng, Liên hệ hai phía bằng trace ID, Thay đổi một thứ rồi xác minh

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...