AWS CLI로 Application Load Balancer 생성해 보기

AWS CLI로 Application Load Balancer를 생성해 보는 과정을 정리해 봤습니다.
2021.09.23

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 AWS CLI로 Application Load Balancer를 생성해 보는 과정을 정리해 봤습니다.

시작하기 전에

시작하기 전에 확인해야 할 사항이 있습니다.

  • Application Load Balancer를 지원하는 버전의 AWS CLI를 사용하고 있는지 확인
  • 2대의 EC2 인스턴스가 생성된 상태인지 확인
aws elbv2 help

다음 명령어를 통해, Application Load Balancer를 지원하는 CLI인지 확인합니다.

CLI로 EC2 인스턴스를 생성하는 방법은 위 링크를 참고해 주세요.

CLI로 Application Load Balancer 생성

서브넷과 보안 그룹 확인

CLI로 Application Load Balancer를 생성하기 전에, 현재 EC2에서 사용하고 있는 서브넷과 보안 그룹을 알아야 합니다.

aws ec2 describe-vpcs

VPC ID를 확인합니다.

aws ec2 describe-subnets \
--filters "Name=vpc-id,Values=vpc-949667f2"

서로 다른 가용영역의 서브넷 아이디를 확인합니다.

aws ec2 describe-instances --filters --query 'Reservations[].Instances[].SecurityGroups'

위 명령어로 보안 그룹 아이디를 확인합니다.

Application LoadBalancer 생성

aws elbv2 create-load-balancer --name my-load-balancer \
--subnets subnet-636ad92b subnet-113a803a --security-groups sg-07c95b0a370732957

서로 다른 가용영역의 서브넷과, 보안 그룹을 넣어서 실행하면 Application Load Balancer가 생성됩니다.

대상 그룹 생성

aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 \
--vpc-id vpc-949667f2
aws elbv2 describe-target-groups
aws elbv2 describe-target-group-attributes --target-group-arn 대상 그룹 arn

대상 그룹을 생성합니다. VPC는 EC2 인스턴스에 사용 된 것과 동일한 VPC를 지정합니다.

  • aws elbv2 describe-target-groups
  • aws elbv2 describe-target-group-attributes --target-group-arn 대상 그룹 arn

현재 대상 그룹의 상태와 속성을 확인합니다.

aws ec2 describe-instances --filters --query 'Reservations[].Instances[].InstanceId'

EC2 인스턴스를 대상 그룹에 추가

다음은 EC2 인스턴스를 대상 그룹에 추가해야 합니다. 먼저 EC2 인스턴스 ID를 확인하는 방법은 위 명령어를 입력하면 됩니다.

aws elbv2 register-targets --target-group-arn 대상 그룹 arn \
--targets Id=첫 번째 EC2 인스턴스 ID Id=두 번째 EC2 인스턴스 ID

위 명령어로 EC2 인스턴스를 대상 그룹에 추가합니다.

aws elbv2 describe-target-health --target-group-arn 대상 그룹 arn

대상 그룹 상태를 확인합니다.

리스너 생성 및 Healthy 체크

aws elbv2 create-listener --load-balancer-arn 로드밸런서 arn --protocol HTTP --port 80 --default-actions Type=forward,TargetGroupArn=대상 그룹 arn

프로토콜 및 포트를 사용하여 연결 요청을 수신하는 리스너를 생성합니다.

aws elbv2 describe-listeners --load-balancer-arn 로드밸런서 arn

현재 리스너 상태를 확인합니다.

aws elbv2 describe-target-health --target-group-arn 대상 그룹 arn

현재 대상 그룹의 상태를 확인합니다. State가「Healthy」상태면 Application LoadBalancer가 정상적으로 작동하고 있는 중 입니다.

aws elbv2 describe-load-balancers --query 'LoadBalancers[].DNSName'

표시된 공용 DNS에 대해 Web 페이지가 표시되면 아무 문제 없이 작동 중입니다.

참고