Sự hiểu biết của tôi về Elastic Beanstalk là khi bạn triển khai phiên bản ứng dụng mới, nó sẽ triển khai phiên bản Amazon EC2 mỗi lần một trường hợp (nếu bạn có nhiều hơn một). Tuy nhiên, ngay cả với tối thiểu hai trường hợp, ứng dụng của tôi phải chịu một lượng thời gian ngừng hoạt động ngắn khi tôi tải lên một .war
mới khi triển khai nó, như thể nó đang cập nhật cả hai cùng một lúc. Có cách nào tôi có thể đảm bảo không có thời gian chết và rằng một trong những trường hợp được cập nhật đầy đủ và chấp nhận yêu cầu trước khi bắt đầu tiếp theo: Đây là cách các sự kiện nhìn. Lưu ý điều này là không có tải trên ứng dụng, do đó, nó sẽ chỉ trở nên tồi tệ hơn với lưu lượng truy cập sản xuất.Làm thế nào để ngăn chặn thời gian chết trong AWS Elastic Beanstalk triển khai một phiên bản mới của ứng dụng?
INFO
Environment update completed successfully.
INFO
New application version was deployed to running EC2 instances.
ERROR
The application did not respond at the health check URL.
INFO
Waiting for 8 seconds while EC2 instances download the updated application version.
INFO
Deploying version SomethingMore to 2 instance(s).
Cảm ơn, môi trường trao đổi CNAME chính xác là những gì tôi đang tìm kiếm. – Peter
Tôi đã thử tính năng này trên ứng dụng sản xuất của mình và quan sát thấy rằng ngay cả sau khi trao đổi CNAME và chờ DNS TTL hết hạn, một phần đáng kể lưu lượng truy cập vẫn sẽ chuyển sang môi trường beanstalk cũ. Tôi nghi ngờ điều này là do khách hàng đang nắm giữ bộ nhớ cache DNS lâu hơn họ nên. Nếu khách hàng không thể dựa vào để tuân theo TTL, thì kỹ thuật hoán đổi CNAME này dường như không phải là cách đáng tin cậy để thực hiện triển khai ZDD với Beanstalk. –
@AaronIba Đó là một quan sát rất tốt. Bạn đã nghĩ ra một số cách khác?Tôi đang nghĩ đến việc chỉ đơn giản là ghi đè lên phiên bản ứng dụng hiện có và tắt các trường hợp hiện có theo cách thủ công (ASG sẽ tăng cấp độ mới và kéo phiên bản ứng dụng đã cập nhật). Nhưng đó là quá trình thủ công/chậm/rườm rà và cảm thấy như một hack. –