Giải pháp đơn giản và thú vị ở đây là đặt ELB của bạn phía sau CloudFront.
Nếu máy chủ gốc (ELB trong trường hợp này) đưa ra lỗi 5XX (hoặc 4XX nếu bạn muốn), CloudFront có thể trả về trang lỗi tùy chỉnh , bạn có thể định cấu hình CloudFront để tìm nạp từ nhóm S3 bằng cách tạo nguồn gốc thứ hai trỏ đến xô và tạo một định tuyến hành vi bộ đệm (ví dụ) /errors/static/*
đến nhóm.
Điều này hoạt động tốt hơn so với chuyển đổi dự phòng của Tuyến 53 vì một lý do quan trọng ... một lỗ hổng nghiêm trọng, nếu bạn sẽ ... trình duyệt rất tệ về việc tra cứu DNS trong thời gian dài hơn bạn mong đợi. DNS TTL không liên quan.
Về cơ bản, một khi trình duyệt có mục nhập DNS trong tay, nó sẽ tiếp tục cố gắng sử dụng nó ... thông thường, cho đến khi tất cả các cửa sổ trình duyệt được đóng lại.
Vì vậy, nếu trang web của bạn không hoạt động đối với một khách truy cập đã ở trên trang web, họ không thể thấy trang web thay thế.
Tồi tệ hơn, nếu khách truy cập truy cập trang web của bạn lần đầu tiên trong khi nó ngừng hoạt động, họ sẽ "dính" vào trang bảo trì cho đến khi họ đóng tất cả các cửa sổ trình duyệt.
Nếu bạn sử dụng DNS failover, điều đó thực sự chỉ tốt nếu mục tiêu chuyển đổi dự phòng vẫn là ứng dụng của bạn, có thể chỉ là xa hơn.
Bạn có thể tắt bộ nhớ đệm của CloudFront nếu bạn không cần nó.
Bạn cũng có thể định cấu hình bộ đệm ẩn lỗi của CloudFront thành giá trị khác không nếu bạn muốn nó thoát khỏi trang web của bạn trong khi nó ngừng hoạt động và cố gắng khôi phục. Đối với một trang nhất định có lỗi, nó sẽ tiếp tục hiển thị trang lỗi và không làm phiền máy chủ của bạn với nhiều yêu cầu hơn cho trang đó cho đến khi Lỗi bộ nhớ cache hết hạn.