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의 상태 확인 요청을 허용하는지 확인합니다. 자세한 내용은 대상 보안 그룹 단원을 참조하십시오.
1단계: Network Load Balancer 생성 및 대상 등록
첫 번째 로드 밸런서를 생성하려면 다음 단계를 완료합니다.
IPv4 Network Load Balancer 생성
-
create-load-balancer 명령을 사용하여 인스턴스를 실행한 가용 영역 각각에 대해 퍼블릭 서브넷을 지정해서 IPv4 로드 밸런서를 생성합니다. 가용 영역당 1개의 서브넷만 지정할 수 있습니다.
기본적으로 Network Load Balancer는 AWS CLI를 사용하여 생성될 때 VPC의 기본 보안 그룹을 자동으로 사용하지 않습니다. 생성 중 보안 그룹을 로드 밸런서와 연결하지 않으면 나중에 추가할 수 없습니다.
--security-groups
옵션을 사용하여 생성 중 로드 밸런서의 보안 그룹을 지정하는 것이 좋습니다.aws elbv2 create-load-balancer --name
my-load-balancer
--type network --subnets subnet-0e3f5cac72EXAMPLE
--security-groups sg-0123456789EXAMPLE
출력에는 다음 형식과 함께 로드 밸런서의 Amazon 리소스 이름(ARN)이 포함됩니다.
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:loadbalancer/net/my-load-balancer/1234567890123456
-
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
-
다음과 같이 register-targets 명령을 사용하여 인스턴스를 대상 그룹에 등록합니다.
aws elbv2 register-targets --target-group-arn
targetgroup-arn
--targets Id=i-1234567890abcdef0
Id=i-0abcdef1234567890
-
다음과 같이 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
-
(선택 사항) 다음 describe-target-health 명령을 사용하여 대상 그룹에 등록된 대상의 상태를 확인할 수 있습니다.
aws elbv2 describe-target-health --target-group-arn
targetgroup-arn
듀얼스택 Network Load Balancer 생성
-
create-load-balancer 명령을 사용하여 인스턴스를 실행한 가용 영역 각각에 대해 퍼블릭 서브넷을 지정해서 듀얼스택 로드 밸런서를 생성합니다. 가용 영역당 1개의 서브넷만 지정할 수 있습니다.
aws elbv2 create-load-balancer --name
my-load-balancer
--type network --subnets subnet-0e3f5cac72EXAMPLE
--ip-address-typedualstack
출력에는 다음 형식과 함께 로드 밸런서의 Amazon 리소스 이름(ARN)이 포함됩니다.
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:loadbalancer/net/my-load-balancer/1234567890123456
-
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
-
다음과 같이 register-targets 명령을 사용하여 인스턴스를 대상 그룹에 등록합니다.
aws elbv2 register-targets --target-group-arn
targetgroup-arn
--targets Id=i-1234567890abcdef0
Id=i-0abcdef1234567890
-
다음과 같이 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
-
(선택 사항) 다음 describe-target-health 명령을 사용하여 대상 그룹에 등록된 대상의 상태를 확인할 수 있습니다.
aws elbv2 describe-target-health --target-group-arn
targetgroup-arn
2단계: (선택 사항) Network Load Balancer의 탄력적 IP 주소 정의
Network Load Balancer를 생성할 때 서브넷 매핑을 사용하여 서브넷당 하나의 탄력적 IP 주소를 지정할 수 있습니다.
aws elbv2 create-load-balancer --name
my-load-balancer
--type network \ --subnet-mappings SubnetId=subnet-0e3f5cac72EXAMPLE
,AllocationId=eipalloc-12345678
3단계: (선택 사항) Network Load Balancer 삭제
더 이상 로드 밸런서 및 대상 그룹이 필요하지 않으면 다음과 같이 삭제할 수 있습니다.
aws elbv2 delete-load-balancer --load-balancer-arn
loadbalancer-arn
aws elbv2 delete-target-group --target-group-arntargetgroup-arn