기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하여 Application Load Balancer 시작하기 AWS CLI
이 자습서에서는를 통해 Application Load Balancer를 실습으로 소개합니다 AWS CLI.
시작하기 전 준비 사항
-
다음 명령을 사용하여 Application Load Balancer를 지원하는 AWS CLI 버전을 실행하고 있는지 확인하세요.
aws elbv2 help
elbv2가 유효한 선택이 아니라는 오류 메시지가 표시되면 AWS CLI를 업데이트하십시오. 자세한 내용은 AWS Command Line Interface 사용 설명서의 의 최신 버전 설치를 AWS CLI 참조하세요.
-
Virtual Private Cloud(VPC)에서 EC2 인스턴스를 시작합니다. 이들 인스턴스에 대한 보안 그룹이 리스너 포트 및 상태 확인 포트에서 액세스를 허용하는지 확인합니다. 자세한 내용은 대상 보안 그룹 섹션을 참조하세요.
-
IPv4 또는 듀얼스택 로드 밸런서 중 무엇을 생성할지 결정합니다. 클라이언트가 IPv4 주소만을 사용하여 로드 밸런서와 통신하도록 하려는 경우 IPv4를 사용합니다. 클라이언트가 IPv4 및 IPv6 주소를 사용하여 로드 밸런서와 통신하도록 하려는 경우 듀얼스택을 사용합니다. 또한 듀얼스택을 사용하면 IPv6 애플리케이션 또는 듀얼스택 서브넷 등의 IPv6를 사용하는 백엔드 대상과 통신할 수 있습니다.
-
각 EC2 인스턴스에 Apache 또는 IIS(인터넷 정보 서비스)와 같은 웹 서버를 설치해야 합니다. 이들 인스턴스에 대한 보안 그룹이 포트 80에서 HTTP 액세스를 허용하는지 확인합니다.
로드 밸런서 생성
첫 번째 로드 밸런서를 생성하려면 다음 단계를 완료합니다.
로드 밸런서를 생성하려면
-
create-load-balancer 명령을 사용하여 로드 밸런서를 생성합니다. 동일한 가용 영역의 서브넷이 아닌 2개의 서브넷을 지정해야 합니다.
aws elbv2 create-load-balancer --name
my-load-balancer
\ --subnets subnet-0e3f5cac72EXAMPLE
subnet-081ec835f3EXAMPLE
--security-groups sg-07e8ffd50fEXAMPLE
create-load-balancer 명령을 사용하여
dualstack
로드 밸런서를 생성합니다.aws elbv2 create-load-balancer --name
my-load-balancer
\ --subnets subnet-0e3f5cac72EXAMPLE
subnet-081ec835f3EXAMPLE
--security-groups sg-07e8ffd50fEXAMPLE
--ip-address-typedualstack
출력에는 다음 형식과 함께 로드 밸런서의 Amazon 리소스 이름(ARN)이 포함됩니다.
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:loadbalancer/app/my-load-balancer/1234567890123456
-
create-target-group 명령을 사용하여 EC2 인스턴스에 사용한 VPC와 동일한 VPC를 지정해서 대상 그룹을 생성합니다.
듀얼스택 로드 밸런서와 연결할 IPv4 및 IPv6 대상 그룹을 생성할 수 있습니다. 대상 그룹의 IP 주소 유형에 따라 로드 밸런서가 백엔드 대상과 통신하고 상태를 확인하는 데 사용할 IP 버전이 결정됩니다.
aws elbv2 create-target-group --name
my-targets
--protocol HTTP --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-0abcdef1234567890
Id=i-1234567890abcdef0
-
다음과 같이 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
-
(선택 사항) 다음 describe-target-health 명령을 사용하여 대상 그룹에 등록된 대상의 상태를 확인할 수 있습니다.
aws elbv2 describe-target-health --target-group-arn
targetgroup-arn
HTTPS 리스너 추가
HTTPS 리스너가 있는 로드 밸런서가 있는 경우 다음과 같이 HTTPS 리스너를 추가할 수 있습니다.
로드 밸런서에 HTTPS 리스너를 추가하려면
-
다음 방법 중 하나를 사용하여 로드 밸런서와 함께 사용할 SSL 인증서를 만듭니다.
-
AWS Certificate Manager (ACM)을 사용하여 인증서를 생성하거나 가져옵니다. 자세한 내용은 AWS Certificate Manager 사용 설명서의 퍼블릭 인증서 요청 또는 인증서 가져오기를 참조하세요.
-
AWS Identity and Access Management (IAM)을 사용하여 인증서를 업로드합니다. 자세한 내용은 IAM 사용 설명서에서 서버 인증서 작업을 참조하세요.
-
-
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
경로 기반 라우팅 추가
하나의 대상 그룹에 요청을 전달하는 기본 규칙이 있는 리스너가 있는 경우, URL을 기반으로 다른 대상 그룹에 요청을 전달하는 규칙을 추가할 수 있습니다. 예를 들어 일반 요청을 하나의 대상 그룹으로 라우팅하고 이미지를 다른 대상 그룹에 표시하도록 요청할 수 있습니다.
경로 패턴이 있는 리스너에 규칙을 추가하려면
-
다음과 같이 create-target-group 명령을 사용하여 대상 그룹을 만듭니다.
aws elbv2 create-target-group --name
my-targets
--protocol HTTP --port 80 \ --vpc-id vpc-0598c7d356EXAMPLE
-
다음과 같이 register-targets 명령을 사용하여 인스턴스를 대상 그룹에 등록합니다.
aws elbv2 register-targets --target-group-arn
targetgroup-arn
\ --targets Id=i-0abcdef1234567890
Id=i-1234567890abcdef0
-
URL에 지정된 패턴이 있는 경우 다음과 같이 create-rule 명령을 사용하여 요청을 대상 그룹에 전달하는 규칙을 리스너에 추가합니다.
aws elbv2 create-rule --listener-arn
listener-arn
--priority10
\ --conditions Field=path-pattern,Values='/img/*
' \ --actions Type=forward,TargetGroupArn=targetgroup-arn
로드 밸런서 삭제
더 이상 로드 밸런서 및 대상 그룹이 필요하지 않으면 다음과 같이 삭제할 수 있습니다.
aws elbv2 delete-load-balancer --load-balancer-arn
loadbalancer-arn
aws elbv2 delete-target-group --target-group-arntargetgroup-arn