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
- Sự cố và postmortem · Failover, replica và dự phòng dữ liệu · Độ tin cậy và multi-region
- Airbnb sau đó tách DB chính bằng promote replica RDS: Airbnb 2015
#Sự cố AWS us-east-1 4/2011#EBS re-mirroring#RDS Multi-AZ#replica cho analytics#search daemon#deploy giữa sự cố#OOM
Được nhắc tới trong
Công ty (1)