여러 웹 애플리케이션을위한 Elastic Load Balancer


13

나는이 N웹 어플리케이션을. 각 웹앱은 도메인에서 다른 호스트 이름으로 제공되며 AWS에서 실행되는 2 개의 인스턴스에 배포됩니다. 즉, 고유 한 webapps 2N를 실행하는 쌍으로 나뉘어 진 인스턴스가 있습니다 N.

Host헤더를 기반으로 요청을 처리하는 두 인스턴스 중 하나에 요청을 프록시하는 단일 AWS Elastic Load Balancer를 설정하고 싶습니다 . 단일 ELB를 사용하여 가능 N합니까? 아니면 각 인스턴스 쌍마다 하나씩 ELB 를 배포해야 합니까?


답변:


19

단일 ELB는 트래픽을 정확히 하나의 인스턴스 집합으로 라우팅하고 들어오는 트래픽을 "뒤에있는"모든 인스턴스로 분산시킵니다. Host:헤더 와 같은 트래픽의 계층 7 분석을 기반으로 트래픽을 선택적으로 라우팅하지 않습니다 .

각 인스턴스 세트 마다 하나의 ELB 가 필요 합니다. 당신이 그것을 설명 할 때, 그것은 각 웹 응용 프로그램마다 하나의 ELB입니다.

ELB를 실행하기위한 기본 목적이 와일드 카드 인증서를 사용하여 SSL을 오프로드하는 것이라면 (여러 개의 앱이 many-different-domains.my-wildcard-cert-domain.com에있는 이와 같이 설계된 하나의 시스템이 있음) 인스턴스 ELB는 (니스와 같은 또는 여러 다른 대안) HAProxy로 역방향 프록시 등을 실행 할 수있다 "뒤에" 레이어 7은 또한 더 정교한 수 있습니다 그들 뒤에 기계의 적절한 부분 집합, 앞으로 다음 트래픽을 라우팅을 결정하고 확인 로드 밸런싱 및 통계 및 트래픽 카운터를 제공하고 집계 및 분리 할 수있는 이점이 있습니다.

       /-- HAProxy \  /----- instances hosting app #1  
ELB ---|            >> ----- instances hosting app #2 
       \-- HAProxy /  \----- instances hosting app #n 

중간 ^^^^ 인스턴스는 Host:헤더를 평가할 수 있으며 분석을 위해 로그에서 세션 쿠키의 값을 캡처 할 수도 있습니다.

이 설정을 통해 필요한 경우 겹치는 인스턴스 하위 집합에서 여러 앱을 실행할 수 있으며 ELB 자체에서 직접 지원하지 않는 다른 많은 작업을 수행 할 수 있습니다. 또한 응용 프로그램이 오버로드되거나 다른 방식으로 사용할 수없는 경우 ELB가 자체적으로 수행하지 않는 경우 사용자 지정 "503"페이지를 반환합니다. 여기에 2 개의 프록시 서버가 묘사되어 있습니다. 문제의 숫자 2에 대한 언급 외에는 특별한 이유가 없습니다. 내 설정에는 실제로 배포 된 지역의 각 가용 영역 당 하나씩 3이 있습니다.


3
2016 년 8 월 Amazon은 HTTP 헤더를 기반으로 다른 대상 그룹으로 라우팅 할 수있는 AWS Application Load Balancer 를 시작했습니다 .
Jens Bannmann

2
@JensBannmann 사실입니다. 그들이 릴리스했을 때, 지원하는 유일한 라우팅 규칙은 경로를 기반으로했습니다. 2017 년에는 Host:헤더를 기반으로 라우팅하는 기능이 추가되었습니다 . 이 답변은 2014 년에 썼을 때 맞았지만 업데이트 할 때 인 것 같습니다. 다시 관심을 가져 주셔서 감사합니다.
Michael-sqlbot

3

2016 년 8 월 현재 Amazon ELB는 두 가지 유형의로드 밸런서를 제공합니다.

  • Classic Load Balancer 는 애플리케이션 프로토콜 컨텐츠를 고려하지 않고 모든 트래픽을 하나의 인스턴스 세트로 라우팅합니다. 이전에는 이것이 유일하게 사용 가능한 ELB 유형이었습니다.
  • Application Load Balancer 는 URL 경로를 기반으로 구성 가능한 규칙에 따라 트래픽을 다른 대상 그룹으로 라우팅 할 수 있습니다 . 블로그 게시물 New – AWS Application Load Balancer 는 여러 마이크로 서비스로 구성된 애플리케이션을 주요 사용 사례로 언급하고 자세한 설정 지침을 제공합니다.

사용 사례의 경우 Application Load Balancer가 이상적입니다. 그러나 10 개의 규칙으로 제한되므로 N10보다 크지 않은 경우에만 쉽게 작동합니다 .


0

ec2 인스턴스 목록에 두 개의 인스턴스가 있습니다. 그러나 각 인스턴스마다 많은 웹 애플리케이션이 있습니까? 가상 호스트를 사용하여 각각을 배포 하시겠습니까?

호스트에서 요금을 분할하려면 ELB가 하나만 필요합니다. 예:

External request > ELB (based on CNAME pointer)  > EC2 Instance. 

나는 당신이 나에게 당신의 시나리오를 더 많이 주면 좋을 것이라고 생각하며 어쩌면 내가 당신을 도울 수 있습니다.

문안 인사.

최신 정보

EC2 인스턴스에 다른 webapp가있는 경우 두 개의 ELB (Elastic Load Balancer)가 있어야합니다. 한 쌍의 인스턴스에 대한 각각. 총 4 개의 인스턴스


인스턴스 목록에 2N앱이 표시 됩니다. N 개의 webapp가 있으며 각각 두 개의 인스턴스가 있습니다. 이를 명확하게하기 위해 질문을 편집하겠습니다.
thesamet

응답이 업데이트되었습니다.
Junior Rocha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.