AMI 허용 인스턴스 유형

AMI 허용 인스턴스 유형 (AMI allowed instance types)

AMI 소유자로서 AMI가 지원하는 인스턴스 유형과 지원하지 않는 인스턴스 유형을 지정할 수 있어요. 이렇게 하면 호환되지 않는 인스턴스 유형으로 시작하는 것을 막을 수 있어요. Amazon EC2는 시작 시점에 허용 인스턴스 유형을 적용해요. 예를 들어 AMI가 GPU 하드웨어를 필요로 한다면 GPU 인스턴스 유형으로만 제한할 수 있고, AMI가 특정 인스턴스 패밀리와 호환되지 않는다면 허용 인스턴스 유형에서 그 패밀리를 제외할 수 있어요.

목차 (Contents)

  • 허용 인스턴스 유형이 동작하는 방식
  • AMI의 허용 인스턴스 유형 설정하기
  • AMI의 허용 인스턴스 유형 보기
  • 허용 인스턴스 유형이 있는 시작 동작
  • 고려 사항

허용 인스턴스 유형이 동작하는 방식

AMI의 InstanceTypeSpecification 속성으로 허용 인스턴스 유형을 제어해요. 이 속성에는 두 개의 목록이 있어요.

  • SupportedInstanceTypes – AMI가 지원하는 인스턴스 유형이에요. 이 인스턴스 유형만 AMI로 시작할 수 있어요.
  • UnsupportedInstanceTypes – AMI가 지원하지 않는 인스턴스 유형이에요. 이 유형을 제외한 모든 인스턴스 유형은 AMI로 시작할 수 있어요.

Amazon EC2는 다음 논리로 사양을 평가해요.

  • InstanceTypeSpecification이 설정되지 않으면 Amazon EC2는 모든 인스턴스 유형을 허용해요. 이것이 기본 동작이에요.
  • SupportedInstanceTypes만 설정되면 지정된 인스턴스 유형만 허용돼요. Amazon EC2는 다른 모든 인스턴스 유형을 차단해요.
  • UnsupportedInstanceTypes만 설정되면 Amazon EC2는 지정된 인스턴스 유형을 제외한 모든 인스턴스 유형을 허용해요.
  • 두 목록 모두 설정되면 인스턴스 유형이 SupportedInstanceTypes에 있고 UnsupportedInstanceTypes에 없어야 해요.

와일드카드 지원

두 목록 모두 * 문자를 사용하는 와일드카드 패턴을 지원해요. 와일드카드를 사용하면 각 인스턴스 유형을 개별적으로 나열하지 않고도 여러 인스턴스 유형을 매칭할 수 있어요.

다음 표는 와일드카드 패턴의 예시예요.

패턴 매칭
t3.* t3 인스턴스 패밀리의 모든 크기 (예: t3.micro, t3.small, t3.large)
p4d.* p4d 인스턴스 패밀리의 모든 크기
g5.* g5 인스턴스 패밀리의 모든 크기
*xlarge 모든 인스턴스 패밀리에서 xlarge 이상인 모든 인스턴스 유형
*.12xlarge 모든 인스턴스 패밀리의 모든 12xlarge 인스턴스 유형

AMI의 허용 인스턴스 유형 설정하기

Amazon EC2 콘솔이나 AWS Command Line Interface(AWS CLI)로 AMI의 허용 인스턴스 유형을 설정하거나 변경할 수 있어요. 이 절차를 수행하려면 AMI 소유자여야 해요.

콘솔

AMI의 허용 인스턴스 유형을 설정하려면

  1. Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/ 에서 엽니다.
  2. 탐색 창에서 AMIs를 선택하세요.
  3. AMI를 선택한 뒤 Actions, Manage instance type specification을 선택하세요.
  4. Supported instance types 또는 Unsupported instance types 아래에서 Add를 선택하세요.
  5. 인스턴스 유형을 선택하세요.
  6. Save를 선택하세요.

AWS CLI

AMI의 지원 인스턴스 유형을 설정하려면

replace-image-instance-type-specification 명령을 사용하세요. 다음 예시는 모든 t3와 a2 인스턴스 유형을 허용하되 t3.micro는 제외해요.

aws ec2 replace-image-instance-type-specification \
    --image-id ami-1234567890abcdef0 \
    --instance-type-specification '{"SupportedInstanceTypes": ["t3.*", "a2.*"], "UnsupportedInstanceTypes": ["t3.micro"]}'

AMI의 미지원 인스턴스 유형만 설정하려면

다른 모든 유형을 허용하면서 특정 인스턴스 유형만 차단하려면 다음 명령을 사용하세요.

aws ec2 replace-image-instance-type-specification \
    --image-id ami-1234567890abcdef0 \
    --instance-type-specification '{"UnsupportedInstanceTypes": ["t3.micro", "t3.nano"]}'

AMI에서 인스턴스 유형 사양을 제거하려면

제한을 제거하고 모든 인스턴스 유형을 허용하려면 --instance-type-specification을 지정하지 않은 채 다음 명령을 사용하세요.

aws ec2 replace-image-instance-type-specification \
    --image-id ami-1234567890abcdef0

AMI의 허용 인스턴스 유형 보기

Amazon EC2 콘솔이나 AWS CLI로 AMI의 인스턴스 유형 사양을 볼 수 있어요.

콘솔

AMI의 허용 인스턴스 유형을 보려면

  1. Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/ 에서 엽니다.
  2. 탐색 창에서 AMIs를 선택하세요.
  3. AMI를 선택하세요.
  4. Details 탭에서 지원 및 미지원 인스턴스 유형을 확인하세요.

AWS CLI

AMI의 인스턴스 유형 사양을 보려면

describe-images 명령을 사용하세요. AMI에 인스턴스 유형 사양이 있으면 응답에 InstanceTypeSpecification 필드가 포함돼요.

aws ec2 describe-images \
    --image-ids ami-1234567890abcdef0

인스턴스 유형 사양이 있는 AMI의 예시 출력은 다음과 같아요.

{
    "Images": [
        {
            "ImageId": "ami-1234567890abcdef0",
            ...
            "InstanceTypeSpecification": {
                "SupportedInstanceTypes": [
                    {
                        "InstanceType": "t3.*"
                    },
                    {
                        "InstanceType": "a2.*"
                    }
                ],
                "UnsupportedInstanceTypes": [
                    {
                        "InstanceType": "t3.micro"
                    }
                ]
            }
        }
    ]
}

허용 인스턴스 유형이 있는 시작 동작

인스턴스를 시작하면 Amazon EC2는 지정된 인스턴스 유형이 AMI의 인스턴스 유형 사양과 호환되는지 확인해요. 인스턴스 유형이 허용되지 않으면 Amazon EC2는 시작을 차단하고 오류를 반환해요.

예시: 차단된 시작

다음 명령은 t3.micro를 지원하지 않는 AMI로 t3.micro 인스턴스를 시작하려고 시도해요.

aws ec2 run-instances \
    --image-id ami-1234567890abcdef0 \
    --instance-type t3.micro

Amazon EC2는 다음 오류를 반환해요.

An error occurred (InvalidParameterCombination) when calling the RunInstances operation: This AMI does not support the specified instance type. Check DescribeImages for InstanceTypeSpecification, and try again.

이 오류를 해결하려면 AMI가 지원하는 인스턴스 유형을 선택하세요. describe-images 명령으로 AMI의 인스턴스 유형 사양을 확인할 수 있어요.

고려 사항 (Considerations)

허용 인스턴스 유형을 사용할 때 다음 정보를 염두에 두세요.

  • 기본적으로 AMI에는 인스턴스 유형 사양이 없어요. 사양을 명시적으로 설정하기 전까지 Amazon EC2는 모든 인스턴스 유형을 허용해요.
  • 인스턴스 유형 사양은 AMI 소유자만 설정하거나 변경할 수 있어요.
  • CopyImage로 AMI를 복사하면 Amazon EC2가 새 AMI에 인스턴스 유형 사양을 보존해요.
  • Amazon EC2는 인스턴스 유형 사양을 하드 블록으로 적용해요. 인스턴스 유형이 허용되지 않으면 InvalidParameterCombination 오류로 시작이 실패해요.
  • 사양은 기존 인스턴스에는 영향을 주지 않아요. 새 시작에만 적용돼요.
  • 인스턴스 유형 사양이 있는 AMI를 참조하는 시작 템플릿(Launch template)과 Auto Scaling 그룹은 구성된 인스턴스 유형이 허용되지 않으면 실패할 수 있어요. 공유 AMI에 사양을 설정하기 전에 호환성을 검증하는 걸 추천해요.
  • ReplaceImageInstanceTypeSpecification 작업은 사양 전체를 교체해요. 개별 인스턴스 유형을 추가하거나 제거하려면 요청에 업데이트된 전체 사양을 포함해야 해요.

더 알아보기 (Learn more)