When The Cloud Gets Dark — How Amazon's Outage Affected Airbnb

Bài tóm tắt Airbnb 2011 2. Tăng trưởng Độ khó: Cơ bản

Airbnb · 2011 · 2. Tăng trưởng · Độ khó: Cơ bản — bài gốc

Bối cảnh

  • Toàn bộ hạ tầng Airbnb năm 2011 trên AWS. Sự cố us-east tháng 4/2011: mạng ở hai AZ mất kết nối, EBS tự re-mirror nhưng không đủ capacity dự phòng, volume EBS treo hoặc I/O cực chậm.

Thay đổi chính (diễn biến)

  • Tổng cộng khoảng 30 phút downtime, search mất 3 giờ, không mất dữ liệu.
  • DB (RDS trên EC2 + EBS) treo lúc đầu: site sập 18 phút. Master hồi lại và app server chỉ dùng master nên site chạy tiếp; slave (dùng cho analytics, background task) treo tới hôm sau, email/nhắc việc trễ tới 8 giờ. Sửa bằng trỏ background task sang master.
  • Search daemon chết vì cùng nguyên nhân (indexer đọc slave), trỏ indexer sang master.
  • Lần thứ ba (11 phút): master treo lại do EBS; deploy code đúng lúc sự cố, process cũ kẹt chờ query không thoát, process mới lên đủ tải, gấp đôi process làm hết RAM, phải kill tay.

Vì sao

  • Theo Airbnb, thứ cứu họ là đã trả thêm tiền cho RDS Multi-AZ (chuyển từ setup cũ vài tháng trước); họ coi lỗi AZ là chuyện bình thường của mọi data center và trách nhiệm xử lý thuộc về engineer xây trên đó.

Bài học cho SWE

  • Phụ thuộc ngầm vào replica (job nền, indexer) biến sự cố replica thành sự cố tính năng; cần biết đường lùi về primary.
  • Deploy trong lúc hệ thống bệnh có thể nhân đôi tải tài nguyên; process cũ không thoát được khi kẹt I/O.

Liên quan