자습서: AWS CLI를 사용하여 Network Load Balancer 생성 - Elastic Load Balancing

자습서: AWS CLI를 사용하여 Network Load Balancer 생성

이 자습서에서는 AWS CLI를 통해 Network Load Balancer를 직접 소개합니다.

시작하기 전에

  • Network Load Balancer를 지원하지 않는 버전을 사용하는 경우 AWS CLI를 설치하거나 AWS CLI의 현재 버전으로 업데이트합니다. 자세한 내용은 AWS Command Line Interface 사용 설명서에서 AWS Command Line Interface 설치를 참조하세요.

  • EC2 인스턴스에 대해 사용할 가용 영역을 결정합니다. 각 가용 영역에 있는 하나 이상의 퍼블릭 서브넷으로 VPC(Virtual Private Cloud)를 구성합니다.

  • IPv4 또는 듀얼스택 로드 밸런서 중 무엇을 생성할지 결정합니다. 클라이언트가 IPv4 주소만을 사용하여 로드 밸런서와 통신하도록 하려는 경우 IPv4를 사용합니다. 클라이언트가 IPv4 및 IPv6 주소를 사용하여 로드 밸런서와 통신하도록 하려는 경우 듀얼스택을 사용합니다. 또한 듀얼스택을 사용하면 IPv6 애플리케이션 또는 듀얼스택 서브넷 등의 IPv6를 사용하는 백엔드 대상과 통신할 수 있습니다.

  • 각 가용 영역에서 하나 이상의 EC2 인스턴스를 시작합니다. 이러한 인스턴스에 대한 보안 그룹이 리스너 포트에서 클라이언트로부터의 TCP 액세스와 VPC의 상태 확인 요청을 허용하는지 확인합니다. 자세한 내용은 섹션을 참조하세요대상 보안 그룹

IPv4 로드 밸런서 생성

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

IPv4 로드 밸런서를 생성하려면

  1. create-load-balancer 명령을 사용하여 인스턴스를 실행한 가용 영역 각각에 대해 퍼블릭 서브넷을 지정해서 IPv4 로드 밸런서를 생성합니다. 가용 영역당 1개의 서브넷만 지정할 수 있습니다.

    aws elbv2 create-load-balancer --name my-load-balancer --type network --subnets subnet-0e3f5cac72EXAMPLE

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

    arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-load-balancer/1234567890123456
  2. create-target-group 명령을 사용하여 EC2 인스턴스에 사용한 것과 동일한 VPC를 지정해서 IPv4 대상 그룹을 생성합니다. IPv4 대상 그룹은 IP 및 인스턴스 유형 대상을 지원합니다.

    aws elbv2 create-target-group --name my-targets --protocol TCP --port 80 --vpc-id vpc-0598c7d356EXAMPLE

    출력에는 다음 형식과 함께 대상 그룹의 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-1234567890abcdef0 Id=i-0abcdef1234567890
  4. 다음과 같이 create-listener 명령을 사용하여 요청을 대상 그룹에 전달하는 기본 규칙이 있는 로드 밸런서에 대한 하나 이상의 리스너를 생성합니다.

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

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

    arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/net/my-load-balancer/1234567890123456/1234567890123456
  5. (선택 사항) 다음 describe-target-health 명령을 사용하여 대상 그룹에 등록된 대상의 상태를 확인할 수 있습니다.

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

듀얼스택 로드 밸런서 생성

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

듀얼스택 로드 밸런서를 생성하려면

  1. create-load-balancer 명령을 사용하여 인스턴스를 실행한 가용 영역 각각에 대해 퍼블릭 서브넷을 지정해서 듀얼스택 로드 밸런서를 생성합니다. 가용 영역당 1개의 서브넷만 지정할 수 있습니다.

    aws elbv2 create-load-balancer --name my-load-balancer --type network --subnets subnet-0e3f5cac72EXAMPLE --ip-address-type dualstack

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

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

    듀얼스택 로드 밸런서와 함께 TCP 또는 TLS 대상 그룹을 사용해야 합니다.

    듀얼스택 로드 밸런서와 연결할 IPv4 및 IPv6 대상 그룹을 생성할 수 있습니다. 대상 그룹의 IP 주소 유형에 따라 로드 밸런서가 백엔드 대상과 통신하고 상태를 확인하는 데 사용할 IP 버전이 결정됩니다.

    IPv4 대상 그룹은 IP 및 인스턴스 유형 대상을 지원합니다. IPv6 대상은 IP 대상만 지원합니다.

    aws elbv2 create-target-group --name my-targets --protocol TCP --port 80 --vpc-id vpc-0598c7d356EXAMPLE --ip-address-type [ipv4 or ipv6]

    출력에는 다음 형식과 함께 대상 그룹의 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-1234567890abcdef0 Id=i-0abcdef1234567890
  4. 다음과 같이 create-listener 명령을 사용하여 요청을 대상 그룹에 전달하는 기본 규칙을 적용해서 로드 밸런서에 대한 리스너를 생성합니다. 듀얼스택 로드 밸런서에는 TCP 또는 TLS 리스너가 있어야 합니다.

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

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

    arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/net/my-load-balancer/1234567890123456/1234567890123456
  5. (선택 사항) 다음 describe-target-health 명령을 사용하여 대상 그룹에 등록된 대상의 상태를 확인할 수 있습니다.

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

로드 밸런서의 탄력적 IP 주소 지정

Network Load Balancer를 생성할 때 서브넷 매핑을 사용하여 서브넷당 하나의 탄력적 IP 주소를 지정할 수 있습니다.

aws elbv2 create-load-balancer --name my-load-balancer --type network \ --subnet-mappings SubnetId=subnet-0e3f5cac72EXAMPLE,AllocationId=eipalloc-12345678

로드 밸런서 삭제

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

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