Một ELB duy nhất định tuyến lưu lượng truy cập đến chính xác một bộ phiên bản và phân phối lưu lượng đến cho tất cả các phiên bản "đằng sau" nó. Nó không chọn lọc định tuyến lưu lượng dựa trên bất kỳ phân tích lưu lượng lớp 7 nào, chẳng hạn như Host:
tiêu đề.
Bạn cần một ELB cho mỗi bộ phiên bản. Như bạn mô tả, đó là một ELB cho mỗi ứng dụng web.
Nếu mục đích chính của bạn để chạy ELB là giảm tải SSL bằng chứng chỉ ký tự đại diện (tôi có một hệ thống được thiết kế như thế này, với hàng tá ứng dụng sống tại nhiều -different-domains.my-wildcard-cert-domain.com), thì các trường hợp "Đằng sau" ELB có thể đang chạy một proxy ngược như HAProxy (hoặc một số lựa chọn thay thế khác, như Varnish) có thể đưa ra quyết định định tuyến lớp 7 và sau đó chuyển tiếp lưu lượng đến tập hợp con phù hợp của các máy phía sau chúng, cũng cho phép tinh vi hơn cân bằng tải và có lợi thế là cung cấp cho bạn các số liệu thống kê và lưu lượng truy cập, tổng hợp và riêng biệt.
/-- HAProxy \ /----- instances hosting app #1
ELB ---| >> ----- instances hosting app #2
\-- HAProxy / \----- instances hosting app #n
Các phiên bản ^^ ^ ^ trung gian có thể đánh giá các Host:
tiêu đề (trong số những thứ khác) và thậm chí nắm bắt giá trị của cookie phiên trong nhật ký của chúng để phân tích.
Thiết lập này cũng cho phép tôi chạy nhiều ứng dụng trên các tập hợp con chồng chéo, khi thích hợp và thực hiện nhiều việc khác mà ELB tự nó không hỗ trợ trực tiếp. Nó cũng trả về một trang "503" tùy chỉnh trong trường hợp ứng dụng bị quá tải hoặc không có sẵn, điều mà ELB không tự làm được. Tôi đã mô tả 2 máy chủ proxy ở đây, không vì lý do cụ thể nào ngoài việc bạn đề cập đến số 2 trong câu hỏi. Thiết lập của tôi thực sự có 3, một cho mỗi vùng khả dụng trong khu vực nơi triển khai này.