DevOps đốt tiền Infra

Các tình huống (mong là ko gặp) ở thực tế

1. Mưa charge từ trên trời (cloud) rơi xuống

Ngày đen tối 1/2/24 AWS hân hạnh giới thiệu tính năng thu phí cho IPv4 (trước đây là free)


A charge of $0.005 per IP per hour for all public IPv4 addresses, whether attached to a service or not

Chi tiết bạn có thể tham khảo ở đây: AWS Blog

Công ty X sử dụng một hệ thống cloud với các ECS Task Scheduler để quản lý và giám sát các EC2 instances. Các tác vụ này được scripting bằng bash và chạy mỗi 30 phút để thực hiện các nhiệm vụ:

  • Monitor các EC2 instance
  • Checking business ứng dụng, dung lượng, logic nghiệp vụ hệ thống
  • Khởi động lại server nếu cần thiết ...

Khi một ECS Task Instance chạy, nó sẽ sử dụng một địa chỉ IP Public, nếu assignPublicIp được bật:

  AssignPublicIp: String

Sau khi ECS task hoàn thành, địa chỉ IP này sẽ được release. Mỗi ECS task thường mất hơn 15 phút để hoàn thành và chi phí cho mỗi giờ sử dụng IP Public là $0.005. Nếu một ECS task chạy đúng kế hoạch (24 lần/ngày * 1/4 giờ/lần * $0.005), chi phí sẽ không đáng kể.

Nhưng nếu đấy là trường hợp task chạy mượt ko có lỗi, trong code chưa care đển 1 case dẫn đến ECS Task rơi vào infinive loops, khiến Task cứ gọi nhau ko dừng lại được, public IP ko được release. Vì là cron Task, đến giờ lại tạo Task mới làm những việc có lỗi mà lỗi lần trước đã xin lỗi đâu.

Vậy là charge thì AWS cứ tăng nhiệt tình, ko có cảnh báo nào được thiết lập, bill tăng x10. Accountant check bill báo cáo lên sếp, sếp túm đội SRE ra xử, đội DevOps bắt đầu check explore bill truy vết thì phát hiện ra bug code đã không handle được hết case server như đã nói ở trên. Đang mặt xị nhìn nhau thì ô SRE lead vớ được cái link AWS Blog, liền open case support cho AWS theo kiểu em lậy anh ko thông báo gì mà đã các anh đã bội thu tiền rồi em sao biết được. Than khóc 1 lúc thì mấy anh cũng xuôi rồi bảo bỏ qua cho cái bill này rút kinh nghiệm lần sau. Cảm ơn nhiệt tình rồi tay bắt mặt mừng ôm nhau và không quên rút kinh nghiệm sâu sắc.