Application Load Balancer 생성 - Elastic Load Balancing

Application Load Balancer 생성

로드 밸런서는 클라이언트로부터 요청을 가져와서 대상 그룹의 대상에 이를 분산합니다.

시작하기 전에 대상에서 사용하는 각 영역에 하나 이상의 퍼블릭 서브넷이 있는 Virtual Private Cloud(VPC)가 있는지 확인합니다. 자세한 내용은 로드 밸런서를 위한 서브넷 단원을 참조하십시오.

AWS CLI를 사용하여 로드 밸런서 생성하려면 AWS CLI를 사용하여 Application Load Balancer 시작하기 단원을 참조하세요.

AWS Management Console을 사용하여 로드 밸런서를 생성하려면 다음 태스크를 완료합니다.

1단계: 대상 그룹 구성

대상 그룹을 구성하면 EC2 인스턴스와 같은 대상을 등록할 수 있습니다. 이 단계에서 구성하는 대상 그룹은 로드 밸런서를 구성할 때 리스너 규칙의 대상 그룹으로 사용됩니다. 자세한 내용은 Application Load Balancer 대상 그룹 단원을 참조하십시오.

콘솔을 사용하여 대상 그룹을 구성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 대상 그룹을 선택합니다.

  3. 대상 그룹 생성을 선택합니다.

  4. [기본 구성(Basic configuration)] 섹션에서 다음 파라미터를 설정합니다.

    1. 대상 유형 선택에서 인스턴스를 선택하여 인스턴스 ID로 대상을 지정하거나 IP 주소를 선택하여 IP 주소로만 대상을 지정합니다. 대상 유형이 Lambda 함수인 경우 상태 확인(Health checks) 섹션에서 활성화(Enable)를 선택하여 상태 확인을 활성화할 수 있습니다.

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

    3. 필요에 따라 포트프로토콜을 수정합니다.

    4. 대상 유형이 인스턴스 또는 IP 주소인 경우 IPv4 또는 IPv6IP 주소 유형을 선택하고, 그 외의 경우에는 다음 단계로 건너뜁니다.

      선택한 IP 주소 유형을 가진 대상만 이 대상 그룹에 포함될 수 있습니다. 대상 그룹을 생성한 후에는 IP 주소 유형을 변경할 수 없습니다.

    5. VPC의 경우 대상 그룹에 포함할 대상이 있는 Virtual Private Cloud(VPC)를 선택합니다.

    6. 프로토콜 버전(Protocol version)에서 요청 프로토콜이 HTTP/1.1 또는 HTTP/2인 경우 HTTP1을 선택하고, 요청 프로토콜이 HTTP/2 또는 gRPC인 경우 HTTP2를 선택하고, 요청 프로토콜이 gRPC인 경우 gRPC를 선택합니다.

  5. 상태 확인 섹션에서 필요에 따라 기본 설정을 수정합니다. 고급 상태 확인 설정(Advanced health check settings)의 경우 상태 확인 포트, 개수, 시간 초과, 간격을 선택하고 성공 코드를 지정합니다. 상태 확인이 비정상 임계값 수를 연속으로 초과하는 경우 로드 밸런서는 대상을 서비스 중단 상태로 만듭니다. 상태 확인이 정상 임계값 수를 연속으로 초과하는 경우 로드 밸런서는 대상을 다시 서비스 상태로 전환합니다. 자세한 내용은 Application Load Balancer 대상 그룹의 상태 확인 단원을 참조하세요.

  6. (선택 사항) 다음과 같이 하나 이상의 태그를 추가합니다.

    1. 태그 섹션을 확장합니다.

    2. [Add tag]를 선택합니다.

    3. 태그 및 태그 값을입력합니다. 허용되는 문자는 문자, 공백, 숫자(UTF-8 형식) 및 특수 문자 + - = . _ : / @입니다. 선행 또는 후행 공백을 사용하면 안 됩니다. 태그 값은 대소문자를 구분합니다.

  7. [Next]를 선택합니다.

2단계: 대상 등록

EC2 인스턴스, IP 주소 또는 Lambda 함수를 대상 그룹의 대상으로 등록할 수 있습니다. 로드 밸런서를 생성하기 위한 선택적 단계입니다. 그러나 대상을 등록해야 로드 밸런서가 트래픽을 해당 대상으로 라우팅합니다.

  1. 대상 등록(Register targets) 페이지에서 다음과 같이 하나 이상의 대상을 추가합니다.

    • 대상 유형이 인스턴스인 경우 하나 이상의 인스턴스를 선택하고 하나 이상의 포트를 입력한 다음 아래에 보류 중인 것으로 포함을 선택합니다.

    • 대상 유형이 IP 주소인 경우 다음을 수행합니다.

      1. 네트워크 VPC를 목록에서 선택하거나 기타 프라이빗 IP 주소를 선택합니다.

      2. IP 주소를 수동으로 입력하거나 인스턴스 세부 정보를 사용하여 IP 주소를 찾습니다. 한 번에 최대 5개의 IP 주소를 입력할 수 있습니다.

      3. 지정된 IP 주소로 트래픽을 라우팅할 포트를 입력합니다.

      4. 아래에서 보류 중인 것으로 포함을 선택합니다.

    • 대상 유형이 Lambda인 경우 Lambda 함수를 선택하거나 Lambda 함수 ARN을 입력한 다음 아래에 보류 중인 것으로 포함(Include as pending below)을 선택합니다.

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

3단계: 로드 밸런서 및 리스너 구성

Application Load Balancer를 생성하려면 먼저 이름, 구성표 및 IP 주소 유형과 같은 로드 밸런서에 대한 기본 구성 정보를 제공해야 합니다. 그런 다음 네트워크와 하나 이상의 리스너에 대한 정보를 제공합니다. 리스너는 연결 요청을 확인하는 프로세스입니다. 클라이언트와 로드 밸런서 간의 연결을 위한 프로토콜 및 포트로 구성됩니다. 지원되는 프로토콜 및 포트에 대한 자세한 내용은 리스너 구성 단원을 참조하십시오.

콘솔을 사용하여 로드 밸런서 및 리스너를 구성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 [Load Balancers]를 클릭합니다.

  3. 로드 밸런서 생성을 선택합니다.

  4. Application Load Balancer 아래에서 생성(Create)을 선택합니다.

  5. 기본 구성

    1. 로드 밸런서 이름(Load Balancer name)에 로드 밸런서의 이름을 입력합니다. 예: my-alb. Application Load Balancer의 이름은 해당 리전의 Application Load Balancer 및 네트워크 로드 밸런서 세트 내에서 고유해야 합니다. 이름은 최대 32자여야 하며 영숫자 및 하이픈만 포함할 수 있습니다. 하이픈 또는 internal-(으)로 시작하거나 끝나서는 안 됩니다. Application Load Balancer의 이름은 생성한 후에는 변경할 수 없습니다.

    2. 구성표(Scheme)에서 internet-facing 또는 internal을 선택합니다. internet-facing 로드 밸런서는 인터넷을 통해 클라이언트의 요청을 대상으로 라우팅합니다. 내부 로드 밸런서는 프라이빗 IP 주소를 사용하여 요청을 대상으로 라우팅합니다.

    3. IP 주소 유형에서 IPv4, 듀얼 스택 또는 퍼블릭 IPv4가 없는 듀얼 스택을 선택합니다. 클라이언트가 IPv4 주소를 사용하여 로드 밸런서와 통신하는 경우 IPv4를 선택합니다. 클라이언트가 IPv4 및 IPv6 주소를 모두 사용해 로드 밸런서와 통신하는 경우 듀얼 스택(Dualstack)을 선택합니다. 클라이언트가 IPv6 주소만 사용해 로드 밸런서와 통신하는 경우 퍼블릭 IPv4가 없는 듀얼 스택을 선택합니다.

  6. 네트워크 매핑

    1. VPC에서는 EC2 인스턴스에 사용한 것과 동일한 VPC를 선택합니다. 구성표(Scheme)에 대해 Internet-facing을 선택한 경우 인터넷 게이트웨이가 있는 VPC만 선택할 수 있습니다.

    2. 매핑에 대해 다음과 같이 서브넷을 선택하여 로드 밸런서의 영역을 활성화합니다.

      • 2개 이상의 가용 영역의 서브넷

      • 1개 이상의 로컬 영역의 서브넷

      • Outpost 서브넷 1개

      자세한 내용은 로드 밸런서를 위한 서브넷 단원을 참조하십시오.

      내부 로드 밸런서의 경우 서브넷 CIDR에서 IPv4 및 IPv6 주소를 할당합니다.

      로드 밸런서에 대해 듀얼 스택 모드를 사용하도록 설정한 경우 IPv4 및 IPv6 CIDR 블록 모두가 있는 서브넷을 선택합니다.

  7. 보안 그룹(Security groups)의 경우 기존 보안 그룹을 선택하거나 새 보안 그룹을 생성할 수 있습니다.

    로드 밸런서에 대한 보안 그룹은 로드 밸런서가 리스너 포트 및 상태 확인 포트에서 등록된 대상과 통신할 수 있도록 허용해야 합니다. 콘솔은 이 통신을 허용하는 규칙을 통해 사용자 대신 로드 밸런서에 대한 보안 그룹을 만들 수 있습니다. 보안 그룹을 생성하여 대신 선택할 수도 있습니다. 자세한 내용은 권장 규칙 섹션을 참조하세요.

    (선택 사항) 로드 밸런서에 대한 새 보안 그룹을 생성하려면 새 보안 그룹 생성(Create a new security group)을 선택합니다.

  8. 리스너 및 라우팅(Listeners and routing)에서 기본 리스너는 포트 80에서 HTTP 트래픽을 수락합니다. 기본 프로토콜과 포트를 유지하거나 다른 프로토콜과 포트를 선택할 수 있습니다. 기본 작업(Default action)에서 앞서 생성한 대상 그룹을 선택합니다. 리스너 추가(Add listener)를 선택하여 다른 리스너(예: HTTPS 리스너)를 추가할 수도 있습니다.

  9. (선택 사항) HTTPS 리스너를 사용하는 경우

    보안 정책의 경우 항상 최신 사전 정의 보안 정책을 사용하는 것이 좋습니다.

    1. 기본 SSL/TLS 인증서에서 다음 옵션을 사용할 수 있습니다.

      • AWS Certificate Manager를 사용하여 인증서를 생성하거나 가져온 경우 ACM에서를 선택하고 인증서 선택에서 인증서를 선택합니다.

      • IAM을 사용하여 인증서를 가져온 경우 IAM에서를 선택하고 인증서 선택에서 인증서를 선택합니다.

      • 가져올 인증서가 있지만 리전에서 ACM을 이용할 수 없는 경우 가져오기를 선택하고 IAM으로를 선택합니다. 인증서 이름 필드에 인증서의 이름을 입력합니다. 인증서 프라이빗 키에서 프라이빗 키 파일(PEM 인코딩)의 콘텐츠를 복사해 붙여 넣습니다. 인증서 본문에서 퍼블릭 키 인증서 파일(PEM 인코딩)의 콘텐츠를 복사해 붙여 넣습니다. 자체 서명 인증서를 사용하고 있지 않고 브라우저가 인증서를 묵시적으로 수락하는 것이 중요하지 않다면 인증서 체인(Certificate Chain)에 인증서 체인 파일(PEM 인코딩)의 콘텐츠를 복사해 붙여 넣습니다.

    2. (선택 사항) 상호 인증을 활성화하려면 클라이언트 인증서 처리에서 상호 인증(mTLS)을 활성화합니다.

      활성화되면 기본 상호 TLS 모드는 패스스루입니다.

      트러스트 스토어로 확인을 선택한 경우:

      • 기본적으로 만료된 클라이언트 인증서와의 연결은 거부됩니다. 이 동작을 변경하려면 고급 mTLS 설정 을 확장한 다음 클라이언트 인증서 만료에서 만료된 클라이언트 인증서 허용을 선택합니다.

      • 트러스트 스토어에서 기존 트러스트 스토어를 선택하거나 새 트러스트 스토어를 선택합니다.

        • 새 트러스트 스토어를 선택한 경우 트러스트 스토어 이름, S3 URI 인증 기관 위치, 선택적으로 S3 URI 인증서 해지 목록 위치를 제공합니다.

  10. (선택 사항) 생성 중에 서비스 통합을 통한 최적화에서 다른 서비스를 로드 밸런서와 통합할 수 있습니다.

    • 기존 또는 자동으로 생성된 웹 ACL과 함께 로드 밸런서에 대한 AWS WAF 보안 보호를 포함하도록 선택할 수 있습니다. 생성 후 AWS WAF 콘솔 에서 웹 ACL을 관리할 수 있습니다. 자세한 내용은 AWS WAF 개발자 안내서웹 ACL과 AWS 리소스 연결 또는 연결 해제를 참조하세요.

    • AWS Global Accelerator에서 액셀러레이터를 생성하고 로드 밸런서를 액셀러레이터와 연결하도록 선택할 수 있습니다. 액셀러레이터 이름에는 a-z, A-Z, 0-9, .(마침표) 및 -(하이픈) 문자(최대 64자)가 포함될 수 있습니다. 액셀러레이터가 생성된 후에는 AWS Global Accelerator 콘솔을 사용하여 관리할 수 있습니다. 자세한 내용은 AWS Global Accelerator 개발자 안내서로드 밸런서를 생성할 때 액셀러레이터 추가를 참조하세요.

  11. 태그 지정 및 생성

    1. (선택 사항) 태그를 추가하여 로드 밸런서를 분류합니다. 태그 키는 각 로드 밸런서에 대해 고유해야 합니다. 허용되는 문자는 문자, 공백, 숫자(UTF-8 형식) 및 특수 문자 + - = . _ : / @입니다. 선행 또는 후행 공백을 사용하면 안 됩니다. 태그 값은 대소문자를 구분합니다.

    2. 구성을 검토하고 로드 밸런서 생성(Create load balancer)을 선택합니다. 생성 중에 로드 밸런서에 몇 가지 기본 특성이 적용됩니다. 로드 밸런서를 생성한 후 이를 보고 편집할 수 있습니다. 자세한 내용은 로드 밸런서 속성 단원을 참조하십시오.

4단계: 로드 밸런서 테스트

로드 밸런서를 생성한 후에는 EC2 인스턴스가 초기 상태 확인을 통과했는지 확인할 수 있습니다. 그런 다음 로드 밸런서가 EC2 인스턴스로 트래픽을 전송하고 있는지 확인할 수 있습니다. 로드 밸런서를 삭제하려면 Application Load Balancer 삭제 섹션을 참조하세요.

로드 밸런서 테스트
  1. 로드 밸런서가 생성된 후 [Close]를 선택합니다.

  2. 탐색 창에서 대상 그룹을 선택합니다.

  3. 새로 생성한 대상 그룹을 선택합니다.

  4. [Targets]를 선택하고 인스턴스가 준비되었는지 확인합니다. 인스턴스의 상태가 initial인 경우, 일반적으로 인스턴스가 아직 등록 중이기 때문입니다. 이 상태는 인스턴스가 정상이라고 간주할 수 있는 최소 상태 확인 횟수를 통과하지 못했음을 나타낼 수도 있습니다. 하나 이상의 인스턴스 상태가 정상이어야 로드 밸런서를 테스트할 수 있습니다. 자세한 내용은 대상 상태 단원을 참조하십시오.

  5. 탐색 창에서 로드 밸런서를 선택합니다.

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

  7. 설명을 선택하고, 인터페이싱 또는 로드 밸런서의 DNS 이름(예: my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com)을 복사합니다.

    • 인터넷을 향하고 있는 로드 밸런서는 DNS 이름을 인터넷에 연결된 웹 브라우저의 주소 필드에 붙여 넣습니다.

    • 내부 로드 밸런서는 VPC에 비공개로 연결되는 웹 브라우저의 주소 필드에 DNS 이름을 붙여 넣습니다.

    모두 다 바르게 구성되면 브라우저에 서버 기본 페이지가 표시됩니다.

  8. 웹 페이지가 표시되지 않는다면 다음 문서에서 추가 구성 도움말 및 문제 해결 단계를 참조하십시오.