용량 예약을 통해 특정 가용 영역의 용량을 예약할 수 있습니다. - 아마존 EC2 오토 스케일링

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

용량 예약을 통해 특정 가용 영역의 용량을 예약할 수 있습니다.

Amazon EC2 온디맨드 용량 예약을 사용하면 특정 가용 영역의 컴퓨팅 용량을 예약할 수 있습니다. 용량 예약 사용을 시작하려면 특정 가용 영역에서 용량 예약을 생성합니다. 그런 다음, 인스턴스를 예약 용량으로 시작하거나 용량 사용률을 실시간으로 확인할 수 있으며, 필요 시 용량을 늘리거나 줄일 수 있습니다.

용량 예약은 open 또는 targeted로 구성됩니다. 용량 예약이 open인 경우 일치하는 속성이 있는 새 인스턴스 및 기존 인스턴스는 용량 예약의 용량으로 자동 실행됩니다. 용량 예약이 targeted이면 인스턴스를 예약된 용량으로 실행하도록 지정해야 합니다.

이 항목에서는 targeted 용량 예약에 온디맨드 인스턴스를 시작하는 Auto Scaling 그룹을 생성하는 방법을 보여줍니다. 특정 용량 예약을 사용할 때 유용합니다.

기본 단계는 다음과 같습니다.

  1. 인스턴스 유형, 플랫폼, 인스턴스 수가 동일한 여러 가용 영역에 용량 예약을 생성합니다.

  2. AWS Resource Groups를 사용하여 용량 예약을 그룹화합니다.

  3. 용량 예약과 동일한 가용 영역을 사용하여 리소스 그룹을 대상으로 하는 시작 템플릿으로 Auto Scaling 그룹을 생성합니다.

1단계: 용량 예약 생성

첫 번째 단계는 Auto Scaling 그룹이 배포될 각 가용 영역에 용량 예약을 생성하는 것입니다.

참고

용량 예약을 처음 생성할 때만 targeted 예약을 생성할 수 있습니다.

Console
용량 예약을 생성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 용량 예약를 선택한 후 용량 예약 생성을 선택합니다.

  3. 용량 예약 생성 페이지의 인스턴스 세부 정보 섹션에서 다음 설정에 주의하세요. 시작하는 인스턴스 유형, 플랫폼, 인스턴스의 가용 영역은 여기서 지정한 인스턴스 유형, 플랫폼, 가용 영역과 일치해야 합니다. 그렇지 않으면 용량 예약이 적용되지 않습니다.

    1. 인스턴스 유형의 경우 예약된 용량으로 시작할 인스턴스 유형을 선택합니다.

    2. 플랫폼은 사용자 인스턴스에 사용할 운영 체제를 선택합니다.

    3. 가용 영역의 경우 용량을 예약하려는 첫 번째 가용 영역을 선택합니다.

    4. 총 용량은 필요한 인스턴스 수를 선택합니다. Auto Scaling 그룹에 필요한 총 인스턴스 수를 사용하려는 가용 영역 수로 나눈 값을 계산합니다.

  4. 용량 예약 세부 정보에서, 용량 예약 종료를 위해, 다음 옵션 중 하나를 선택합니다.

    • 특정 시간 - 지정된 날짜 및 시간에 용량 예약을 자동으로 취소합니다.

    • 수동 — 명시적으로 취소할 때까지 용량을 예약합니다.

  5. 인스턴스 자격에서 대상: 용량 예약을 대상으로 하는 인스턴스만을 선택합니다.

  6. (선택 사항) 태그의 경우 용량 예약과 연결할 태그를 지정합니다.

  7. 생성을 선택합니다.

  8. 새로 생성한 용량 예약의 ID를 기록해 둡니다. 용량 예약 그룹을 설정하는 데 필요합니다.

Auto Scaling 그룹에 사용할 각 가용 영역에 대해 이 절차를 반복하고 가용 영역 옵션의 값만 변경합니다.

AWS CLI
용량 예약을 생성하려면

다음 create-capacity-reservation명령을 사용하여 용량 예약을 생성합니다. --availability-zone, --instance-type, --instance-platform, --instance-count의 샘플 값을 바꿉니다.

aws ec2 create-capacity-reservation \ --availability-zone us-east-1a \ --instance-type c5.xlarge \ --instance-platform Linux/UNIX \ --instance-count 3 \ --instance-match-criteria targeted

결과 용량 예약 ID의 예

{ "CapacityReservation": { "CapacityReservationId": "cr-1234567890abcdef1", "OwnerId": "123456789012", "CapacityReservationArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", "InstanceType": "c5.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "Tenancy": "default", "TotalInstanceCount": 3, "AvailableInstanceCount": 3, "EbsOptimized": false, "EphemeralStorage": false, "State": "active", "StartDate": "2023-07-26T21:36:14+00:00", "EndDateType": "unlimited", "InstanceMatchCriteria": "targeted", "CreateDate": "2023-07-26T21:36:14+00:00" } }

새로 생성한 용량 예약의 ID를 기록해 둡니다. 용량 예약 그룹을 설정하는 데 필요합니다.

Auto Scaling 그룹에 사용할 각 가용 영역에 대해 이 명령을 반복하고 --availability-zone 옵션의 값만 변경합니다.

2단계: 용량 예약 그룹 생성

용량 예약 생성이 끝나면 AWS Resource Groups 서비스를 사용하여 용량 예약을 함께 그룹화할 수 있습니다. AWS Resource Groups는 용도에 따라 여러 가지 다른 유형의 그룹을 지원합니다. Amazon EC2는 서비스 연결 리소스 그룹이라는 특수 목적 그룹을 사용하여 용량 예약 그룹을 대상으로 합니다. 이 서비스 연결 리소스 그룹과 상호 작용하려면 콘솔이 아닌 AWS CLI 또는 SDK를 사용할 수 있습니다. 서비스 연결 리소스 그룹에 대한 자세한 내용은 AWS Resource Groups 사용 설명서리소스 그룹에 대한 서비스 구성을 참조하세요.

를 사용하여 용량 예약 그룹을 만들려면 AWS CLI

create-group 명령을 사용하여 용량 예약만 포함할 수 있는 리소스 그룹을 생성할 수 있습니다. 이 예제에서 리소스 그룹의 이름은 my-cr-group입니다.

aws resource-groups create-group \ --name my-cr-group \ --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'

다음은 응답의 예입니다.

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group", "Name": "my-cr-group" }, "GroupConfiguration": { "Configuration": [ { "Type": "AWS::EC2::CapacityReservationPool" }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::CapacityReservation" ] } ] } ], "Status": "UPDATE_COMPLETE" } }

리소스 그룹의 ARN을 기록해 두세요. Auto Scaling 그룹에 대한 시작 템플릿을 설정할 때 필요합니다.

AWS CLI를 사용하여 용량 예약을 새로 생성된 그룹에 연결하려면

다음 group-resources 명령을 사용하여 용량 예약을 새로 생성된 용량 예약 그룹에 연결합니다. --resource-arns 옵션의 경우, 해당 ARN을 사용하여 용량 예약을 지정합니다. 관련 리전, 사용자의 계정 ID, 이전 단계에서 기록한 예약 ID를 사용하여 ARN을 구성합니다. 이 예시에서는 ID cr-1234567890abcdef1cr-54321abcdef567890를 포함한 예약이 my-cr-group으로 이름이 지정된 그룹에서 함께 그룹화됩니다.

aws resource-groups group-resources \ --group my-cr-group \ --resource-arns \ arn:aws:ec2:region:account-id:capacity-reservation/cr-1234567890abcdef1 \ arn:aws:ec2:region:account-id:capacity-reservation/cr-54321abcdef567890

다음은 응답의 예입니다.

{ "Succeeded": [ "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" ], "Failed": [], "Pending": [] }

리소스 그룹의 수정 또는 삭제에 대한 자세한 내용은 AWS Resource Groups API 참조를 참조하세요.

3단계: 시작 템플릿 생성

Console
시작 템플릿을 생성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창의 Instances(인스턴스)에서 Launch Templates(시작 템플릿)을 선택합니다.

  3. Create launch template(시작 템플릿 생성)을 선택합니다. 시작 템플릿의 이름을 입력하고 초기 버전에 대한 설명을 제공하세요.

  4. Auto Scaling guidance(Auto Scaling 지침)에서 확인란을 선택합니다.

  5. 시작 템플릿을 생성합니다. 사용할 용량 예약과 일치하는 AMI 및 인스턴스 유형을 선택하고 선택 사항으로 키 페어, 보안 그룹 1개 이상, 인스턴스에 대한 추가 EBS 볼륨 또는 인스턴스 스토어 볼륨을 선택할 수 있습니다.

  6. 고급 세부 정보를 열고 다음을 수행합니다.

    1. 용량 예약그룹별 대상을 선택합니다.

    2. 용량 예약 - 그룹별 대상은 이전 섹션에서 생성한 용량 예약 그룹을 선택한 다음 저장을 선택합니다.

  7. Create launch template(시작 템플릿 생성)을 선택합니다.

  8. 확인 페이지에서 Create Auto Scaling group(Auto Scaling 그룹 생성)을 선택합니다.

AWS CLI
시작 템플릿 생성

다음 create-launch-template명령을 사용하여 용량 예약이 특정 리소스 그룹을 대상으로 하도록 지정하는 시작 템플릿을 생성합니다. --launch-template-name의 샘플 값을 바꿉니다. c5.xlarge를 용량 예약에서 사용한 인스턴스 유형으로 대체하고, ami-0123456789EXAMPLE을 사용하려는 AMI의 ID로 대체합니다. arn:aws:resource-groups:region:account-id:group/my-cr-group을 이전 섹션의 시작 부분에서 생성한 리소스 그룹의 ARN으로 대체합니다.

aws ec2 create-launch-template \ --launch-template-name my-launch-template \ --launch-template-data \ '{"InstanceType": "c5.xlarge", "ImageId": "ami-0123456789EXAMPLE", "CapacityReservationSpecification": {"CapacityReservationTarget": { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:region:account-id:group/my-cr-group" } } }'

다음은 응답의 예입니다.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-0dd77bd41dEXAMPLE", "LaunchTemplateName": "my-launch-template", "CreateTime": "2023-07-26T21:42:48+00:00", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

4단계: Auto Scaling 그룹 생성

Console

평소와 같이 Auto Scaling 그룹을 생성하되, VPC 서브넷을 선택할 때는 각 가용 영역에서 생성한 targeted 용량 예약과 일치하는 서브넷을 선택합니다. Auto Scaling 그룹이 이러한 가용 영역 중 하나에서 온디맨드 인스턴스를 시작하면 해당 가용 영역에 예약된 용량으로 인스턴스가 실행됩니다. 원하는 용량이 충족되기 전에 리소스 그룹의 용량 예약이 소진되면 예약 용량을 초과한 모든 용량을 일반 온디맨드 용량으로 시작합니다.

단순한 Auto Scaling 그룹을 생성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 열고 탐색 창에서 Auto Scaling 그룹(Auto Scaling Groups)을 선택합니다.

  2. 화면 상단의 탐색 표시줄에서 시작 템플릿을 생성할 때 사용한 것과 동일한 AWS 리전 것을 선택합니다.

  3. Auto Scaling 그룹 생성을 선택합니다.

  4. 시작 템플릿 또는 구성 선택 페이지에서 Auto Scaling group name(Auto Scaling 그룹 명칭)에 Auto Scaling 그룹의 이름을 입력합니다.

  5. 시작 템플릿에서 기존 시작 템플릿을 선택합니다.

  6. Launch template version(시작 템플릿 버전)에서 Auto Scaling 그룹이 스케일 아웃 시 시작 템플릿의 기본 버전을 사용할지, 최신 버전을 사용할지, 아니면 특정 버전을 사용할지를 선택합니다.

  7. 인스턴스 시작 옵션 선택 페이지에서 인스턴스 유형 요구 사항 섹션을 건너뛰고 시작 템플릿에 지정된 EC2 인스턴스 유형을 사용합니다.

  8. 네트워크(Network)VPC에서 VPC를 선택합니다. Auto Scaling 그룹은 시작 템플릿에서 지정한 보안 그룹과 동일한 VPC에 생성되어야 합니다. 시작 템플릿에서 보안 그룹을 지정하지 않은 경우, 용량 예약과 동일한 가용 영역에 서브넷이 있는 모든 VPC를 선택할 수 있습니다.

  9. 가용 영역 및 서브넷의 경우, 용량 예약이 있는 가용 영역에 따라 포함할 각 가용 영역의 서브넷을 선택합니다.

  10. 다음을 두 번 선택합니다

  11. 그룹 크기 및 조정 정책 구성 페이지에서 원하는 용량에 시작할 인스턴스의 초기 수를 입력합니다. 이 수를 최소 또는 최대 용량 제한을 벗어나는 값으로 변경하는 경우 최소 용량 또는 최대 용량 값을 업데이트해야 합니다. 자세한 내용은 Auto Scaling 그룹에 대한 스케일링 제한 설정(을)를 참조하세요.

  12. Skip to review(검토로 건너뛰기)를 선택합니다.

  13. 검토(Review) 페이지에서 Auto Scaling 그룹 생성(Create Auto Scaling group)을 선택합니다.

AWS CLI
단순한 Auto Scaling 그룹을 생성하려면

다음 create-auto-scaling-group명령을 사용하고 시작 템플릿의 이름과 버전을 --launch-template 옵션 값으로 지정합니다. --auto-scaling-group-name, --min-size, --max-size, --vpc-zone-identifier의 샘플 값을 바꿉니다.

--availability-zones 옵션에는 용량 예약을 생성한 가용 영역을 지정합니다. 예를 들어, 용량 예약에서 us-east-1aus-east-1b 가용 영역을 지정하는 경우 동일한 영역에 Auto Scaling 그룹을 생성해야 합니다. Auto Scaling 그룹이 이러한 가용 영역 중 하나에서 온디맨드 인스턴스를 시작하면 해당 가용 영역에 예약된 용량으로 인스턴스가 실행됩니다. 원하는 용량이 충족되기 전에 리소스 그룹의 용량 예약이 소진되면 예약 용량을 초과한 모든 용량을 일반 온디맨드 용량으로 시작합니다.

aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --min-size 6 \ --max-size 6 \ --vpc-zone-identifier "subnet-5f46ec3b,subnet-0ecac448" \ --availability-zones us-east-1a us-east-1b

예제 구현은 다음 AWS 샘플 GitHub 리포지토리의 AWS CloudFormation 템플릿을 참조하십시오. https://github.com/aws-samples/ aws-auto-scaling-backed - by-on-demand-capacity -reservations/.

용량 예약에 대해 알아볼 때 다음과 같은 관련 항목을 활용하세요.