Tutorial: Create an Application Load Balancer using the AWS CLI - Elastic Load Balancing

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

Tutorial: Create an Application Load Balancer using the AWS CLI

이 자습서에서는 AWS CLI를 통해 Application Load Balancer에 대한 실습 소개를 제공합니다.

Before you begin

  • Use the following command to verify that you are running a version of the AWS CLI that supports Application Load Balancer.

    aws elbv2 help

    If you get an error message that elbv2 is not a valid choice, update your AWS CLI. For more information, see Installing the AWS Command Line Interface in the AWS Command Line Interface 사용 설명서.

  • Launch your EC2 instances in a virtual private cloud (VPC). Ensure that the security groups for these instances allow access on the listener port and the health check port. For more information, see 대상 보안 그룹.

Create your load balancer

첫 번째 로드 밸런서를 생성하려면 다음 단계를 완료합니다.

로드 밸런서를 생성하려면

  1. create-load-balancer 명령을 사용하여 로드 밸런서를 생성합니다. 동일한 가용 영역의 서브넷이 아닌 2개의 서브넷을 지정해야 합니다.

    aws elbv2 create-load-balancer --name my-load-balancer \ --subnets subnet-12345678 subnet-23456789 --security-groups sg-12345678

    출력에는 다음 형식과 함께 로드 밸런서의 Amazon 리소스 이름(ARN)이 포함됩니다.

    arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/my-load-balancer/1234567890123456
  2. create-target-group 명령을 사용하여 대상 그룹을 만들고 EC2 인스턴스에 사용한 VPC와 동일한 VPC를 지정합니다.

    aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 \ --vpc-id vpc-12345678

    출력에는 다음 형식과 함께 대상 그룹의 ARN이 포함됩니다.

    arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/1234567890123456
  3. 다음과 같이 register-targets 명령을 사용하여 인스턴스를 대상 그룹에 등록합니다.

    aws elbv2 register-targets --target-group-arn targetgroup-arn \ --targets Id=i-12345678 Id=i-23456789
  4. 다음과 같이 create-listener 명령을 사용하여 요청을 대상 그룹에 전달하는 기본 규칙이 있는 로드 밸런서에 대한 하나 이상의 리스너를 생성합니다.

    aws elbv2 create-listener --load-balancer-arn loadbalancer-arn \ --protocol HTTP --port 80 \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn

    출력에는 다음 형식과 함께 리스너의 ARN이 포함됩니다.

    arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/app/my-load-balancer/1234567890123456/1234567890123456
  5. (선택 사항) 다음과 같이 이 https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-target-health.html 명령을 사용하여 대상 그룹에 등록된 대상의 상태를 확인할 수 있습니다.

    aws elbv2 describe-target-health --target-group-arn targetgroup-arn

Add an HTTPS listener

HTTPS 리스너가 있는 로드 밸런서가 있는 경우 다음과 같이 HTTPS 리스너를 추가할 수 있습니다.

로드 밸런서에 HTTPS 리스너를 추가하려면

  1. 다음 방법 중 하나를 사용하여 로드 밸런서와 함께 사용할 SSL 인증서를 만듭니다.

  2. create-listener 명령을 사용하여 요청을 대상 그룹에 전달하는 기본 규칙이 있는 하나 이상의 리스너를 생성합니다. HTTPS 리스너를 만들 때 SSL 인증서를 지정해야 합니다. --ssl-policy 옵션을 사용하여 기본값 이외의 SSL 정책을 지정할 수 있습니다.

    aws elbv2 create-listener --load-balancer-arn loadbalancer-arn \ --protocol HTTPS --port 443 \ --certificates CertificateArn=certificate-arn \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn

Add targets using port overrides

단일 인스턴스에 여러 ECS 컨테이너가 있는 경우 각 컨테이너는 다른 포트에서 연결을 허용합니다. 매번 다른 포트를 사용하여 대상 그룹에 인스턴스를 여러 번 등록할 수 있습니다.

포트 재정의를 사용하여 대상을 추가하려면

  1. 다음과 같이 create-target-group 명령을 사용하여 대상 그룹을 만듭니다.

    aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 \ --vpc-id vpc-12345678
  2. 다음과 같이 register-targets 명령을 사용하여 인스턴스를 대상 그룹에 등록합니다. 각 컨테이너마다 인스턴스 ID가 동일하지만 포트는 서로 다릅니다.

    aws elbv2 register-targets --target-group-arn targetgroup-arn \ --targets Id=i-12345678,Port=80 Id=i-12345678,Port=766
  3. 다음과 같이 create-rule 명령을 사용하여 요청을 대상 그룹에 전달하는 규칙을 리스너에 추가합니다.

    aws elbv2 create-rule --listener-arn listener-arn --priority 10 \ --actions Type=forward,TargetGroupArn=targetgroup-arn

Add path-based routing

하나의 대상 그룹에 요청을 전달하는 기본 규칙이 있는 리스너가 있는 경우, URL을 기반으로 다른 대상 그룹에 요청을 전달하는 규칙을 추가할 수 있습니다. 예를 들어 일반 요청을 하나의 대상 그룹으로 라우팅하고 이미지를 다른 대상 그룹에 표시하도록 요청할 수 있습니다.

경로 패턴이 있는 리스너에 규칙을 추가하려면

  1. 다음과 같이 create-target-group 명령을 사용하여 대상 그룹을 만듭니다.

    aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 \ --vpc-id vpc-12345678
  2. 다음과 같이 register-targets 명령을 사용하여 인스턴스를 대상 그룹에 등록합니다.

    aws elbv2 register-targets --target-group-arn targetgroup-arn \ --targets Id=i-12345678 Id=i-23456789
  3. URL에 지정된 패턴이 있는 경우 다음과 같이 create-rule 명령을 사용하여 요청을 대상 그룹에 전달하는 규칙을 리스너에 추가합니다.

    aws elbv2 create-rule --listener-arn listener-arn --priority 10 \ --conditions Field=path-pattern,Values='/img/*' \ --actions Type=forward,TargetGroupArn=targetgroup-arn

Delete your load balancer

더 이상 로드 밸런서 및 대상 그룹이 필요하지 않으면 다음과 같이 삭제할 수 있습니다.

aws elbv2 delete-load-balancer --load-balancer-arn loadbalancer-arn aws elbv2 delete-target-group --target-group-arn targetgroup-arn