AWS CLI를 사용한 Elastic Load Balancing 작업 예제 - Amazon EC2 Auto Scaling

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS CLI를 사용한 Elastic Load Balancing 작업 예제

AWS Command Line Interface(AWS CLI)를 사용하여 로드 밸런서와 대상 그룹을 연결, 분리, 설명하고, Elastic Load Balancing 상태 확인을 추가 및 제거하고, 활성화된 가용 영역을 변경합니다.

이 항목에서는 Amazon EC2 Auto Scaling의 일반적인 작업을 수행하는 AWS CLI 명령의 예제를 보여줍니다.

중요

추가 명령 예제는 AWS CLI 명령 참조aws elbv2aws elb(을)를 참조하세요.

대상 그룹 또는 Classic Load Balancer 연결

다음 create-auto-scaling-group 명령을 사용하여 Auto Scaling 그룹을 생성하고 Amazon 리소스 이름(ARN)을 지정하여 대상 그룹을 동시에 연결할 수 있습니다. 대상 그룹은 Application Load Balancer, Network Load Balancer 또는 Gateway Load Balancer와 연결할 수 있습니다.

--auto-scaling-group-name, --vpc-zone-identifier, --min-size, --max-size의 샘플 값을 바꿉니다. --launch-template 옵션의 경우, my-launch-template1를 Auto Scaling 그룹의 시작 템플릿 이름 및 버전으로 바꿉니다. --traffic-sources 옵션의 경우, 샘플 ARN을 Application Load Balancer, Network Load Balancer 또는 Gateway Load Balancer에 대한 대상 그룹의 ARN으로 바꿉니다.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --min-size 1 --max-size 5 \ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1"

대상 그룹이 생성된 후에 attach-traffic-sources 명령을 사용하여 추가 대상 그룹을 Auto Scaling 그룹에 연결합니다.

다음 명령은 다른 대상 그룹을 동일한 그룹에 추가합니다.

aws autoscaling attach-traffic-sources --auto-scaling-group-name my-asg \ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2"

또는 Classic Load Balancer를 그룹에 연결하려면 다음 예와 같이 create-auto-scaling-group 또는 attach-traffic-sources를 사용할 때 --traffic-sources--type 옵션을 지정합니다. my-classic-load-balancer을 Classic Load Balancer의 이름으로 바꿉니다. --type 옵션의 경우, elb의 값을 지정합니다.

--traffic-sources "Identifier=my-classic-load-balancer" --type elb

대상 그룹 또는 Classic Load Balancer 설명

Auto Scaling 그룹에 연결된 로드 밸런서 또는 대상 그룹을 설명하려면 다음 describe-traffic-sources 명령을 사용합니다. my-asg을 사용자 그룹의 이름으로 바꿉니다.

aws autoscaling describe-traffic-sources --auto-scaling-group-name my-asg

이 예에서는 Auto Scaling 그룹에 연결한 Elastic Load Balancing 대상 그룹의 ARN을 반환합니다.

{ "TrafficSources": [ { "Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1", "State": "InService", "Type": "elbv2" }, { "Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2", "State": "InService", "Type": "elbv2" } ] }

출력에서 State 필드에 대한 설명은 로드 밸런서의 연결 상태 확인(을)를 참조하세요.

Elastic Load Balancing 상태 확인 추가

Auto Scaling 그룹이 인스턴스에서 수행하는 상태 확인에 Elastic Load Balancing 상태 확인을 추가하려면 다음 update-auto-scaling-group 명령을 사용하여 ELB--health-check-type 옵션의 값으로 지정합니다. my-asg을 사용자 그룹의 이름으로 바꿉니다.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --health-check-type "ELB"

새 인스턴스는 상태 확인을 통과하기 전에 간단한 준비를 위한 시간이 필요한 경우가 많습니다. 유예 기간에 준비 시간이 충분하지 않으면 인스턴스가 트래픽을 서비스할 준비가 되지 않은 것처럼 보일 수 있습니다. Amazon EC2 Auto Scaling은 이러한 인스턴스를 비정상으로 간주하여 교체할 수 있습니다.

상태 확인 유예 기간을 업데이트하려면 다음 예와 같이 update-auto-scaling-group을 사용할 때 --health-check-grace-period 옵션을 사용합니다. 새 인스턴스가 비정상인 것으로 확인될 경우 종료하기 전에 새 인스턴스를 계속 사용할 수 있게 하려면 300을 초 단위로 바꿉니다.

--health-check-grace-period 300

자세한 내용은 Auto Scaling 그룹의 인스턴스에 대한 상태 확인 섹션을 참조하세요.

가용 영역 변경

가용 영역 변경과 관련하여 다음과 같은 몇 가지 제한 사항을 파악하고 있어야 합니다. 자세한 내용은 가용 영역 추가 섹션을 참조하세요.

Application Load Balancer 또는 Network Load Balancer의 가용 영역을 변경하려면
  1. 로드 밸런서의 가용 영역을 변경하기 전에 먼저 Auto Scaling 그룹의 가용 영역을 업데이트하여 지정된 영역에서 인스턴스 유형을 사용할 수 있는지 확인하는 것이 좋습니다.

    다음 update-auto-scaling-group 명령을 사용하여 Auto Scaling 그룹에 사용되는 가용 영역을 업데이트합니다. 샘플 서브넷 ID를 활성화할 가용 영역의 서브넷 ID로 바꿉니다. 지정된 서브넷이 이전에 활성화된 서브넷을 바꿉니다. my-asg을 사용자 그룹의 이름으로 바꿉니다.

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2,subnet-8360a9e7"
  2. 다음 describe-auto-scaling-groups 명령을 사용하여 새 서브넷의 인스턴스가 시작되었는지 확인합니다. 인스턴스가 시작된 경우 인스턴스 및 인스턴스 상태 목록이 표시됩니다. my-asg을 사용자 그룹의 이름으로 바꿉니다.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 다음 set-subnets 명령을 사용하여 로드 밸런서의 서브넷을 지정합니다. 샘플 서브넷 ID를 활성화할 가용 영역의 서브넷 ID로 바꿉니다. 가용 영역당 1개의 서브넷만 지정할 수 있습니다. 지정된 서브넷이 이전에 활성화된 서브넷을 바꿉니다. my-lb-arn를 로드 밸런서의 ARN으로 바꿉니다.

    aws elbv2 set-subnets --load-balancer-arn my-lb-arn \ --subnets subnet-41767929 subnet-cb663da2 subnet-8360a9e7
Classic Load Balancer의 가용 영역을 변경하려면
  1. 로드 밸런서의 가용 영역을 변경하기 전에 먼저 Auto Scaling 그룹의 가용 영역을 업데이트하여 지정된 영역에서 인스턴스 유형을 사용할 수 있는지 확인하는 것이 좋습니다.

    다음 update-auto-scaling-group 명령을 사용하여 Auto Scaling 그룹에 사용되는 가용 영역을 업데이트합니다. 샘플 서브넷 ID를 활성화할 가용 영역의 서브넷 ID로 바꿉니다. 지정된 서브넷이 이전에 활성화된 서브넷을 바꿉니다. my-asg을 사용자 그룹의 이름으로 바꿉니다.

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2"
  2. 다음 describe-auto-scaling-groups 명령을 사용하여 새 서브넷의 인스턴스가 시작되었는지 확인합니다. 인스턴스가 시작된 경우 인스턴스 및 인스턴스 상태 목록이 표시됩니다. my-asg을 사용자 그룹의 이름으로 바꿉니다.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 다음 attach-load-balancer-to-subnets 명령을 사용하여 Classic Load Balancer에 대해 새 가용 영역을 활성화합니다. 샘플 서브넷 ID를 활성화할 가용 영역의 서브넷 ID로 바꿉니다. my-lb를 로드 밸런서의 이름으로 바꿉니다.

    aws elb attach-load-balancer-to-subnets --load-balancer-name my-lb \ --subnets subnet-cb663da2

    가용 영역을 비활성화하려면 다음 detach-load-balancer-from-subnets 명령을 사용합니다. 샘플 서브넷 ID를 비활성화할 가용 영역의 서브넷 ID로 바꿉니다. my-lb를 로드 밸런서의 이름으로 바꿉니다.

    aws elb detach-load-balancer-from-subnets --load-balancer-name my-lb \ --subnets subnet-8360a9e7

대상 그룹 또는 Classic Load Balancer 분리

대상 그룹이 더이상 필요하지 않으면 detach-traffic-sources 명령을 사용하여 Auto Scaling 그룹에서 대상 그룹을 분리합니다.

--auto-scaling-group-name 옵션의 경우, my-asg를 그룹 이름으로 바꿉니다. --traffic-sources 옵션의 경우, 샘플 ARN을 Application Load Balancer, Network Load Balancer 또는 Gateway Load Balancer에 대한 대상 그룹의 ARN으로 바꿉니다.

aws autoscaling detach-traffic-sources --auto-scaling-group-name my-asg \ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"

그룹에서 Classic Load Balancer를 분리하려면 다음 예와 같이 --traffic-sources--type 옵션을 지정합니다. my-classic-load-balancer을 Classic Load Balancer의 이름으로 바꿉니다. --type 옵션의 경우, elb의 값을 지정합니다.

--traffic-sources "Identifier=my-classic-load-balancer" --type elb

Elastic Load Balancing 상태 확인 제거

Auto Scaling 그룹에서 Elastic Load Balancing 상태 확인을 제거하려면 다음 update-auto-scaling-group 명령을 사용하여 EC2--health-check-type 옵션의 값으로 지정합니다. my-asg을 사용자 그룹의 이름으로 바꿉니다.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --health-check-type "EC2"

자세한 내용은 Auto Scaling 그룹의 인스턴스에 대한 상태 확인 섹션을 참조하세요.

레거시 명령

다음 예에서는 레거시 CLI 명령을 사용하여 로드 밸런서와 대상 그룹을 연결, 분리, 설명하는 방법을 보여줍니다. 이 설명서는 이 설명서를 사용하려는 모든 고객을 위한 참조 자료로 유지됩니다. 레거시 CLI 명령은 계속 지원되지만 여러 트래픽 소스 유형을 연결하고 분리할 수 있는 새로운 “트래픽 소스” CLI 명령을 사용하는 것이 좋습니다. 동일한 Auto Scaling 그룹에서 레거시 CLI 명령과 “트래픽 소스” CLI 명령을 모두 사용할 수 있습니다.

대상 그룹을 연결하려면

다음 Create-auto-scaling-group 명령은 연결된 대상 그룹을 사용하여 Auto Scaling 그룹을 생성합니다. Application Load Balancer, Network Load Balancer 또는 Gateway Load Balancer에 대한 대상 그룹의 Amazon 리소스 이름(ARN)을 지정합니다.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456" \ --min-size 1 --max-size 5

다음 attach-load-balancer-target-groups 명령은 대상 그룹을 기존 Auto Scaling 그룹에 연결합니다.

aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name my-asg \ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
Classic Load Balancer를 연결하려면

다음 Create-auto-scaling-group 명령은 연결된 Classic Load Balancer에서 Auto Scaling 그룹을 생성합니다.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --load-balancer-names "my-load-balancer" \ --min-size 1 --max-size 5

다음 attach-load-balancers 명령은 지정된 Classic Load Balancer를 기존 Auto Scaling 그룹에 연결합니다.

aws autoscaling attach-load-balancers --auto-scaling-group-name my-asg \ --load-balancer-names my-lb
대상 그룹을 설명하려면

Auto Scaling 그룹과 연결된 대상 그룹을 설명하려면 describe-load-balancer-target-groups 명령을 사용합니다. 다음은 my-asg에 대한 대상 그룹을 나열하는 예제입니다.

aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-name my-asg
Classic Load Balancer를 설명하려면

Auto Scaling 그룹과 연결된 Classic Load Balancer를 설명하려면 describe-load-balancers 명령을 사용합니다. 다음 예제에서는 my-asg의 Classic Load Balancer를 나열합니다.

aws autoscaling describe-load-balancers --auto-scaling-group-name my-asg
대상 그룹을 분리하려면

대상 그룹이 더 이상 필요하지 않으면 다음 detach-load-balancer-target-groups 명령으로 Auto Scaling 그룹에서 대상 그룹을 분리할 수 있습니다.

aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-name my-asg \ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
Classic Load Balancer를 분리하려면

필요하지 않은 경우 다음 detach-load-balancers 명령을 사용하면 Auto Scaling 그룹에서 Classic Load Balancer를 분리할 수 있습니다.

aws autoscaling detach-load-balancers --auto-scaling-group-name my-asg \ --load-balancer-names my-lb