Amazon Elastic Compute Cloud
Linux 인스턴스용 사용 설명서

EC2 집합 관리

EC2 집합을 사용하려면 총 목표 용량, 온디맨드 용량, 스팟 용량, 인스턴스에 대한 하나 이상의 시작 사양, 지불하려는 최고 가격을 포함하는 요청을 생성합니다. AMI, 인스턴스 유형, 서브넷 또는 가용 영역 및 하나 이상의 보안 그룹과 같이 인스턴스를 시작하기 위해 필릿에 필요한 정보를 정의하는 시작 템플릿을 플릿 요청에 포함해야 합니다. 인스턴스 유형, 서브넷, 가용 영역 및 지불하려는 최고 가격의 시작 사양 재정의를 지정할 수 있으며 가중치가 적용된 용량을 각 시작 사양 재정의에 할당할 수 있습니다.

플릿에 스팟 인스턴스가 포함되어 있으면 Amazon EC2에서 스팟 가격의 변화에 따라 플릿 목표 용량을 유지하려고 할 수 있습니다.

EC2 집합 요청은 요청이 만료되거나 삭제될 때까지 활성 상태로 유지됩니다. 플릿을 삭제할 때 삭제로 인해 해당 플릿의 인스턴스가 종료될지 여부를 지정할 수 있습니다.

EC2 집합 요청 상태

EC2 집합 요청은 다음 상태 중 하나일 수 있습니다.

  • submitted – EC2 집합 요청을 평가 중이며 Amazon EC2가 목표 개수만큼 인스턴스를 시작할 준비 중입니다(온디맨드 인스턴스, 스팟 인스턴스, 또는 둘 다 포함할 수 있음).

  • active – EC2 집합 요청이 확인되었으며 Amazon EC2가 실행 중인 인스턴스를 목표 개수만큼 유지하려고 시도하고 있습니다. 요청은 수정하거나 삭제할 때까지 이 상태로 유지됩니다.

  • modifying – EC2 집합 요청을 수정하고 있습니다. 수정이 완전히 처리되거나 요청이 삭제될 때까지 요청이 이 상태로 유지됩니다. maintain 요청 유형만 수정할 수 있습니다. 이 상태는 다른 요청 유형에는 적용되지 않습니다.

  • deleted_running – EC2 집합 요청이 삭제되고 추가 인스턴스를 시작하지 않습니다. 중단되거나 종료될 때까지 기존 인스턴스가 계속 실행됩니다. 그 요청은 모든 인스턴스가 중단 또는 종료될 때까지 계속 이 상태로 유지됩니다.

  • deleted_terminating – EC2 집합 요청이 삭제되고 해당 인스턴스가 종료됩니다. 그 요청은 모든 인스턴스가 종료될 때까지 계속 이 상태로 유지됩니다.

  • deleted – EC2 집합이 삭제되고 실행 중인 인스턴스가 없습니다. 인스턴스가 종료되고 2일 후 요청이 삭제됩니다.

다음 그림은 EC2 집합 요청 상태의 전환을 나타냅니다. 플릿 제한을 초과하면 즉시 요청이 삭제됩니다.


					EC2 집합 요청 상태

EC2 집합 사전 조건

EC2 집합을 생성하려면 다음 사전 조건이 갖춰져야 합니다.

시작 템플릿

시작 템플릿에는 인스턴스 유형, 가용 영역, 지불하려는 최고 가격 등 시작할 인스턴스에 대한 정보가 포함됩니다. 자세한 내용은 시작 템플릿에서 인스턴스 시작 단원을 참조하십시오.

EC2 집합의 서비스 연결 역할

AWSServiceRoleForEC2Fleet 역할은 사용자를 대신해 인스턴스를 요청, 시작, 종료 및 태그 지정할 권한을 EC2 집합에 부여합니다. Amazon EC2는 이 서비스 연결 역할을 사용하여 다음 작업을 완료합니다.

  • ec2:RequestSpotInstances – 스팟 인스턴스 요청.

  • ec2:TerminateInstances – 스팟 인스턴스 종료.

  • ec2:DescribeImages – 스팟 인스턴스용 Amazon 머신 이미지(AMI)를 설명합니다.

  • ec2:DescribeInstanceStatus – 스팟 인스턴스의 상태를 설명합니다.

  • ec2:DescribeSubnets – 스팟 인스턴스용 서브넷에 대해 설명합니다.

  • ec2:CreateTags - 스팟 인스턴스에 시스템 태그를 추가합니다.

AWS CLI 또는 API를 사용하여 EC2 집합을 만들려면 먼저 이 역할이 있어야 합니다. 역할을 생성하려면 다음과 같이 IAM 콘솔을 사용하십시오.

EC2 집합에 대한 IAM 역할 생성 방법

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할을 선택한 후 역할 생성을 선택합니다.

  3. 신뢰할 수 있는 유형의 엔터티 선택에서 AWS 서비스를 선택합니다.

  4. Choose the service that will use this role(이 역할을 사용할 서비스 선택)에서 EC2 - Fleet(EC2 - 플릿)을 선택한 다음 Next: Permissions(다음: 권한), Next: Tags(다음: 태그), 및 Next: Review(다음: 검토)를 선택합니다.

  5. 검토 페이지에서 역할 만들기를 선택합니다.

EC2 집합이 더 이상 필요 없으면 AWSServiceRoleForEC2Fleet 역할을 삭제하는 것이 좋습니다. 계정에서 이 역할을 삭제한 후 다른 플릿을 생성하면 다시 역할을 만들 수 있습니다.

EC2 집합와 IAM 사용자

EC2 집합을 생성하거나 관리하는 IAM 사용자에게는 다음과 같이 필요한 권한을 부여해야 합니다.

EC2 집합의 IAM 사용자 권한을 부여하려면

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 정책을 선택합니다.

  3. [Create policy]를 선택합니다.

  4. 정책 생성 페이지에서 JSON 탭을 선택한 다음, 텍스트를 다음과 같이 바꾸고 정책 검토를 선택합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:PassRole", "iam:ListInstanceProfiles" ], "Resource": "*" } ] }

    ec2:*는 모든 Amazon EC2 API 작업을 호출할 수 있는 IAM 사용자 권한을 부여합니다. 사용자를 특정 Amazon EC2 API 작업으로 제한하려면 해당 작업을 대신 지정하십시오.

    IAM 사용자에는 기존 IAM 역할을 열거하는 iam:ListRoles 작업, EC2 집합 역할을 지정하는 iam:PassRole 작업 및 기존 인스턴스 프로파일을 열거하는 iam:ListInstanceProfiles 작업을 호출할 수 있는 권한이 있어야 합니다.

    (선택 사항) IAM 사용자가 IAM 콘솔을 사용하여 역할 또는 인스턴스 프로파일을 생성할 수 있도록 하려면 정책에 다음 작업도 추가해야 합니다.

    • iam:AddRoleToInstanceProfile

    • iam:AttachRolePolicy

    • iam:CreateInstanceProfile

    • iam:CreateRole

    • iam:GetRole

    • iam:ListPolicies

  5. 정책 검토 페이지에 정책 이름과 설명을 입력한 다음 정책 생성을 선택합니다.

  6. 탐색 창에서 사용자를 선택하고 사용자를 선택합니다.

  7. 권한 탭에서 권한 추가를 선택합니다.

  8. [Attach existing policies directly]를 선택합니다. 앞에서 만든 정책을 선택하고 다음: 검토(Next: Review)를 선택합니다.

  9. 권한 추가를 선택합니다.

EC2 집합 상태 확인

EC2 집합은 분마다 플릿의 인스턴스 상태를 확인합니다. 인스턴스의 상태는 healthy 또는 unhealthy입니다. 플릿은 Amazon EC2에서 제공하는 상태 확인을 사용하여 인스턴스 상태를 판단합니다. 세 번의 연속 상태 확인에서 인스턴스 상태 또는 시스템 상태가 impaired이면, 해당 인스턴스의 상태는 unhealthy입니다. 그렇지 않으면 상태는 healthy입니다. 자세한 내용은 인스턴스 상태 확인단원을 참조하십시오.

비정상 인스턴스를 교체하도록 EC2 집합을 구성할 수 있습니다. 상태 확인 교체를 활성화하면 상태가 unhealthy로 보고된 인스턴스가 교체됩니다. 플릿은 비정상 인스턴스가 교체되는 동안 최대 몇 분간 목표 용량을 밑돌 수 있습니다.

요구 사항

  • 상태 확인 교체는 목표 용량을 유지하는 EC2 집합에서만 지원되고 일회성 플릿에서는 지원되지 않습니다.

  • 비정상 인스턴스를 생성할 경우에만 이를 교체하도록 EC2 집합을 구성할 수 있습니다.

  • IAM 사용자는 ec2:DescribeInstanceStatus 작업을 호출할 권한이 있는 경우에만 상태 확인 교체를 사용할 수 있습니다.

EC2 집합 JSON 구성 파일 생성

EC2 집합을 생성하려면 시작 템플릿, 총 목표 용량 및 기본 구매 옵션이 온디맨드인지 스팟인지 여부를 지정해야 합니다. 이 파라미터를 지정하지 않이면 플릿에 기본값이 사용됩니다. 플릿 구성 파라미터의 전체 목록을 보려면 다음과 같이 JSON 파일을 생성할 수 있습니다.

명령줄을 사용하여 가능한 모든 EC2 집합 파라미터가 포함된 JSON 파일을 생성하려면

  • create-fleet(AWS CLI) 명령 및 --generate-cli-skeleton 파라미터를 사용하여 EC2 집합 JSON 파일을 생성합니다.

    aws ec2 create-fleet --generate-cli-skeleton

    사용할 수 있는 EC2 집합 파라미터는 다음과 같습니다.

    { "DryRun": true, "ClientToken": "", "SpotOptions": { "AllocationStrategy": "lowestPrice", "InstanceInterruptionBehavior": "hibernate", "InstancePoolsToUseCount": 0 }, "OnDemandOptions": { "AllocationStrategy": "prioritized" }, "ExcessCapacityTerminationPolicy": "termination", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "", "LaunchTemplateName": "", "Version": "" }, "Overrides": [ { "InstanceType": "t2.micro", "MaxPrice": "", "SubnetId": "", "AvailabilityZone": "", "WeightedCapacity": null, "Priority": null } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 0, "OnDemandTargetCapacity": 0, "SpotTargetCapacity": 0, "DefaultTargetCapacityType": "spot" }, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ValidFrom": "1970-01-01T00:00:00", "ValidUntil": "1970-01-01T00:00:00", "ReplaceUnhealthyInstances": true, "TagSpecifications": [ { "ResourceType": "fleet", "Tags": [ { "Key": "", "Value": "" } ] } ] }

EC2 집합 JSON 구성 파일 참조

참고

모든 파라미터 값에 소문자를 사용하십시오. 그렇지 않으면 Amazon EC2에서 JSON 파일을 사용하여 EC2 집합을 시작할 때 오류가 발생합니다.

AllocationStrategy(SpotOptions를 위한)

(선택 사항) EC2 집합에 지정된 스팟 인스턴스 풀에 스팟 인스턴스 목표 용량을 할당하는 방법을 나타냅니다. 유효한 값은 lowestPricediversified입니다. 기본값은 lowestPrice입니다. 필요에 맞는 할당 전략을 지정합니다. 자세한 내용은 스팟 인스턴스를 위한 할당 전략 단원을 참조하십시오.

InstanceInterruptionBehavior

(선택) 스팟 인스턴스가 중단될 경우 동작입니다. 유효 값은 hibernate, stopterminate입니다. 스팟 서비스는 중단된 스팟 인스턴스를 종료하도록 기본 설정되어 있습니다. 플릿 유형이 maintain인 경우 스팟 서비스가 중단된 스팟 인스턴스를 최대 절전 모드로 전환하거나 중지하도록 지정할 수 있습니다.

InstancePoolsToUseCount

대상 스팟 용량을 할당할 스팟 풀 수입니다. 스팟 AllocationStrategylowestPrice로 설정된 경우에만 유효합니다. EC2 집합은 가장 저렴한 스팟 풀을 선택하고 지정한 스팟 풀 수에 걸쳐 대상 스팟 용량을 균등하게 할당합니다.

AllocationStrategy(OnDemandOptions를 위한)

온디맨드 용량을 채우기 위해 사용할 시작 템플릿 재정의 순서입니다. lowestPrice를 지정하면 EC2 집합가 가격을 통해 순서를 결정하여 최저 가격을 먼저 시작합니다. 우선 순위를 지정하면 EC2 집합가 각 시작 템플릿 재정의에 할당된 우선 순위를 사용하여 최우선 순위를 먼저 시작합니다. 값을 지정하지 않으면 EC2 집합가 lowestPrice를 기본값으로 사용합니다.

ExcessCapacityTerminationPolicy

(선택 사항) EC2 집합의 총 목표 용량이 EC2 집합의 현재 크기보다 작아질 경우 실행 중인 인스턴스를 종료할지 여부를 나타냅니다. 유효한 값은 no-terminationtermination입니다.

LaunchTemplateId

사용할 시작 템플릿의 ID입니다. 시작 템플릿 ID 또는 시작 템플릿 이름을 지정해야 합니다. 시작 템플릿은 Amazon 머신 이미지(AMI)를 지정해야 합니다. 시작 템플릿 생성에 대한 자세한 내용은 시작 템플릿에서 인스턴스 시작을 참조하십시오.

LaunchTemplateName

사용할 시작 템플릿의 이름입니다. 시작 템플릿 ID 또는 시작 템플릿 이름을 지정해야 합니다. 시작 템플릿은 Amazon 머신 이미지(AMI)를 지정해야 합니다. 자세한 내용은 시작 템플릿에서 인스턴스 시작 단원을 참조하십시오.

버전

시작 템플릿 버전 번호입니다.

InstanceType

(선택) 인스턴스 유형입니다. 입력하면 이 값이 시작 템플릿을 재정의합니다. 인스턴스 유형은 필요한 최소 하드웨어 사양(vCPU, 메모리 또는 스토리지)을 갖춰야 합니다.

MaxPrice

(선택) 스팟 인스턴스에 대해 지불하려는 단위 시간당 최고 가격입니다. 입력하면 이 값이 시작 템플릿을 재정의합니다. 기본 최고 가격(온디맨드 가격)을 사용하거나 지불하려는 최고 가격을 지정할 수 있습니다. 최고 가격이 지정한 인스턴스 유형의 스팟 가격보다 낮으면 스팟 인스턴스가 시작되지 않습니다.

SubnetId

(선택) 인스턴스를 시작할 서브넷 ID입니다. 입력하면 이 값이 시작 템플릿을 재정의합니다.

새 VPC를 생성하려면 Amazon VPC 콘솔로 이동합니다. 마친 후 JSON 파일로 돌아와 새 서브넷 ID를 입력합니다.

AvailabilityZone

(선택) 인스턴스를 시작할 가용 영역입니다. AWS가 스팟 인스턴스를 위한 영역을 선택하도록 하는 것이 기본값입니다. 원한다면 특정 영역을 지정할 수 있습니다. 입력하면 이 값이 시작 템플릿을 재정의합니다.

하나 이상의 가용 영역을 지정합니다. 영역에 서브넷이 2개 이상 있으면 알맞은 서브넷을 지정하십시오. 서브넷을 추가하려면 Amazon VPC 콘솔로 이동합니다. 마친 후 JSON 파일로 돌아와 새 서브넷 ID를 입력합니다.

WeightedCapacity

(선택) 지정된 인스턴스 유형에서 제공하는 단위 수입니다. 입력하면 이 값이 시작 템플릿을 재정의합니다.

우선 순위

시작 템플릿 재정의에 대한 우선 순위입니다. AllocationStrategyprioritized로 설정한 경우, EC2 집합가 우선 순위를 사용하여 온디맨드 용량을 채우기 위해 어떤 시작 템플릿 재정의를 먼저 사용할지 결정합니다. 가장 높은 우선 순위를 먼저 시작합니다. 0부터 시작하는 모든 숫자가 유효한 값입니다. 숫자가 작을수록 우선 순위가 높아집니다. 숫자를 설정하지 않으면 재정의가 가장 낮은 우선 순위를 갖습니다.

TotalTargetCapacity

시작할 인스턴스 수입니다. vCPU, 메모리, 스토리지 같이 애플리케이션 워크로드에 중요한 인스턴스 또는 성능 특성을 선택할 수 있습니다. 요청 유형이 [maintain]일 경우, 목표 용량을 0으로 설정하고 나중에 용량을 추가할 수 있습니다.

OnDemandTargetCapacity

(선택 사항) 시작할 온디맨드 인스턴스 수입니다. 이 수는 TotalTargetCapacity 미만이어야 합니다.

SpotTargetCapacity

(선택 사항) 시작할 스팟 인스턴스 수입니다. 이 수는 TotalTargetCapacity 미만이어야 합니다.

DefaultTargetCapacityType

TotalTargetCapacity의 값이 OnDemandTargetCapacitySpotTargetCapacity의 조합된 값보다 크면 여기에 지정된 인스턴스 구매 옵션에 따라 두 값의 차이가 시작됩니다. 유효한 값은 on-demand 또는 spot입니다.

TerminateInstancesWithExpiration

(선택 사항) 기본적으로 EC2 집합 요청이 만료되면 Amazon EC2에서 인스턴스를 종료합니다. 기본값은 true입니다. 요청이 만료된 후에도 계속 실행하려면 이 파라미터의 값을 입력하지 마십시오.

Type

(선택 사항) EC2 집합이 원하는 용량을 얻기 위해 동기식 일회성 요청(instant) 또는 비동기식 일회성 요청(request)을 제출했으나 용량을 유지하려는 시도를 하지 않았거나, 용량을 사용할 수 없는 경우 대체 용량 풀에서 요청을 제출했거나, 원하는 용량을 얻기 위해 비동기식 요청을 제출하고 중단된 스팟 인스턴스를 보충해 원하는 용량을 계속해서 유지할지(maintain) 여부를 나타냅니다. 유효 값은 instant, requestmaintain입니다. 기본 값은 maintain입니다. 자세한 내용은 EC2 집합 요청 유형 단원을 참조하십시오.

ValidFrom

(선택) 특정 기간에만 유효한 요청을 생성하려면 시작 날짜를 입력합니다.

ValidUntil

(선택) 특정 기간에만 유효한 요청을 생성하려면 종료 날짜를 입력합니다.

ReplaceUnhealthyInstances

(선택 사항) 플릿에 대해 maintain 작업을 수행하도록 구성된 EC2 집합의 비정상 인스턴스를 교체하려면 true를 입력합니다. 그렇지 않은 경우 이 파라미터를 비워두십시오.

TagSpecifications

(선택 사항) 생성 시 EC2 집합 요청에 태그를 지정하기 위한 키-값 페어입니다. ResourceType의 값은 fleet이어야 합니다. 그렇지 않으면 집합 요청이 실패합니다. 시작 시 인스턴스에 태그를 지정하려면 시작 템플릿에서 태그를 지정합니다. 시작 후 태그 지정에 대한 자세한 내용은 리소스에 태그 지정 단원을 참조하십시오.

EC2 집합 생성

EC2 집합을 생성할 때 인스턴스 유형, 가용 영역, 지불하려는 최고 가격 등 시작할 인스턴스에 대한 정보를 포함하는 시작 템플릿을 지정해야 합니다.

시작 템플릿을 재정의하는 여러 시작 사양이 포함된 EC2 집합을 생성할 수 있습니다. 시작 사양은 인스턴스 유형, 가용 영역, 서브넷, 최고 가격에 따라 달라질 수 있으며 다른 가중치 용량을 포함할 수 있습니다.

EC2 집합을 생성할 때 JSON 파일을 사용하여 시작할 인스턴스에 대한 정보를 지정하십시오. 자세한 내용은 EC2 집합 JSON 구성 파일 참조 단원을 참조하십시오.

EC2 집합은 AWS CLI API로만 생성할 수 있습니다.

EC2 집합을 생성하려면(AWS CLI)

  • 다음 create-fleet(AWS CLI) 명령을 사용하여 EC2 집합을 생성합니다.

aws ec2 create-fleet --cli-input-json file://file_name.json

구성 파일에 대한 예시는 EC2 집합 구성의 예 단원을 참조하십시오.

다음은 request 또는 maintain 유형의 플릿에 대한 예제 출력입니다.

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE" }

다음은 목표 용량을 시작한 instant 유형의 플릿에 대한 예제 출력입니다.

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", "Errors": [], "Instances": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a" } }, "Lifecycle": "on-demand", "InstanceIds": [ "i-1234567890abcdef0", "i-9876543210abcdef9" ], "InstanceType": "c5.large", "Platform": null }, { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c4.large", "AvailabilityZone": "us-east-1a" } }, "Lifecycle": "on-demand", "InstanceIds": [ "i-5678901234abcdef0", "i-5432109876abcdef9" ], "InstanceType": "c4.large", "Platform": null }, ] }

다음은 시작되지 않은 인스턴스에 대한 오류와 함께 목표 용량의 일부를 시작한 instant 유형의 플릿에 대한 예제 출력입니다.

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", "Errors": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c4.xlarge", "AvailabilityZone": "us-east-1a", } }, "Lifecycle": "on-demand", "ErrorCode": "InsufficientInstanceCapacity", "ErrorMessage": "", "InstanceType": "c4.xlarge", "Platform": null }, ], "Instances": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a" } }, "Lifecycle": "on-demand", "InstanceIds": [ "i-1234567890abcdef0", "i-9876543210abcdef9" ], "InstanceType": "c5.large", "Platform": null }, ] }

어떤 인스턴스도 시작하지 않은 instant 유형의 플릿에 대한 예제 출력입니다.

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", "Errors": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c4.xlarge", "AvailabilityZone": "us-east-1a", } }, "Lifecycle": "on-demand", "ErrorCode": "InsufficientCapacity", "ErrorMessage": "", "InstanceType": "c4.xlarge", "Platform": null }, { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a", } }, "Lifecycle": "on-demand", "ErrorCode": "InsufficientCapacity", "ErrorMessage": "", "InstanceType": "c5.large", "Platform": null }, ], "Instances": [] }

EC2 집합 태그 지정

EC2 집합 요청을 쉽게 분류하고 관리할 수 있도록 사용자 지정 메타데이터로 이 요청에 태그를 지정할 수 있습니다. 자세한 내용은 Amazon EC2리소스에 태그 지정 단원을 참조하십시오.

EC2 집합 요청을 만들 때 또는 만든 후 요청에 태그를 지정할 수 있습니다. 집합 요청에 지정된 태그는 플릿에서 시작된 인스턴스에 지정되지 않습니다.

새 EC2 집합 요청에 태그를 지정하려면

EC2 집합 요청 생성 시 요청에 태그를 지정하려면 플릿을 생성하는 데 사용되는 JSON 파일에 키-값 페어를 지정하십시오. ResourceType의 값은 fleet이어야 합니다. 다른 값을 지정하면 집합 요청이 실패합니다.

EC2 집합에서 시작한 인스턴스에 태그를 지정하려면

인스턴스가 플릿에서 시작할 때 이 인스턴스에 태그를 지정하려면 EC2 집합 요청에서 참조되는 시작 템플릿에서 태그를 지정하십시오.

기존 EC2 집합 요청 및 인스턴스에 태그를 지정하려면(AWS CLI)

다음 create-tags 명령을 사용해 기존 리소스에 태그를 지정하십시오.

aws ec2 create-tags --resources fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE i-1234567890abcdef0 --tags Key=purpose,Value=test

EC2 집합 모니터링

EC2 집합은 가용 용량이 있을 때 온디맨드 인스턴스를 시작하며, 최고 가격이 스팟 가격을 초과하고 가용 용량이 있을 때 스팟 인스턴스를 시작합니다. 온디맨드 인스턴스는 사용자가 종료할 때까지 실행되고 스팟 인스턴스는 중단되거나 사용자가 종료할 때까지 실행됩니다.

반환되는 실행 중 인스턴스 목록은 주기적으로 새로 고쳐지며 최신 상태가 아닐 수도 있습니다.

EC2 집합을 모니터링하려면(AWS CLI)

다음 describe-fleets 명령을 사용하여 EC2 집합을 설명합니다.

aws ec2 describe-fleets

다음은 예제 출력입니다.

{ "Fleets": [ { "Type": "maintain", "FulfilledCapacity": 2.0, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "Version": "2", "LaunchTemplateId": "lt-07b3bc7625cdab851" } } ], "TerminateInstancesWithExpiration": false, "TargetCapacitySpecification": { "OnDemandTargetCapacity": 0, "SpotTargetCapacity": 2, "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "spot" }, "FulfilledOnDemandCapacity": 0.0, "ActivityStatus": "fulfilled", "FleetId": "fleet-76e13e99-01ef-4bd6-ba9b-9208de883e7f", "ReplaceUnhealthyInstances": false, "SpotOptions": { "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1, "AllocationStrategy": "lowestPrice" }, "FleetState": "active", "ExcessCapacityTerminationPolicy": "termination", "CreateTime": "2018-04-10T16:46:03.000Z" } ] }

다음 describe-spot-fleet-instances 명령을 사용하여 지정한 EC2 집합의 인스턴스를 설명합니다.

aws ec2 describe-fleet-instances --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
{ "ActiveInstances": [ { "InstanceId": "i-09cd595998cb3765e", "InstanceHealth": "healthy", "InstanceType": "m4.large", "SpotInstanceRequestId": "sir-86k84j6p" }, { "InstanceId": "i-09cf95167ca219f17", "InstanceHealth": "healthy", "InstanceType": "m4.large", "SpotInstanceRequestId": "sir-dvxi7fsm" } ], "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" }

다음 describe-fleet-history 명령을 사용하여 지정한 시간 동안 지정한 EC2 집합의 기록을 설명합니다.

aws ec2 describe-fleet-history --fleet-request-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --start-time 2018-04-10T00:00:00Z
{ "HistoryRecords": [], "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "LastEvaluatedTime": "1970-01-01T00:00:00.000Z", "StartTime": "2018-04-09T23:53:20.000Z" }

EC2 집합 수정

submitted 또는 active 상태인 EC2 집합을 수정할 수 있습니다. 플릿을 수정할 때 플릿은 modifying 상태가 됩니다.

EC2 집합의 다음 파라미터를 수정할 수 있습니다.

  • target-capacity-specificationTotalTargetCapacity, OnDemandTargetCapacitySpotTargetCapacity의 목표 용량을 늘리거나 줄입니다.

  • excess-capacity-termination-policy – EC2 집합의 총 목표 용량이 플릿의 현재 크기보다 작아지면 실행 중인 인스턴스를 종료할지 여부입니다. 유효한 값은 no-terminationtermination입니다.

참고

Type=maintain이 있는 EC2 집합만 수정할 수 있습니다.

목표 용량을 늘리면 EC2 집합이 DefaultTargetCapacityType에 지정한 인스턴스 구입 옵션(온디맨드 인스턴스 또는 스팟 인스턴스)에 따라 추가 인스턴스를 시작합니다.

DefaultTargetCapacityTypespot이면 EC2 집합이 할당 전략에 따라 추가 스팟 인스턴스를 시작합니다. 할당 전략이 lowestPrice이면 플릿이 요청에 있는 최저 가격의 스팟 인스턴스 풀에서 인스턴스를 시작합니다. 할당 전략이 diversified이면 플릿이 요청에 있는 풀에 인스턴스를 배포합니다.

목표 용량을 줄이면 EC2 집합이 새 목표 용량을 초과하는 모든 열린 요청을 삭제합니다. 플릿 크기가 새 목표 용량에 도달할 때까지 플릿이 인스턴스를 종료하도록 요청할 수 있습니다. 할당 전략이 lowestPrice이면 플릿이 단위당 최고 가격의 인스턴스를 종료합니다. 할당 전략이 diversified이면 플릿이 풀 전체의 인스턴스를 종료합니다. 또는 EC2 집합이 플릿을 현재 크기로 유지하되 중단된 스팟 인스턴스나 사용자가 수동으로 종료하는 인스턴스를 교체하지 않도록 요청할 수 있습니다.

목표 용량이 줄어 EC2 집합이 스팟 인스턴스를 종료할 때 인스턴스는 스팟 인스턴스 중단 공지를 받습니다.

EC2 집합을 수정하려면(AWS CLI)

다음 modify-spot-fleet-request 명령을 사용하여 지정된 EC2 집합 요청의 목표 용량을 업데이트합니다.

aws ec2 modify-fleet --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --target-capacity-specification TotalTargetCapacity=20

목표 용량을 줄이고 플릿은 현재 크기로 유지하려는 경우 다음과 같이 이전의 명령을 수정할 수 있습니다.

aws ec2 modify-fleet --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --target-capacity-specification TotalTargetCapacity=10 --excess-capacity-termination-policy no-termination

EC2 집합 삭제

EC2 집합이 더 이상 필요 없으면 삭제할 수 있습니다. 플릿을 삭제한 후에는 새로운 인스턴스를 시작하지 않습니다.

EC2 집합이 인스턴스를 종료할지 여부를 지정해야 합니다. 플릿이 삭제되면 인스턴스가 종료되도록 지정할 경우 deleted_terminating 상태가 되고, 그렇지 않으면 deleted_running 상태가 되어 인스턴스가 중단되거나 수동으로 종료될 때까지 계속 실행됩니다.

EC2 집합을 삭제하려면(AWS CLI)

delete-fleets 명령과 --terminate-instances 파라미터를 사용하여 지정된 EC2 집합을 삭제하고 인스턴스를 종료합니다.

aws ec2 delete-fleets --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --terminate-instances

다음은 예제 출력입니다.

{ "UnsuccessfulFleetDeletions": [], "SuccessfulFleetDeletions": [ { "CurrentFleetState": "deleted_terminating", "PreviousFleetState": "active", "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" } ] }

--no-terminate-instances 파라미터를 사용해 이전의 명령을 수정하여 인스턴스를 수정하지 않고 지정된 EC2 집합을 삭제할 수 있습니다.

aws ec2 delete-fleets --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --no-terminate-instances

다음은 예제 출력입니다.

{ "UnsuccessfulFleetDeletions": [], "SuccessfulFleetDeletions": [ { "CurrentFleetState": "deleted_running", "PreviousFleetState": "active", "FleetId": "fleet-4b8aaae8-dfb5-436d-a4c6-3dafa4c6b7dcEXAMPLE" } ] }