Amazon EC2 Auto Scaling
사용 설명서

규모가 늘어나고 로드 밸런싱된 애플리케이션을 추가 가용 영역까지 확장

리전 내 여러 가용 영역에 걸쳐 Auto Scaling 그룹으로 확장한 다음 로드 밸런서를 연결하여 들어오는 트래픽을 해당 영역에 분산시킴으로써 안전하고 안정적인 지리적 이중화를 활용할 수 있습니다. 들어오는 트래픽은 로드 밸런서에서 활성화된 모든 가용 영역에 고르게 분산됩니다.

참고

Auto Scaling 그룹은 동일한 리전 내의 여러 가용 영역에 속하는 EC2 인스턴스를 포함할 수 있습니다. 그러나 Auto Scaling 그룹은 여러 리전의 EC2 인스턴스는 포함할 수 없습니다.

하나의 가용 영역이 비정상 또는 사용 불가 상태가 되었을 때 영향을 받지 않은 영역에서 Amazon EC2 Auto Scaling가 새 인스턴스를 시작합니다. 비정상 가용 영역이 정상 상태로 복귀하는 경우 Auto Scaling 그룹의 모든 가용 영역에서 Amazon EC2 Auto Scaling이 해당 애플리케이션 인스턴스를 고르게 자동으로 재배포합니다. 이는 최소의 인스턴스로 가용 영역에서 새 인스턴스를 시작하려고 하는 방식으로 Amazon EC2 Auto Scaling에 의해 수행됩니다. 하지만 시도가 실패하는 경우 성공할 때까지 Amazon EC2 Auto Scaling는 다른 가용 영역에서의 시작을 계속 시도합니다.

Auto Scaling 그룹에 가용 영역을 추가한 다음 로드 밸런서에서 해당 영역을 활성화하는 방식으로, 규모가 늘어나고 로드 밸런싱된 애플리케이션의 가용성을 늘릴 수 있습니다. 새 가용 구역을 활성화한 후 로드 밸런서는 활성화된 모든 영역에 걸쳐 고르게 트래픽을 라우팅하기 시작합니다.

콘솔을 사용하여 가용 영역 추가

다음 절차에 따라 Auto Scaling 그룹을 추가 서브넷(EC2-VPC) 또는 가용 영역(EC2-Classic)으로 확장합니다.

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창의 Auto Scaling 아래에서 Auto Scaling 그룹을 선택합니다.

  3. 그룹을 선택합니다.

  4. [Details] 탭에서 [Edit]를 선택합니다.

  5. 다음 중 하나를 수행합니다.

    • [EC2-VPC] [Subnet(s)]에서 가용 영역에 해당하는 서브넷을 선택합니다

    • [EC2-Classic] [Availability Zones(s)]에서 가용 영역을 선택합니다.

  6. Save를 선택합니다.

  7. 탐색 창에서 [Load Balancers]를 클릭합니다.

  8. 로드 밸런서를 선택합니다.

  9. 다음 중 하나를 수행합니다.

    • [EC2-Classic에서 Classic Load Balancer] 인스턴스 탭에서 가용 영역 편집을 선택합니다. [Add and Remove Availability Zones] 페이지에서 추가할 가용 영역을 선택합니다.

    • [VPC에서 Classic Load Balancer] 인스턴스 탭에서 가용 영역 편집을 선택합니다. [Add and Remove Subnets] 페이지의 [Available subnets]에서 추가할 서브넷에 추가 아이콘(+)을 선택합니다. 그러면 서브넷이 [Selected subnets] 아래로 이동합니다.

    • [Application Load Balancer] 설명 탭의 가용 영역에서 편집을 선택합니다. 가용 영역에 추가할 서브넷 중 하나에 추가 아이콘(+)을 선택합니다. 그러면 서브넷이 [Selected subnets] 아래로 이동합니다.

  10. Save를 선택합니다.

AWS CLI를 사용하여 가용 영역 추가

사용하는 명령은 로드 밸런서가 VPC의 Classic Load Balancer인지, EC2-Classic의 Classic Load Balancer인지 또는 Application Load Balancer인지에 따라 다릅니다.

VPC의 Classic Load Balancer에 연결된 Auto Scaling 그룹의 경우

  1. 다음 update-auto-scaling-group 명령을 사용하여 Auto Scaling 그룹에 서브넷을 추가합니다.

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --vpc-zone-identifier subnet-41767929 subnet-cb663da2 --min-size 2
  2. 다음 describe-auto-scaling-groups 명령을 사용하여 새 서브넷의 인스턴스가 로드 밸런서로부터 트래픽을 허용할 준비가 되었는지 확인합니다.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 다음 attach-load-balancer-to-subnets 명령을 사용하여 Classic Load Balancer에 대해 새 서브넷을 활성화합니다.

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

EC2-Classic의 Classic Load Balancer 에 연결된 Auto Scaling 그룹의 경우

  1. 다음 update-auto-scaling-group 명령을 사용하여 Auto Scaling 그룹에 가용 영역을 추가합니다.

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --availability-zones us-west-2a us-west-2b us-west-2c --min-size 3
  2. 다음 describe-auto-scaling-groups 명령을 사용하여 새 가용 영역의 인스턴스가 로드 밸런서로부터 트래픽을 허용할 준비가 되었는지 확인합니다.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 다음 enable-availability-zones-for-load-balancer 명령을 사용하여 Classic Load Balancer에 대해 새 가용 영역을 활성화합니다.

    aws elb enable-availability-zones-for-load-balancer --load-balancer-name my-lb --availability-zones us-west-2c

Application Load Balancer가 있는 Auto Scaling 그룹의 경우

  1. 다음 update-auto-scaling-group 명령을 사용하여 Auto Scaling 그룹에 서브넷을 추가합니다.

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --vpc-zone-identifier subnet-41767929 subnet-cb663da2 --min-size 2
  2. 다음 describe-auto-scaling-groups 명령을 사용하여 새 서브넷의 인스턴스가 로드 밸런서로부터 트래픽을 허용할 준비가 되었는지 확인합니다.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 다음 set-subnets 명령을 사용하여 Application Load Balancer에 대해 새 서브넷을 활성화합니다.

    aws elbv2 set-subnets --load-balancer-arn my-lb-arn --subnets subnet-41767929 subnet-cb663da2