Elastic Load Balancing
Application Load Balancer

자습서: Application Load Balancer를 통해 마이크로서비스를 대상으로 사용

마이크로서비스 아키텍처를 사용하여 애플리케이션을 독립적으로 개발하고 배포할 수 있는 서비스로 구성할 수 있습니다. 이러한 서비스 중 하나 이상을 각 서비스가 다른 포트에서 연결을 수신하는 상태로 각 EC2 인스턴스에 설치할 수 있습니다. 단일 Application Load Balancer를 사용하여 요청을 애플리케이션의 모든 서비스로 라우팅할 수 있습니다. EC2 인스턴스를 대상 그룹에 등록하면 여러 번 등록할 수 있습니다. 각 서비스에 대해 해당 서비스의 포트를 사용하여 인스턴스를 등록합니다.

중요

Amazon Elastic Container Service(Amazon ECS)을 사용하여 서비스를 배포하면 동적인 포트 매팅을 사용하여 동일한 컨테이너 인스턴스의 단일 서비스에서 여러 작업을 지원할 수 있습니다. Amazon ECS는 각 컨테이너에 대해 인스턴스 ID와 포트를 사용하여 대상 그룹으로 컨테이너를 자동 등록 및 등록 취소함으로써 서비스 업데이트를 관리합니다. 자세한 내용은 Amazon Elastic Container Service Developer Guide에서 서비스 로드 밸런싱을 참조하십시오.

시작하기 전에

  • EC2 인스턴스를 시작합니다. 인스턴스의 보안 그룹이 리스너 포트 및 상태 확인 포트에서 로드 밸런서 보안 그룹을 통한 액세스를 허용하는지 확인합니다. 자세한 내용은 대상 보안 그룹 단원을 참조하십시오.

  • 서비스를 EC2 인스턴스에 배포합니다(예: 컨테이너 사용).

로드 밸런서 생성

여러 서비스를 대상으로 사용하는 로드 밸런서를 만들려면

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

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

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

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

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

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

  7. 다음과 같이 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를 선택합니다.

  8. (선택 사항) 이전 단계에서 안전한 리스너를 만들었다면 다음과 같이 [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)(AWS 자격 증명 및 액세스 관리(IAM)에서 기존 인증서 선택)을 선택한 후 인증서 이름에서 인증서를 선택하십시오.

    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]에는 기본 보안 정책을 유지합니다.

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

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

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

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

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

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

    1. [Target group]에서는 기본 값인 New target group을 유지합니다.

    2. Name에 새 대상 그룹의 이름을 입력합니다.

    3. 필요에 따라 ProtocolPort를 설정합니다.

    4. Health checks은 기본 상태 확인 설정을 그대로 둡니다.

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

  12. [Register Targets]에서 다음 작업을 수행합니다.

    1. [Instances]에서 EC2 인스턴스를 선택합니다.

    2. 서비스에서 사용하는 포트를 입력한 다음 [Add to registered]를 선택합니다.

    3. 등록할 각 서비스에 대해 반복합니다. 작업을 마쳤으면 [Next: Review]를 선택합니다.

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

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