Elastic Load Balancing
Application Load Balancer

자습서: Application Load Balancer를 통한 경로 기반 라우팅 사용

규칙을 통해 URL 경로를 기반으로 요청을 전달하는 리스너를 생성할 수 있습니다. 이를 경로 기반 라우팅이라고 합니다. 마이크로서비스를 실행 중인 경우 경로 기반 라우팅을 사용하여 여러 백 엔드 서비스에 트래픽을 라우팅할 수 있습니다. 예를 들어 일반 요청을 하나의 대상 그룹으로 라우팅하고 이미지를 다른 대상 그룹에 렌더링하도록 요청할 수 있습니다.

시작하기 전

  • Virtual Private Cloud(VPC)에서 EC2 인스턴스를 시작합니다. 이들 인스턴스에 대한 보안 그룹이 리스너 포트 및 상태 확인 포트에서 액세스를 허용하는지 확인합니다. 자세한 내용은 대상 보안 그룹 단원을 참조하십시오.

  • 등록하려는 EC2 인스턴스에 마이크로서비스가 배포되어 있는지 확인합니다.

로드 밸런서 생성

경로 기반 라우팅을 사용하는 로드 밸런서를 만들려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 모음에서 EC2 인스턴스에 대해 선택한 것과 동일한 리전을 선택합니다.

  3. 탐색 창의 [LOAD BALANCING] 아래에서 [Target Groups]를 선택합니다.

  4. 다음과 같이 첫 번째 대상 집합에 대한 대상 그룹을 만듭니다.

    1. [Create target group]을 선택합니다.

    2. 대상 그룹에 대한 이름, 프로토콜, 포트 및 VPC를 지정한 다음, [Create]를 선택합니다.

    3. 새로운 대상 그룹을 선택합니다.

    4. [Targets] 탭에서 [Edit]를 선택합니다.

    5. [Instances]에서 인스턴스를 하나 이상 선택합니다. 인스턴스에 대한 포트를 지정하고 [Add to registered]를 선택한 다음 [Save]를 선택합니다.

      인스턴스가 등록되고 상태 확인을 통과할 때까지 인스턴스의 상태는 initial이고, 로드 밸런서에서 트래픽을 수신하도록 대상 그룹을 구성할 때까지는 unused입니다.

  5. 다음과 같이 두 번째 대상 집합에 대한 대상 그룹을 만듭니다.

    1. [Create target group]을 선택합니다.

    2. 대상 그룹에 대한 이름, 프로토콜, 포트 및 VPC를 지정한 다음, [Create]를 선택합니다.

    3. [Targets] 탭에서 [Edit]를 선택합니다.

    4. [Instances]에서 인스턴스를 하나 이상 선택합니다. 인스턴스에 대한 포트를 지정하고 [Add to registered]를 선택한 다음 [Save]를 선택합니다.

      인스턴스가 등록되고 상태 확인을 통과할 때까지 인스턴스의 상태는 initial이고, 로드 밸런서에서 트래픽을 수신하도록 대상 그룹을 구성할 때까지는 unused입니다.

  6. 탐색 창의 [LOAD BALANCING] 아래에서 [Load Balancers]를 선택합니다.

  7. [Create Load Balancer]를 선택합니다.

  8. [Select load balancer type]에서 [Application Load Balancer]를 선택합니다.

  9. [Continue]를 선택합니다.

  10. 다음과 같이 Configure Load Balancer 페이지를 완료합니다.

    1. Name에 로드 밸런서 이름을 입력합니다.

      Application Load Balancer의 이름은 해당 리전의 Application Load Balancer 및 Network Load Balancer 집합 내에서 고유한 이름이어야 하고, 최대 32자여야 하며, 알파벳 문자 및 하이픈만 포함해야 하고, 하이픈으로 시작하거나 끝나지 않아야 합니다.

    2. Scheme에서 인터넷 경계 로드 밸런서는 인터넷을 통해 클라이언트의 요청을 대상으로 라우팅합니다. 내부 로드 밸런서는 프라이빗 IP 주소를 사용하여 요청을 대상으로 라우팅합니다.

    3. Listeners에서 기본값은 포트 80에서 HTTP 트래픽을 수락하는 리스너입니다. 기본 리스너 설정을 그대로 두거나 리스너의 프로토콜 또는 포트를 수정하거나 Add를 선택해 다른 리스너를 추가할 수 있습니다.

    4. [Availability Zones]에서 EC2 인스턴스에 사용한 VPC를 선택합니다. 최소 두 개의 가용 영역을 선택합니다. 가용 영역에 대해 서브넷 한 개가 있는 경우 해당 서브넷이 선택됩니다. 가용 영역에 대해 서브넷이 두 개 이상 있는 경우 서브넷 중 하나를 선택합니다. 가용 영역당 서브넷을 한 개만 선택할 수 있습니다.

    5. Next: Configure Security Settings를 선택합니다.

  11. (선택 사항) 이전 단계에서 안전한 리스너를 만들었다면 다음과 같이 [Configure Security Settings] 페이지를 완료합니다.

    1. AWS Certificate Manager를 사용해 인증서를 생성하거나 가져왔다면, Choose an existing certificate from AWS Certificate Manager(ACM)(AWS Certificate Manager(ACM)에서 기존 인증서 선택)를 선택한 후 인증서 이름에서 인증서를 선택하십시오.

    2. IAM을 사용하여 인증서를 업로드했다면 [Choose an existing certificate from AWS Identity and Access Management (IAM)]를 선택한 다음 [Certificate name]에서 인증서를 선택합니다.

    3. 업로드할 인증서가 있지만 ACM이 해당 리전에서 지원되지 않는 경우에는 [Upload a new SSL Certificate to AWS Identity and Access Management (IAM)]를 선택합니다. Certificate name에 인증서의 이름을 입력합니다. Private Key에 프라이빗 키 파일(PEM 인코딩)의 콘텐츠를 복사해 붙여넣습니다. Public Key Certificate에 퍼블릭 키 인증서 파일(PEM 인코딩)의 콘텐츠를 복사해 붙여넣습니다. 자체 서명 인증서를 사용하고 있지 않고 브라우저가 인증서를 묵시적으로 수락하는 것이 중요하지 않다면 Certificate Chain에 인증서 체인 파일(PEM 인코딩)의 콘텐츠를 복사해 붙여넣습니다.

    4. [Select policy]에는 기본 보안 정책을 유지합니다.

  12. Next: Configure Security Groups를 선택합니다.

  13. 다음과 같이 [Configure Security Groups] 페이지를 완료합니다.

    1. [Create a new security group]을 선택합니다.

    2. 보안 그룹의 이름과 설명을 입력하거나 기본 이름과 설명을 유지합니다. 이 새 보안 그룹에는 [Configure Load Balancer] 페이지에서 로드 밸런서에 대해 선택한 포트로 트래픽을 허용하는 규칙이 포함되어 있습니다.

    3. [Next: Configure Routing]을 선택합니다.

  14. 다음과 같이 [Configure Routing] 페이지를 완료합니다.

    1. [Target group]에서 Existing target group을 선택합니다.

    2. [Name]에서 생성한 첫 번째 대상 그룹을 선택합니다.

    3. Next: Register Targets를 선택합니다.

  15. [Register Targets] 페이지에서 대상 그룹에 등록한 인스턴스가 [Registered instances] 아래에 표시됩니다. 마법사를 완료할 때까지 대상 그룹에 등록된 대상을 변경할 수 없습니다. [Next: Review]를 선택합니다.

  16. [Review] 페이지에서 [Create]을 선택합니다.

  17. 로드 밸런서가 생성되었다는 통보를 받은 후 [Close]를 선택합니다.

  18. 새로 생성한 로드 밸런서를 선택합니다.

  19. 리스너 탭에서 규칙 보기/편집을 선택한 다음, 규칙 추가 아이콘(더하기 기호)을 선택합니다. 다음과 같이 규칙을 지정합니다.

    1. [Insert Rule]을 선택합니다.

    2. 조건 추가, 경로...를 선택한 다음 경로 기반 라우팅에 대해 사용할 패턴을 정확하게 입력합니다(예: /img/*). 조건을 저장하려면 확인 표시 아이콘을 선택합니다. 자세한 내용은 리스너 규칙 단원을 참조하십시오.

    3. 작업 추가, 전달 대상...을 선택한 다음 생성한 두 번째 대상 그룹을 선택합니다. 작업을 저장하려면 확인 표시 아이콘을 선택합니다.

    4. 규칙을 저장하려면 ​저장을 선택합니다.