

# AMI の使用を管理およびモニタリングする
<a name="ec2-ami-usage"></a>

AWS には、AMI の使用状況を効果的に管理およびモニタリングするのに役立ついくつかの機能が用意されています。共有 AMI を使用しているアカウントの追跡、AMI が最後に使用された日時の特定、AWS アカウント で特定の AMI を参照しているリソースの検出を行うことができます。

AMI の使用状況を管理およびモニタリングするための機能の概要を次の表に示します。


| 機能 | ユースケース | 主な利点 | 
| --- | --- | --- | 
| [AMI の使用状況レポート](your-ec2-ami-usage.md) | AMI を使用している AWS アカウントと、各 AMI の使用量を可視化します。 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-ami-usage.html)  | 
| [最後に使用された追跡](ami-last-launched-time.md) | AMI が最後に使用された日時を確認します。 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-ami-usage.html)  | 
| [AMI の参照チェック](ec2-ami-references.md) | AWS リソースが最新の準拠 AMI を使用していることを確認します。 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-ami-usage.html)  | 

**Topics**
+ [AMI の使用状況を表示する](your-ec2-ami-usage.md)
+ [Amazon EC2 AMI が最後に使用された日時を確認する](ami-last-launched-time.md)
+ [指定した AMI を参照しているリソースを識別します。](ec2-ami-references.md)

# AMI の使用状況を表示する
<a name="your-ec2-ami-usage"></a>

Amazon マシンイメージ (AMI) を他の AWS アカウント (特定の AWS アカウント、組織、組織単位 (OU)、またはパブリック) と共有する場合、AMI の使用状況レポートを作成することで、これらの AMI がどのように使用されているかを確認できます。レポートは、以下を可視化します。
+ EC2 インスタンスまたは起動テンプレートで AMI を使用している AWS アカウント
+ 各 AMI を参照している EC2 インスタンスまたは起動テンプレートの数

AMI の使用状況レポートは、以下を行って AMI をより効果的に管理するのに役立ちます。
+ AMI の登録解除または無効化を安全に行うことができるように、AMI を参照している AWS アカウントとリソースタイプを特定します。
+ ストレージコストを削減するために登録を解除する未使用の AMI を特定します。
+ 最も使用されている AMI を特定します。

**Topics**
+ [AMI 使用状況レポートの仕組み](#how-ami-usage-reports-work)
+ [AMI の使用状況レポートを作成する](#create-ami-usage-reports)
+ [AMI の使用状況レポートを表示する](#view-ami-usage-reports)
+ [AMI の使用状況レポートを削除する](#delete-ami-usage-reports)
+ [レポートに関するクォータ](#ami-usage-report-quotas)

## AMI 使用状況レポートの仕組み
<a name="how-ami-usage-reports-work"></a>

AMI 使用状況レポートを作成するときは、以下を指定します。
+ レポート対象の AMI。
+ チェックする AWS アカウント (特定のアカウントまたはすべてのアカウント)。
+ チェックするリソースタイプ (EC2 インスタンス、起動テンプレート、またはその両方)。
+ 起動テンプレートの場合、チェックするバージョンの数 (デフォルトでは 20 の最新バージョン)。

Amazon EC2 によって AMI ごとに個別のレポートが作成されます。各レポートは以下を提供します。
+ AMI を使用している AWS アカウントのリスト。
+ アカウントごとのリソースタイプ別に AMI を参照しているリソースの数。起動テンプレートの場合、起動テンプレートの複数のバージョンで AMI が参照されているときはカウントは 1 になります。

**重要**  
AMI の使用状況レポートを生成する場合、最新のアクティビティが含まれていない可能性があります。過去 24 時間のインスタンスアクティビティと、過去数日間の起動テンプレートアクティビティがレポートに表示されないことがあります。

Amazon EC2 は、作成から 30 日後にレポートを自動的に削除します。EC2 コンソールからレポートをダウンロードしてローカルに保持できます。

## AMI の使用状況レポートを作成する
<a name="create-ami-usage-reports"></a>

AMI がどのように使用されているかを確認するには、まず AMI の使用状況レポートを作成し、レポートするアカウントとリソースタイプを指定する必要があります。レポートが作成されたら、レポートの内容を表示できます。EC2 コンソールからレポートをダウンロードすることもできます。

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

**AMI の使用状況レポートを作成するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで [**AMI**] を選択してください。

1. AMI を選択し、**[アクション]**、**[AMI の使用状況]**、**[自分の AMI 使用状況を表示]** の順に選択します。

1. **[AMI 使用状況レポートの作成]** ページで、次の操作を行います。

   1. **[リソースタイプ]** で、レポートする 1 つ以上のリソースタイプを選択します。

   1. [**アカウント ID**] で、次のいずれかを実行します。
      + **[アカウント ID を指定]** を選択し、レポートする各アカウントの **[アカウント ID を追加]** を選択します。
      + すべてのアカウントでレポートするには、**[すべてのアカウントを含める]** を選択します。

   1. **[AMI 使用状況レポートの作成]** を選択します。

1. AMI ページで、**[AMI の使用状況]** タブを選択します。

1. 詳細を表示するレポート ID を選択します。

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

**複数のアカウントの AMI 使用状況レポートを作成するには**  
次の必須パラメータで [create-image-usage-report](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image-usage-report.html) コマンドを使用します。
+ `--image-id` – レポートする AMI の ID。
+ `--resource-types` – チェックするリソースのタイプ。次の例では、チェックするリソースタイプは EC2 インスタンスと起動テンプレートです。さらに、チェックする起動テンプレートのバージョンの数も指定されています (`version-depth=100`)。

 複数の特定のアカウントをレポートするには、 `--account-ids` パラメータを使用してレポートする各アカウントの ID を指定します。

```
aws ec2 create-image-usage-report \
    --image-id ami-0abcdef1234567890 \
    --account-ids 111122223333 444455556666 123456789012 \
    --resource-types ResourceType=ec2:Instance \
      'ResourceType=ec2:LaunchTemplate,ResourceTypeOptions=[{OptionName=version-depth,OptionValues=100}]'
```

**すべてのアカウントの AMI 使用状況レポートを作成するには**  
指定した AMI を使用しているすべてのアカウントをレポートするには、同じコマンドを使用しますが、`--account-ids` パラメータを省略します。

```
aws ec2 create-image-usage-report \
    --image-id ami-0abcdef1234567890 \
    --resource-types ResourceType=ec2:Instance \
      'ResourceType=ec2:LaunchTemplate,ResourceTypeOptions=[{OptionName=version-depth,OptionValues=100}]'
```

以下は出力の例です。

```
{
    "ReportId": "amiur-00b877d192f6b02d0"
}
```

**レポート作成ステータスをモニタリングするには**  
[describe-image-usage-reports](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-reports.html) コマンドを使用して、レポート ID を指定します。

```
aws ec2 describe-image-usage-reports --report-ids amiur-00b877d192f6b02d0
```

以下は出力の例です。`State` フィールドの初期値は `pending` です。レポートエントリを表示するには、状態が `available` である必要があります。

```
{
    "ImageUsageReports": [
        {
            "ImageId": "ami-0e9ae3dc21c2b3a64",
            "ReportId": "amiur-abcae3dc21c2b3999",
            "ResourceTypes": [
                {"ResourceType": "ec2:Instance"}
            ],
            "State": "pending",
            "CreationTime": "2025-09-29T13:27:12.322000+00:00",
            "ExpirationTime": "2025-10-28T13:27:12.322000+00:00"
        }
    ]
}
```

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

**複数のアカウントの AMI 使用状況レポートを作成するには**  
以下の必須パラメータで [New-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2ImageUsageReport.html) コマンドレットを使用します。
+ `-ImageId` – レポートする AMI の ID。
+ `-ResourceType` – チェックするリソースのタイプ。次の例では、チェックするリソースタイプは EC2 インスタンスと起動テンプレートです。さらに、チェックする起動テンプレートのバージョンの数も指定されています (`'version-depth' = 100`)。

 複数の特定のアカウントをレポートするには、 `-AccountId` パラメータを使用してレポートする各アカウントの ID を指定します。

```
New-EC2ImageUsageReport `
    -ImageId ami-0abcdef1234567890 `
    -AccountId 111122223333 444455556666 123456789012 `
    -ResourceType @(
        @{ResourceType = 'ec2:Instance'},
        @{ResourceType = 'ec2:LaunchTemplate'ResourceTypeOptions = @{'version-depth' = 100}
        })
```

**すべてのアカウントの AMI 使用状況レポートを作成するには**  
指定した AMI を使用しているすべてのアカウントをレポートするには、同じコマンドを使用しますが、`-AccountId` パラメータを省略します。

```
New-EC2ImageUsageReport `
    -ImageId ami-0abcdef1234567890 `
    -ResourceType @(
        @{ResourceType = 'ec2:Instance'},
        @{ResourceType = 'ec2:LaunchTemplate'ResourceTypeOptions = @{'version-depth' = 100}
        })
```

以下は出力の例です。

```
ReportId
--------
amiur-00b877d192f6b02d0
```

**レポート作成ステータスをモニタリングするには**  
[Get-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReport.html) コマンドを使用してレポート ID を指定します。

```
Get-EC2ImageUsageReport -ReportId amiur-00b877d192f6b02d0
```

以下は出力の例です。`State` フィールドの初期値は `pending` です。レポートエントリを表示するには、状態が `available` である必要があります。

```
ImageUsageReports
-----------------
{@{ImageId=ami-0e9ae3dc21c2b3a64; ReportId=amiur-abcae3dc21c2b3999; ResourceTypes=System.Object[]; State=pending; CreationTime=2025-09-29; ExpirationTime=2025-10-28}}
```

------

## AMI の使用状況レポートを表示する
<a name="view-ami-usage-reports"></a>

AMI に対して過去 30 日間に作成したすべての使用状況レポートを表示できます。Amazon EC2 は、作成から 30 日後にレポートを自動的に削除します。

レポートごとに、AMI を使用している AWS アカウントを表示できます。アカウントごとに、AMI を参照しているリソースの数をリソースタイプ別に確認できます。レポートの作成が開始されたときを表示することもできます。この情報は、レポートが**完了** (コンソール) または `available` (AWS CLI) の場合に表示されます。

**重要**  
AMI の使用状況レポートを生成する場合、最新のアクティビティが含まれていない可能性があります。過去 24 時間のインスタンスアクティビティと、過去数日間の起動テンプレートアクティビティがレポートに表示されないことがあります。

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

**AMI の使用状況レポートを表示するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで [**AMI**] を選択してください。

1. AMI を選択します。

1. **[My usage reports]** タブを選択します。

   レポートリストには以下が表示されます。
   + 選択した AMI に対して過去 30 日間に生成されたすべてのレポート。
   + レポートごとに、**[レポート開始時間]** 列にレポートが作成された日付が表示されます。

1. レポートの ID を選択すると、その内容が表示されます。

1. AMI の詳細ページの **[My usage reports]** タブに戻るには、**[この AMI のすべてのレポートを表示]** を選択します。

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

**指定した AMI のすべての AMI 使用状況レポートを一覧表示するには**  
[describe-image-usage-reports](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-reports.html) コマンドを使用して、レポートのリストを取得する AMI の ID を指定します。

```
aws ec2 describe-image-usage-reports --image-ids ami-0abcdef1234567890
```

以下は出力の例です。スキャンされたリソースタイプ、レポートの作成日と有効期限とともに各レポート ID が一覧表示されます。この情報を使用して、エントリを表示するレポートを識別できます。

```
{
  "ImageUsageReports": [
    {
      "ImageId": "ami-0abcdef1234567890",
      "ReportId": "amiur-1111111111111111",
      "ResourceTypes": [
        {
          "ResourceType": "ec2:Instance"
        }
      ],
      "State": "available",
      "CreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ExpirationTime": "2025-10-28T13:27:12.322000+00:00",
      "Tags": []
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ReportId": "amiur-22222222222222222",
      "ResourceTypes": [
        {
          "ResourceType": "ec2:Instance"
        },
        {
          "ResourceType": "ec2:LaunchTemplate"
        }
      ],
      "State": "available",
      "CreationTime": "2025-10-01T13:27:12.322000+00:00",
      "ExpirationTime": "2025-10-30T13:27:12.322000+00:00",
      "Tags": []
    }
  ],
  "NextToken": "opaque"
}
```

**指定した AMI の AMI 使用状況レポートの内容を表示するには**  
[describe-image-usage-report-entries](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-report-entries.html) コマンドを使用して AMI の ID を指定します。指定した AMI のすべてのレポートが返され、AMI を使用したアカウントとそのリソース数が表示されます。

```
aws ec2 describe-image-usage-report-entries --image-ids ami-0abcdef1234567890
```

以下は出力の例です。

```
{
  "ImageUsageReportEntries": [
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "123412341234",
      "UsageCount": 15,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-1111111111111111"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "123412341234",
      "UsageCount": 2,
      "ReportCreationTime": "2025-10-01T13:27:12.322000+00:00",
      "ReportId": "amiur-22222222222222222"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "001100110011",
      "UsageCount": 39,
      "ReportCreationTime": "2025-10-01T13:27:12.322000+00:00",
      "ReportId": "amiur-22222222222222222"
    }
  ],
  "NextToken": "opaque"
}
```

**指定したレポートの AMI 使用状況レポートの内容を表示するには**  
[describe-image-usage-report-entries](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-report-entries.html) コマンドを使用してレポートの ID を指定します。指定したレポートのすべてのエントリが返され、AMI を使用したアカウントとそのリソース数が表示されます。

```
aws ec2 describe-image-usage-report-entries --report-ids amiur-11111111111111111
```

以下は出力の例です。

```
{
  "ImageUsageReportEntries": [
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "123412341234",
      "UsageCount": 15,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-11111111111111111"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:LaunchTemplate",
      "AccountId": "123412341234",
      "UsageCount": 4,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-11111111111111111"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:LaunchTemplate",
      "AccountId": "001100110011",
      "UsageCount": 2,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-11111111111111111"
    }
  ],
  "NextToken": "opaque"
}
```

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

**指定した AMI のすべての AMI 使用状況レポートを一覧表示するには**  
[Get-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReport.html) コマンドレットを使用して、レポートのリストを取得する AMI の ID を指定します。

```
Get-EC2ImageUsageReport -ImageId ami-0abcdef1234567890
```

以下は出力の例です。スキャンされたリソースタイプ、レポートの作成日と有効期限とともに各レポート ID が一覧表示されます。この情報を使用して、エントリを表示するレポートを識別できます。

```
@{
    ImageUsageReports = @(
        @{
            ImageId = "ami-0abcdef1234567890"
            ReportId = "amiur-1111111111111111"
            ResourceTypes = @(
                @{
                    ResourceType = "ec2:Instance"
                }
            )
            State = "available"
            CreationTime = "2025-09-29T13:27:12.322000+00:00"
            ExpirationTime = "2025-10-28T13:27:12.322000+00:00"
        },
        @{
            ImageId = "ami-0abcdef1234567890"
            ReportId = "amiur-22222222222222222"
            ResourceTypes = @(
                @{
                    ResourceType = "ec2:Instance"
                }
            )
            State = "available"
            CreationTime = "2025-09-30T13:27:12.322000+00:00"
            ExpirationTime = "2025-10-29T13:27:12.322000+00:00"
        },
        @{
            ImageId = "ami-0abcdef1234567890"
            ReportId = "amiur-33333333333333333"
            ResourceTypes = @(
                @{
                    ResourceType = "ec2:Instance"
                }
            )
            State = "available"
            CreationTime = "2025-10-01T13:27:12.322000+00:00"
            ExpirationTime = "2025-10-30T13:27:12.322000+00:00"
        }
    )
    NextToken = "opaque"
}
```

**指定した AMI の AMI 使用状況レポートの内容を表示するには**  
[Get-EC2ImageUsageReportEntry](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReportEntry.html) コマンドレットを使用して AMI の ID を指定します。指定した AMI のすべてのレポートが返され、AMI を使用したアカウントとそのリソース数が表示されます。

```
Get-EC2ImageUsageReportEntry -ImageId ami-0abcdef1234567890
```

以下は出力の例です。

```
ImageUsageReportEntries : {@{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:Instance"
    AccountId = "123412341234"
    UsageCount = 15
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-1111111111111111"
    }, @{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:Instance"
    AccountId = "123412341234"
    UsageCount = 7
    ReportCreationTime = "2025-09-30T13:27:12.322000+00:00"
    ReportId = "amiur-22222222222222222"
    }...}
NextToken : opaque
```

**指定したレポートの AMI 使用状況レポートの内容を表示するには**  
[Get-EC2ImageUsageReportEntry](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReportEntry.html) コマンドレットを指定してレポートの ID を指定します。指定したレポートのすべてのエントリが返され、AMI を使用したアカウントとそのリソース数が表示されます。

```
Get-EC2ImageUsageReportEntry -ReportId amiur-11111111111111111
```

以下は出力の例です。

```
ImageUsageReportEntries : {@{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:Instance"
    AccountId = "123412341234"
    UsageCount = 15
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-11111111111111111"
    }, @{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:LaunchTemplate"
    AccountId = "123412341234"
    UsageCount = 4
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-11111111111111111"
    }, @{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:LaunchTemplate"
    AccountId = "************"
    UsageCount = 2
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-11111111111111111"
    }}
NextToken : opaque
```

------

## AMI の使用状況レポートを削除する
<a name="delete-ami-usage-reports"></a>

Amazon EC2 は、レポートの作成から 30 日後に自動的にレポートを削除します。その前に手動で削除することができます。

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

**AMI の使用状況レポートを削除するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで [**AMI**] を選択してください。

1. AMI を選択します。

1. **[AMI の使用状況]** タブを選択します。

1. 削除するレポートの横にあるオプションボタンを選択して、**[削除]** を選択します。

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

**AMI の使用状況レポートを削除するには**  
[delete-image-usage-report](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-image-usage-report.html) コマンドを使用して、レポートの ID を指定します。

```
aws ec2 delete-image-usage-report --report-id amiur-0123456789abcdefg
```

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

**AMI の使用状況レポートを削除するには**  
[Remove-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2ImageUsageReport.html) コマンドレットを使用して、レポートの ID を指定します。

```
Remove-EC2ImageUsageReport -ReportId amiur-0123456789abcdefg
```

------

## レポートに関するクォータ
<a name="ami-usage-report-quotas"></a>

AMI 使用状況レポートの作成には、次のクォータが適用されます。AWS リージョン ごとにクォータが適用されます。


| 説明 | クォータ | 
| --- | --- | 
| AWS アカウント ごとの進行中の (pending) AMI 使用状況レポート | 2,000 | 
| AMI ごとの進行中の (pending) AMI 使用状況レポート | 1 | 

# Amazon EC2 AMI が最後に使用された日時を確認する
<a name="ami-last-launched-time"></a>

Amazon EC2 は、インスタンスを起動するために AMI が最後に使用された日時を自動的に追跡します。長期間インスタンスの起動に使用されていない AMI がある場合は、その AMI を[登録解除](deregister-ami.md)または[非推奨化](ami-deprecate.md)の候補とするかどうかを検討してください。

**考慮事項**
+ インスタンスを起動するために AMI が使用される場合、その発生から 24 時間経過した後に報告されます。
+ 最終起動時間を取得するには、AMI の所有者である必要があります。
+ AMI 使用状況データは、2017 年 4 月以降利用可能です。

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

**AMI の最終起動時間を表示するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. 左のナビゲーションペインで [**AMI**] を選択してください。

1. フィルターバーから、**[Owned by me]** (自己所有) を選択します。

1. AMI のチェックボックスをオンにします。

1. **[詳細]** タブで **[最終起動時刻]** を見つけます。

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

**AMI を記述して最終起動時間を表示するには**  
[describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) コマンドを使用します。出力に `LastLaunchedTime` が含まれていない場合は、自分がその AMI を所有しているか確認します。

```
aws ec2 describe-images \
    --image-id ami-0abcdef1234567890 \
    --query Images[].LastLaunchedTime \
    --output text
```

以下は出力の例です。

```
2025-02-17T20:22:19Z
```

**AMI の最終起動時間の属性を表示するには**  
[describe-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html) コマンドを使用します。ユーザーは、指定した AMI の所有者でなければなりません。

```
aws ec2 describe-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute lastLaunchedTime \
    --query LastLaunchedTime.Value \
    --output text
```

以下は出力の例です。

```
2025-02-17T20:22:19Z
```

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

**AMI を記述して最終起動時間を表示するには**  
[Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) コマンドレットを使用します。出力に `LastLaunchedTime` が含まれていない場合は、自分がその AMI を所有しているか確認します。

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).LastLaunchedTime
```

以下は出力の例です。

```
2025-02-17T20:22:19Z
```

**AMI の最終起動時間の属性を表示するには**  
[Get-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html) コマンドレットを使用します。ユーザーは、指定した AMI の所有者でなければなりません。

```
(Get-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute LastLaunchedTime).LastLaunchedTime
```

以下は出力の例です。

```
2025-02-17T20:22:19Z
```

------

# 指定した AMI を参照しているリソースを識別します。
<a name="ec2-ami-references"></a>

指定した Amazon マシンイメージ (AMI) を参照する AWS リソースは、AMI がパブリックかプライベートか、または誰が所有しているかに関係なく識別できます。この可視性により、リソースが最新の準拠 AMI を使用することが保証されます。

**主な利点**

AMI の参照をチェックすると、次のことに役立ちます。
+ アカウントでの AMI の使用を監査します。
+ 特定の AMI が参照されている場所を確認します。
+ リソースを更新して最新の AMI を参照することでコンプライアンスを維持します。

 

**Topics**
+ [サポートされているリソース](#ec2-ami-references-supported-resources)
+ [AMI 参照チェックの仕組み](#how-ami-references-works)
+ [必要な IAM 許可](#ami-references-required-permissions)
+ [AMI の参照を確認する手順](#ami-reference-procedures)

## サポートされているリソース
<a name="ec2-ami-references-supported-resources"></a>

AMI の参照は以下でチェックできます。
+ EC2 インスタンス
+ 起動テンプレート
+ SSM パラメータ
+ Image Builder のイメージレシピ
+ Image Builder コンテナレシピ

## AMI 参照チェックの仕組み
<a name="how-ami-references-works"></a>

**基本オペレーション**

AMI 参照チェックを実行する際は、以下の手順を実行します。
+ 確認する AMI を指定します。
+ スキャンするリソースタイプを選択します。
+ 指定した AMI を参照するリソースのリストを受け取ります。

**リソースタイプの選択**

コンソールで、スキャンするリソースタイプを選択します。

CLI では、次の CLI パラメータのいずれかまたは両方を使用して、スキャンするリソースタイプを指定します。
+ `IncludeAllResourceTypes`: サポートされているすべてのリソースタイプをスキャンします。
+ `ResourceTypes`: 指定したリソースタイプをスキャンします。

**応答の範囲設定**

`ResourceTypes` パラメータを使用して `ResourceTypeOptions` の値をカスタマイズすることで、EC2 インスタンスと起動テンプレートの応答範囲を指定できます。コンソールと `IncludeAllResourceTypes` パラメータはどちらもデフォルトのオプション値を使用します。`ResourceTypes` と `IncludeAllResourceTypes` を一緒に使用すると、`ResourceTypes` オプション値がデフォルトよりも優先されます。

デフォルト値を以下に示します。


| リソースタイプ | 範囲オプション (`OptionName`） | 目的 | `OptionValue` とコンソールのデフォルト値 | 
| --- | --- | --- | --- | 
| EC2 インスタンス | state-name | インスタンスの状態でフィルタリングする | pending、running、shutting-down、terminated、stopping、stopped (すべての状態) | 
| 起動テンプレート | version-depth | 確認する起動テンプレートのバージョンの数を指定します (最新バージョンから開始)。 | 10 (最新バージョン) | 

## 必要な IAM 許可
<a name="ami-references-required-permissions"></a>

DescribeImageReferences API を使用して、指定された AMI を参照するリソースを特定するには、リソースを記述するために次の IAM アクセス許可が必要です。
+ `ec2:DescribeInstances`
+ `ec2:DescribeLaunchTemplates`
+ `ec2:DescribeLaunchTemplateVersions`
+ `ssm:DescribeParameters`
+ `ssm:GetParameters`
+ `imagebuilder:ListImageRecipes`
+ `imagebuilder:ListContainerRecipes`
+ `imagebuilder:GetContainerRecipe`

**DescribeImageReferences API を使用するための IAM ポリシーの例**  
次のポリシー例では、DescribeImageReferences API を使用するアクセス許可を付与します。これには、EC2 インスタンス、起動テンプレート、Systems Manager パラメータ、Image Builder イメージレシピ、Image Builder コンテナレシピを記述するアクセス許可が含まれます。

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": "ec2:DescribeImageReferences",
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DescribeInstances",
				"ec2:DescribeLaunchTemplates",
				"ec2:DescribeLaunchTemplateVersions",
				"ssm:DescribeParameters",
				"ssm:GetParameters",
				"imagebuilder:ListImageRecipes",
				"imagebuilder:ListContainerRecipes",
				"imagebuilder:GetContainerRecipe"
			],
			"Resource": "*",
			"Condition": {
				"ForAnyValue:StringEquals": {
					"aws:CalledVia": [
						"ec2-images.amazonaws.com"
					]
				}
			}
		}
	]
}
```

------

**重要**  
自分でポリシーを作成する代わりに、AWS マネージドポリシー [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html) を使用することを強くお勧めします。必要なアクセス許可のみを提供するカスタム IAM ポリシーを作成するには時間と専門知識が必要で、新しいリソースタイプが利用可能になったときに更新が必要になります。  
`AmazonEC2ImageReferencesAccessPolicy` マネージドポリシー:  
DescribeImageReferences API を使用するために必要なすべてのアクセス許可を付与します (EC2 インスタンス、起動テンプレート、Systems Manager パラメータ、Image Builder コンテナとイメージレシピを記述するためのアクセス許可が含まれます)。
利用可能になった新しいリソースタイプを自動的にサポートします (`IncludeAllResourceTypes` パラメータを使用する場合、特に重要です)。
`AmazonEC2ImageReferencesAccessPolicy` ポリシーは IAM アイデンティティ (ユーザー、グループ、ロール) にアタッチできます。  
このポリシーに含まれるアクセス許可を確認するには、「*AWS マネージドポリシーリファレンス*」の「[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html)」を参照してください。

## AMI の参照を確認する手順
<a name="ami-reference-procedures"></a>

次の手順を使用して、指定した AMI を参照している AWS リソースを特定します。

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

**指定した AMI を参照するリソースを識別するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで [**AMI**] を選択してください。

1. 参照をチェックする 1 つまたは複数の AMI を選択します。

1. **[アクション]**、**[AMI の使用状況]**、**[参照先リソースを表示]** の順に選択します。

1. **[選択した AMI を参照しているリソースを表示]** ページで次の操作を実行します。

   1. **[リソースタイプ]** で 1 つ以上のリソースタイプを選択します。

   1. **[リソースの表示]** を選択します。

1. **[選択した AMI を参照するリソース]** セクションが表示されます。リストには、指定された AMI を参照するリソースが表示されます。各行には、以下に関する情報が表示されます。
   + **[AMI ID]** – 参照されている AMI の ID。
   + **[リソースタイプ]** – AMI を参照しているリソースのリソースタイプ。
   + **[リソース ID]** – AMI を参照しているリソースの ID。

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

**特定のリソースタイプの AMI 参照を確認するには**  
`--resource-types` パラメータで [describe-image-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-references.html) コマンドを使用します。次の例では、EC2 インスタンス（インスタンスの状態による範囲指定)、起動テンプレート (最新の 20 個の起動テンプレートバージョンによる範囲指定)、その他の特定のリソースタイプをチェックします。

```
aws ec2 describe-image-references \
    --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \
    --resource-types \
        'ResourceType=ec2:Instance,ResourceTypeOptions=[{OptionName=state-name,OptionValues=[running,pending]}]' \
        'ResourceType=ec2:LaunchTemplate,ResourceTypeOptions=[{OptionName=version-depth,OptionValues=[20]}]' \
        'ResourceType=ssm:Parameter' \
        'ResourceType=imagebuilder:ImageRecipe' \
        'ResourceType=imagebuilder:ContainerRecipe'
```

以下は出力の例です。

```
{
    "ImageReferences": [
        {
            "ImageId": "ami-0abcdef1234567890",
            "ResourceType": "ec2:Instance",
            "Arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"
        },
        {
            "ImageId": "ami-1234567890abcdef0",
            "ResourceType": "ec2:LaunchTemplate",
            "Arn": "arn:aws:ec2:us-east-1:123456789012:launch-template/lt-1234567890abcdef0"
        }
    ]
}
```

**サポートされているすべてのリソースタイプの AMI 参照を確認するには**  
`--include-all-resource-types` パラメータで [describe-image-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-references.html) コマンドを使用します。

```
aws ec2 describe-image-references \
    --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \
    --include-all-resource-types
```

**サポートされているすべてのリソースタイプと特定のオプションの AMI 参照を確認するには**  
`--include-all-resource-types` と `--resource-types` の両方のパラメータで [describe-image-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-references.html) コマンドを使用します。この例では、実行中または保留中のインスタンスに対する EC2 インスタンスの応答範囲を指定しながら、すべてのリソースタイプをチェックします。

```
aws ec2 describe-image-references \
    --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \
    --include-all-resource-types \
    --resource-types 'ResourceType=ec2:Instance,ResourceTypeOptions=[{OptionName=state-name,OptionValues=[running,pending]}]'
```

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

**特定のリソースタイプの AMI 参照を確認するには**  
`-ResourceType` パラメータで [Get-EC2ImageReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageReference.html) コマンドレットを使用します。次の例では、EC2 インスタンス（インスタンスの状態による範囲指定)、起動テンプレート (最新の 20 個の起動テンプレートバージョンによる範囲指定)、その他の特定のリソースタイプをチェックします。

```
Get-EC2ImageReference `
    -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' `
    -ResourceType @(
        @{
            ResourceType = 'ec2:Instance'
            ResourceTypeOptions = @(
                @{
                    OptionName = 'state-name'
                    OptionValues = @('running', 'pending')
                }
            )
        },
        @{
            ResourceType = 'ec2:LaunchTemplate'
            ResourceTypeOptions = @(
                @{
                    OptionName = 'version-depth'
                    OptionValues = @('20')
                }
            )
        },
        @{
            ResourceType = 'ssm:Parameter'
        },
        @{
            ResourceType = 'imagebuilder:ImageRecipe'
        },
        @{
            ResourceType = 'imagebuilder:ContainerRecipe'
        }
    )
```

**サポートされているすべてのリソースタイプの AMI 参照を確認するには**  
`-IncludeAllResourceTypes` パラメータで [Get-EC2ImageReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageReference.html) コマンドレットを使用します。

```
Get-EC2ImageReference `
    -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' `
    -IncludeAllResourceTypes
```

**サポートされているすべてのリソースタイプと特定のオプションの AMI 参照を確認するには**  
`-IncludeAllResourceTypes` と `-ResourceType` の両方のパラメータで [Get-EC2ImageReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageReference.html) コマンドレットを使用します。この例では、実行中または保留中のインスタンスに対する EC2 インスタンスの応答範囲を指定しながら、すべてのリソースタイプをチェックします。

```
Get-EC2ImageReference `
    -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' `
    -IncludeAllResourceTypes `
    -ResourceType @(
        @{
            ResourceType = 'ec2:Instance'
            ResourceTypeOptions = @(
                @{
                    OptionName = 'state-name'
                    OptionValues = @('running', 'pending')
                }
            )
        }
    )
```

------