Một nhà phát triển đã mất sạch 10 năm dữ liệu trên AWS

Vừa qua, tài khoản AWS 10 năm tuổi của một kỹ sư bị xóa. Không có cảnh báo, không thời gian gia hạn, không cơ hội khôi phục. Chỉ còn lại khoảng trống dữ liệu tuyệt đối.

Đây là câu chuyện về một lỗi nội bộ thảm họa tại AWS MENA, cùng 20 ngày hỗ trợ bế tắc với một câu hỏi duy nhất không được trả lời thẳng: Dữ liệu còn tồn tại không, và bài học về niềm tin khi giao phó dữ liệu cho đám mây.

Kiến trúc dự phòng đáng lẽ phải bảo vệ kỹ sư này

Hệ thống được thiết kế để tránh “bỏ trứng vào một giỏ”:

  • Multi-region replication sang AWS Europe, tách biệt hạ tầng với US regions
  • Dead man’s switch cho tình huống khẩn cấp
  • Backup strategy bám theo AWS Well-Architected best practices
  • KMS key tách rời, không lưu cùng data

Kịch bản duy nhất không được tính đến: single point of failure nằm ở chính provider..

Trong suốt 10 năm là khách hàng AWS, kỹ sư này dùng đây làm testbed phục vụ công việc mã nguồn mở, thử triển khai cho các gem Ruby như capistrano-pumacapistrano-sidekiq. Không phải hệ thống production, nhưng là nền tảng để tạo ra giá trị cho cộng đồng.

Vào đúng sinh nhật, AWS đưa ra một minh chứng rằng mọi lớp dự phòng đều vô nghĩa nếu chính provider xóa dữ liệu.

20 ngày hỗ trợ đầy bế tắc

  • 10 Jul: AWS yêu cầu xác minh. Hạn 5 ngày, tính cả cuối tuần.
  • 14 Jul: Form hết hạn. Liên hệ hỗ trợ để hỏi họ cần gì.
  • 16–20 Jul: Im lặng 4 ngày, sau đó nói sẽ chuyển cấp có thẩm quyền.
  • 20 Jul: Form mới được gửi lại.
  • 21 Jul: Nộp CMND và hóa đơn dịch vụ ở dạng PDF rõ nét. Phản hồi sau 10 giờ.
  • 22 Jul: AWS báo tài liệu không đọc được. Cùng file mà ngân hàng chấp nhận.
  • 23 Jul: Tài khoản bị chấm dứt. Ngày sinh nhật.
  • 24 Jul: Hỏi câu duy nhất quan trọng: Dữ liệu còn không.
    • Trả lời: “Trường hợp đang được bộ phận dịch vụ xem xét”.
    • Đề nghị cấp quyền chỉ đọc tạm thời để tự sao lưu. Bị từ chối.
  • 28–29 Jul: Sau nhiều trả lời mẫu, hỏi thẳng Yes hoặc No.
    • AWS thừa nhận: Do xác minh không hoàn tất trước hạn, tài nguyên đã bị chấm dứt.
  • 30 Jul: Email chốt kèm lời mời chấm điểm hỗ trợ 5 sao.

Chính sách công khai và thực tế nhận được

Theo tài liệu công khai của AWS về đóng tài khoản:

  • 90 ngày hậu đóng tài khoản để mở lại và dữ liệu được giữ
  • Sau 90 ngày, dữ liệu mới bị xóa vĩnh viễn

Nhưng trong trường hợp này, tài khoản không do chủ động đóng mà bị treo vì không xác minh. Vùng xám chính sách này không được công bố rõ ràng, và kết quả là không áp dụng giữ dữ liệu 90 ngày.

Biến số người thanh toán

AWS đổ nguyên nhân cho vấn đề bên thứ ba thanh toán. Một consultant từng chi trả khoảng 200 USD/tháng bị ảnh hưởng bởi cú sập FTX rồi biến mất. Tuy nhiên, tài khoản vẫn có thẻ riêng đang hoạt động, từng dùng trước đó và được giữ như phương án dự phòng. Đề nghị chuyển billing về thẻ này bị từ chối.

Nếu chỉ là vấn đề thanh toán, AWS có thể:

  • Chuyển billing sang thẻ cá nhân
  • Tạm ngưng dịch vụ thay vì xóa dữ liệu
  • Áp dụng giai đoạn 90 ngày như tài liệu

Thay vào đó, tất cả diễn ra như một thử nghiệm nội bộ lỗi.

Hệ sinh thái bị phá hủy

AWS không chỉ lưu backup. Đây là phòng sạch để phát triển mã nguồn mở, quy trình phát hành gem Ruby:

  • BreakerMachines: circuit breaker cho Ruby
  • ChronoMachines: state machine theo thời gian
  • RailsLens: theo dõi hiệu năng Rails
  • Và nhiều gem khác đang chạy trong hệ thống sản xuất toàn cầu

Cùng với đó, mất thêm: một cuốn sách lập trình hoàn chỉnh, tutorial phần cứng kèm phần mềm, Go for Rubyists, nhiều tài liệu chưa công bố, các bảng so sánh kỹ thuật quan trọng.

Giả thuyết kỹ thuật

Nguồn nội bộ AWS cho rằng nhiều tài khoản bị ảnh hưởng bởi một thử nghiệm. Công cụ Java nội bộ dựa vào tham số -dry nhưng kỹ sư vận hành lại dùng --dry. Tham số dài bị bỏ qua, lệnh chạy thật trong môi trường sản xuất.

Sự thật đắng lòng

Bạn trao cho AWS AWS trao lại cho bạn
Một thập kỷ trung thành Chấm dứt ngay trong ngày
Lịch sử thanh toán đúng hạn 20 ngày trả lời vòng vo
Tài liệu xác minh rõ ràng Từ chối vì không đọc được
Đóng góp mã nguồn mở Không cân nhắc gì
Sao lưu, khóa tách biệt Xóa sạch dữ liệu
Niềm tin Phản bội

Bài học rút ra

  1. Không tin tuyệt đối một nhà cung cấp. Multi-region trong cùng provider không giúp gì nếu sự cố xuất phát từ chính họ.
  2. Kế hoạch thoát phải chạy trong giờ, không phải ngày. Script hóa di trú, chuẩn bị lộ trình DNS, đối sánh dịch vụ.
  3. Offsite backup: on-prem hoặc cloud khác, vật lý bất biến theo chu kỳ.
  4. Tách danh tính thanh toán và vận hành, có hạn mức, cảnh báo và tự chuyển billing khi lỗi.
  5. Lưu vết giao tiếp: ảnh chụp, email, timestamp.
  6. Kiểm thử khôi phục định kỳ từ bản sao lưu lạnh mỗi quý.
  7. Thu nhỏ blast radius: cách ly tài khoản, khóa, dữ liệu.
  8. Đánh giá rủi ro địa lý & pháp lý, nhất là với KYC và thay đổi điều khoản.

Checklist nhanh cho đội kỹ thuật

  • Thiết lập sao lưu bất biến ngoài provider chính, kiểm thử restore ngay trong tuần
  • Viết playbook di trú sang cloud phụ, chuẩn hóa Terraform/Pulumi cho cả hai
  • Bật cảnh báo billing bất thường, cài chuyển mạch thanh toán dự phòng
  • Tách dữ liệu lâu dài khỏi tài khoản vận hành hàng ngày
  • Lập lịch DR drill hàng quý và postmortem bắt buộc sau diễn tập

Lời kết

Public cloud không phải partner nó là business. Khi lợi ích kinh doanh xung đột với dữ liệu của bạn, phần thua thường thuộc về bạn. kỹ sư kia đặt mục tiêu build tool để exit AWS dễ dàng, và nhiều khách hàng đã chuyển workload sang OCI, Azure, Google Cloud.

Bài viết gốc: https://www.seuros.com/blog/aws-deleted-my-10-year-account-without-warning

Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận