웹사이트 검색

AWS Application Load Balancer에서 경로 기반 라우팅을 구성하는 방법


이 페이지에서

  1. 이 가이드의 개요
  2. EC2 인스턴스 구성
  3. 대상 그룹 구성
  4. 대상 그룹에 EC2 인스턴스 등록
  5. Application Load Balancer 생성
  6. 경로 기반 전달 규칙 추가
  7. 설정 확인 중…\n
  8. 결론

AWS에서 ELB 및 Elastic Load Balancing은 애플리케이션의 요구에 따라 서버를 추가하거나 해제할 수 있고 애플리케이션에서 들어오는 트래픽이 여러 대상에 분산된다는 개념이 있습니다. 이러한 대상은 하나 이상의 가용 영역에 있는 EC2 인스턴스, 컨테이너 및 IP 주소일 수 있습니다. 지원되는 AWS Elastic Load Balancer 유형은 Application Load Balancer(ALB), Network Load Balancer(NLB), Gateway Load Balancer(최근 출시) 및 Classic Load Balancer입니다. 이러한 로드 밸런서는 구성이 다릅니다. 예를 들면 다음과 같습니다.

1. Application Load Balancer: 두 개 이상의 EC2 인스턴스 간에 들어오는 애플리케이션 트래픽을 자동으로 분산하여 작동합니다. 요청 내용에 따라 라우팅 규칙을 정의할 수 있습니다(콘텐츠 기반 라우팅). 레이어 7 로드 밸런서입니다.

2. 네트워크 로드 밸런서: NLB는 IP 프로토콜 데이터(TCP 및 UDP)를 사용하여 EC2, 마이크로서비스 및 컨테이너와 같은 AWS 리소스에 대한 연결을 라우팅합니다. 레이어 4 로드 밸런서입니다.

3. 게이트웨이 로드 밸런서: EC2 인스턴스에서 실행되는 NextGen 방화벽(NGFW), IPS, IDS 등과 같은 타사 가상 어플라이언스와 함께 사용됩니다. 여러 가상 어플라이언스의 트래픽에 대해 단일 게이트웨이를 배치하여 작동하며 이러한 여러 가상 어플라이언스는 수요에 따라 확장 또는 축소될 수 있습니다. 이는 네트워크의 안정성에 좋습니다. Layer 3(Gateway)와 Layer 4(Load Balancing) 로드 밸런서입니다.

4. 클래식 로드 밸런서: CLB는 여러 EC2 인스턴스 간의 로드 밸런싱에 사용되는 AWS의 레거시 로드 밸런서입니다. EC2-Classic 네트워크 내에서 설계된 애플리케이션에 권장됩니다. 레이어 4/7 로드 밸런서입니다. 이 로드 밸런서를 피하려면 AWS에서 권장합니다.

이 가이드 개요

이 자습서에서는 AWS의 Application Load Balancer에 대한 경로 기반 라우팅을 구성합니다. 이 작업에 IAM 사용자 계정을 사용할 것입니다. 이 설정에 대한 다음 리소스가 있습니다.

1. 각각 하나 이상의 EC2 인스턴스를 포함하는 두 개의 가용 영역.

2. 위의 두 가용 영역 각각에 최소 하나의 퍼블릭 서브넷이 있는 VPC. 이 퍼블릭 서브넷은 로드 밸런서를 구성하는 데 사용됩니다.

3. 각 인스턴스에 웹 서버를 설치하고 보안 그룹을 사용하여 이러한 인스턴스에 대한 포트 80 액세스를 허용합니다.

EC2 인스턴스 구성

이 가이드에서는 Apache Httpd 웹 서버가 설치된 두 개의 Amazon Linux EC2 인스턴스를 구성했습니다. 한 서버에는 다음 내용이 포함된 index.html 파일이 포함된 'signin' 디렉토리가 있습니다. "Welcome User? Sign in to continue...\

다른 서버에는 "New User? Sign Up First...\라는 내용이 포함된 index.html 파일이 포함된 'signup' 디렉토리가 있습니다.

'signin' 및 'signup' 디렉토리는 모두 루트 디렉토리 안에 있습니다(/var/www/html)

대상 그룹 구성

1단계. 요청을 라우팅하기 위해 먼저 각 서버에 대해 하나씩 두 개의 대상 그룹을 생성합니다. EC2 콘솔을 열고 왼쪽 패널에서 '대상 그룹'(로드 밸런싱 아래에 있음)을 찾아 선택합니다.

2단계. 새 페이지에서 '대상 그룹 만들기' 버튼을 클릭합니다.

3단계. 이제 '그룹 세부 정보 지정' 페이지에 있습니다. 기본 구성에서 다음을 수행합니다.

  1. 대상 유형 선택: 여기에서 '인스턴스'를 선택합니다.\n
  2. 대상 그룹 이름: 대상 그룹에 적합한 이름을 지정합니다(이 경우 '로그인').\n
  3. 프로토콜: HTTP\n
  4. 포트: 80
  5. VPC: 여기에서 VPC 이름을 선택합니다.\n
  6. 프로토콜 버전: 기본값을 유지합니다.(HTTP1)\n

'상태 확인' 설정에서:

  1. 상태 확인 프로토콜: HTTP\n
  2. 상태 확인 경로: '사용하려는 경로'(여기서는 '/signin')\n
  3. '고급 상태 확인 설정'을 기본값으로 유지합니다. 필요한 경우 태그를 추가합니다(선택 사항). 계속하려면 '다음'을 클릭하십시오.\n

대상 그룹에 EC2 인스턴스 등록

1단계. 이제 위의 대상 그룹에 EC2 인스턴스 중 하나를 추가합니다. 인스턴스를 선택한 다음 '아래 보류로 포함' 버튼을 클릭합니다.

2단계. 위에서 선택한 인스턴스가 '검토 대상' 아래에 나타납니다. 이제 '대상 그룹 만들기'를 클릭합니다.

애플리케이션 로드 밸런서 생성

1단계. EC2 콘솔에서 로드 밸런서로 이동하여 로드 밸런서 생성 버튼을 클릭한 다음 새 페이지에 표시된 'Application Load Balancer'를 선택합니다.

경로 기반 전달 규칙 추가

1단계. ALB 상태가 활성으로 변경되면 포워딩 규칙을 진행합니다. 로드 밸런서 이름을 클릭한 다음 수신기 탭으로 이동합니다.

2단계. '규칙' 열에서 '규칙 보기/편집'을 클릭한 다음 '+' 기호와 '규칙 삽입'을 차례로 클릭합니다.

3단계. 'IF(모두 일치)' 열에서 '+ 조건 추가' 드롭다운 화살표를 클릭하고 규칙 유형으로 '경로'를 선택하고 'is' 레이블에 해당하는 텍스트 필드에 '/signin*'을 입력합니다. .

4단계. 'Then' 열에서 '+작업 추가' 드롭다운 화살표를 클릭하고 작업으로 '전달 대상'을 선택합니다. 여기에서 대상 그룹 '로그인'을 선택합니다.

경로가 '/signup*'인 대상 그룹 'SignUp'에 대해 위의 2단계와 3단계를 반복합니다. 규칙을 저장하면 두 가지 규칙이 생깁니다.

설정 확인 중…

모든 것이 예상대로 작동하는지 확인하려면 웹 브라우저를 열고 로드 밸런서의 DNS를 붙여넣고 다음을 추가합니다.

1) 대상 그룹 '가입' 경로: /signup

<엠>

2) 대상 그룹 '로그인' 경로: /signin

<엠>

결론

축하합니다. 마침내 AWS 애플리케이션 로드 밸런서에서 경로 기반 라우팅을 위한 작업 시나리오를 구성했습니다.