

# AMI 계보를 사용하여 AMI의 기원 추적하기
<a name="ami-ancestry"></a>

AMI 계보는 모든 상위 AMI의 ID와 리전을 반환함으로써 AMI의 기원을 추적할 수 있도록 도와줍니다. AMI를 생성하거나 복사할 때, 새 AMI는 소스(상위) AMI의 ID와 리전 정보를 유지합니다. 이를 통해 루트 AMI까지 이어지는 AMI 체인을 추적할 수 있습니다.

**주요 이점**

AMI 계보를 사용하면 다음을 수행할 수 있습니다.
+ 내부 정책 준수를 확인하기 위해 AMI 파생본을 추적
+ 상위 AMI에서 보안 문제가 발견된 경우, 잠재적으로 취약한 AMI 식별
+ 여러 리전에 걸쳐 AMI 기원에 대한 가시성 유지

**Topics**
+ [AMI 계보 작동 방식](#how-ami-ancestry-works)
+ [고려 사항](#ami-ancestry-conditions)
+ [AMI 계보 보기](#view-ami-ancestry)
+ [소스 AMI 식별](#identify-source-ami-used-to-create-new-ami)

## AMI 계보 작동 방식
<a name="how-ami-ancestry-works"></a>

AMI 계보는 지정된 AMI를 생성하는 데 사용된 상위 AMI, 그 상위의 상위 AMI 등 루트 AMI에 도달할 때까지의 모든 상위 AMI를 식별합니다. 작동 방식은 다음과 같습니다.
+ 각 AMI에는 소스(상위) AMI의 ID와 리전 정보가 표시됩니다.
+ 선택한 AMI부터 시작하여, 계보 항목 목록에 각 부모 AMI가 순차적으로 표시됩니다.
+ 계보 항목 목록은 루트 AMI에 도달할 때까지 거슬러 올라갑니다. 루트 AMI는 다음 중 하나에 해당합니다.
  + [확인된 공급자](sharing-amis.md#verified-ami-provider)의 퍼블릭 AMI(소유자 별칭이 `amazon` 또는 `aws-marketplace`로 표시됨)
  + 기록된 상위 AMI가 없는 AMI. 예를 들어, 인스턴스에서 AMI를 생성하는 방식과 달리, [RegisterImage](creating-an-ami-ebs.md#creating-launching-ami-from-snapshot)를 사용하여 스냅샷 집합으로부터 직접 AMI를 생성한 경우에는 추적할 소스 AMI가 없습니다.
  + 소스 AMI가 다른 [파티션](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#partition)에 속한 AMI.
  + 목록의 50번째 AMI. 계보 목록에 포함될 수 있는 최대 AMI 수는 50개입니다.

## 고려 사항
<a name="ami-ancestry-conditions"></a>
+ 소스 AMI의 ID와 리전 정보는 [CreateImage](creating-an-ami-ebs.md#how-to-create-ebs-ami), [CopyImage](CopyingAMIs.md#ami-copy-steps) 또는 [CreateRestoreImageTask](store-restore-how-it-works.md#CreateRestoreImageTask)를 사용하여 생성된 AMI에서만 제공됩니다.
+ [CreateImage](creating-an-ami-ebs.md#how-to-create-ebs-ami)를 사용하여 생성된 AMI(인스턴스에서 AMI 생성)의 경우, 소스 AMI ID는 해당 인스턴스를 실행하는 데 사용된 AMI의 ID입니다.
+ 다음의 경우에는 소스 AMI 정보를 사용할 수 없습니다.
  + [RegisterImage](creating-an-ami-ebs.md#creating-launching-ami-from-snapshot)를 사용하여 생성된 AMI(스냅샷에서 생성되었기 때문)
  + 일부 오래된 AMI.
+ 다음과 같은 경우에도 소스 AMI 정보는 유지됩니다.
  + AMI를 리전 간에 복사한 경우.
  + 소스 AMI가 등록 해제(삭제)된 경우.
  + 소스 AMI에 대한 접근 권한이 없는 경우.
+ 각 AMI 계보 목록은 최대 50개의 AMI로 제한됩니다.

## AMI 계보 보기
<a name="view-ami-ancestry"></a>

다음 방법을 사용하여 AMI의 계보를 확인할 수 있습니다.

------
#### [ Console ]

**AMI의 계보를 보려면**

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

1. 탐색 창에서 **AMI**를 선택합니다.

1. AMI를 선택한 다음, **AMI 계보** 탭을 선택합니다.

1. **AMI 계보 항목** 테이블에는 계보 목록에 포함된 모든 AMI가 표시됩니다.
   + **AMI ID** - 계보 목록에 포함된 각 AMI의 식별자입니다. 테이블의 첫 번째 항목은 선택한 AMI이며, 이후 항목은 해당 AMI의 상위 AMI입니다.
   + **소스 AMI ID** - **AMI ID** 열에 표시된 AMI가 생성된 소스 AMI의 ID입니다. 대시(**-**)는 AMI 계보 목록의 끝을 의미합니다.
   + **소스 AMI 리전** - 소스 AMI가 위치한 AWS 리전입니다.
   + **계보 수준** - 계보 목록 내에서의 위치를 나타내며, 다음과 같은 의미를 가집니다.
     + **0(입력 AMI)**은 계보를 확인하려는 선택한 AMI를 의미합니다.
     + 숫자가 증가할수록 더 오래된 상위 AMI를 의미합니다.
     + **{{n}}(원본 AMI)**은 루트 AMI를 의미하며, 숫자는 계보가 얼마나 과거까지 거슬러 올라가는지를 나타냅니다.
   + **생성 날짜** - AMI가 생성된 날짜 및 시간으로, UTC 형식으로 표시됩니다.
   + **소유자 별칭** - AMI 소유자의 별칭(예: `amazon`)입니다. 대시(**-**)는 AMI에 소유자 별칭이 없음을 의미합니다.

------
#### [ AWS CLI ]

**AMI의 계보를 보려면**  
[get-image-ancestry](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-image-ancestry.html) 명령을 사용하여 AMI ID를 지정합니다.

```
aws ec2 get-image-ancestry \
    --image-id {{ami-1111111111EXAMPLE}} \
    --region {{us-east-1}}
```

다음은 예제 출력입니다. 출력에는 계보 순서대로 AMI가 나열되며, 첫 번째 항목은 지정한(입력) AMI이고, 이후에는 상위 AMI, 상위의 상위 AMI 순으로 표시되며, 마지막은 루트 AMI입니다.

```
{
    "ImageAncestryEntries": [
        {
            "CreationDate": "2025-01-17T18:37:50.000Z",
            "ImageId": "ami-1111111111EXAMPLE", // Input AMI
            "SourceImageId": "ami-2222222222EXAMPLE",
            "SourceImageRegion": "us-east-1"

        },
        {
            "CreationDate": "2025-01-17T18:37:50.000Z",
            "ImageId": "ami-2222222222EXAMPLE", // Parent AMI
            "SourceImageId": "ami-3333333333EXAMPLE",
            "SourceImageRegion": "us-east-1"
        },
        ...
        {
            "CreationDate": "2025-01-17T18:37:50.000Z",
            "ImageId": "ami-8888888888EXAMPLE", // Root AMI
            "ImageOwnerAlias": "aws-marketplace",
            "SourceImageId": "ami-9999999999EXAMPLE",
            "SourceImageRegion": "us-east-2"
        }
    ]
}
```

------
#### [ PowerShell ]

**AMI의 계보를 보려면**  
[Get-EC2ImageAncestry](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAncestry.html) cmdlet을 사용합니다.

```
Get-EC2ImageAncestry -ImageId {{ami-1111111111EXAMPLE}}
```

다음은 예제 출력입니다. 출력에는 계보 순서대로 AMI가 나열되며, 첫 번째 항목은 지정한(입력) AMI이고, 이후에는 상위 AMI, 상위의 상위 AMI 순으로 표시되며, 마지막은 루트 AMI입니다.

```
ImageAncestryEntries : {
    @{
        CreationDate = "2025-01-17T18:37:50.000Z"
        ImageId = "ami-1111111111EXAMPLE"    # Input AMI
        SourceImageId = "ami-2222222222EXAMPLE"
        SourceImageRegion = "us-east-1"
    },
    @{
        CreationDate = "2025-01-17T18:37:50.000Z"
        ImageId = "ami-2222222222EXAMPLE"    # Parent AMI
        SourceImageId = "ami-3333333333EXAMPLE"
        SourceImageRegion = "us-east-1"
    },
    ...
    @{
        CreationDate = "2025-01-17T18:37:50.000Z"
        ImageId = "ami-8888888888EXAMPLE"    # Root AMI
        ImageOwnerAlias = "aws-marketplace"
        SourceImageId = "ami-9999999999EXAMPLE"
        SourceImageRegion = "us-east-2"
    }
}
```

------

## 소스 AMI 식별
<a name="identify-source-ami-used-to-create-new-ami"></a>

AMI를 생성하는 데 사용된 직계 상위(소스) AMI만 식별하면 되는 경우, 다음 방법을 사용할 수 있습니다.

------
#### [ Console ]

**선택한 AMI를 생성하는 데 사용된 소스 AMI를 식별하려면**

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

1. 탐색 창에서 **AMI**를 선택합니다.

1. 세부 정보를 볼 AMI를 선택합니다.

   소스 AMI 정보는 **소스 AMI ID** 및 **소스 AMI 리전** 필드에 표시됩니다.

------
#### [ AWS CLI ]

**지정된 AMI를 생성하는 데 사용된 소스 AMI를 식별하려면**  
[describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 명령을 사용합니다.

```
aws ec2 describe-images \
    --region {{us-east-1}} \
    --image-ids {{ami-0abcdef1234567890}} \
    --query "Images[].{ID:SourceImageId,Region:SourceImageRegion}"
```

다음은 예제 출력입니다.

```
[
    {
        "ID": "ami-0abcdef1234567890",
        "Region": "us-west-2"
    }
}
```

------
#### [ PowerShell ]

**지정된 AMI를 생성하는 데 사용된 소스 AMI를 식별하려면**  
[Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) cmdlet을 사용합니다.

```
Get-EC2Image -ImageId {{ami-0abcdef1234567890}} | Select SourceImageId, SourceImageRegion
```

출력의 예제는 다음과 같습니다.

```
SourceImageId           SourceImageRegion
-------------           -----------------
ami-0abcdef1234567890 us-west-2
```

------