Skip to Content

Rails - find_each

Posted on

Hiện tượng

Alarm cảnh báo về CPU RDS tăng vượt 60%. Response time tăng mạnh.

Flow xử lý

  1. Check MySQL Performance Insight xem đâu là câu query bị chậm? Đang ở page nào?
  2. Check Kibana xem số lượng requests vào page đó có nhiều không? Có dấu hiệu bị spam không?
  3. Check Cloudfront xem page đó có đang được cache không? Nếu có, tại sao nó không hit vào cache mà lại truyền hết qua ALB?

Giải pháp tạm thời

  • Detect ra User Agent/ IP ranges mà bọn BOT đang chạy, block nó đi.
  • User Agent thì block qua ALB rules.
  • IP ranges thì block qua WAF hoặc nginx. IP ranges có thể lấy từ Kibana, filter log request, sau đó download file và lấy log ips.

Giải pháp lâu dài

  • Fix performance cho page bị chậm.
  • Có thể sử dụng AWS Shield để xử lý
comments powered by Disqus