

# インスタンスメタデータを使用して EC2 インスタンスを管理する
<a name="ec2-instance-metadata"></a>

*インスタンスメタデータ*はインスタンスに関するデータで、実行中のインスタンスを設定または管理するために使用します。インスタンスメタデータには以下が含まれます。

**インスタンスメタデータのプロパティ**  
インスタンスメタデータのプロパティはホスト名、イベント、およびセキュリティグループなどで[カテゴリ](#instancedata-data-categories)分けされます。

**動的データ**  
動的データはインスタンスアイデンティティドキュメントなど、インスタンスの起動時に生成されるメタデータです。詳細については「[動的データのカテゴリ](#dynamic-data-categories)」を参照してください。

**ユーザーデータ**  
インスタンスメタデータを使用して、インスタンスの起動時に指定した*ユーザーデータ*にアクセスすることもできます。例えば、インスタンスを設定するためにパラメータを指定したり、単純なスクリプトを含めたりすることができます。汎用 AMI を構築し、ユーザーデータを使用して起動時に提供された設定ファイルを変更することができます。例えば、さまざまな小規模ビジネスを対象としたウェブサーバーを実行する場合に、すべてのサーバーで同じ汎用 AMI を使用し、起動時にユーザーデータで指定した Amazon S3 バケットからコンテンツを取得できます。随時新規顧客を追加するには顧客のバケットを作成し、そのコンテンツを追加し、ユーザーデータのコードに提供された固有のバケット名を使って AMI を起動します。同じ `RunInstances` 呼び出しを使用して複数のインスタンスを起動する場合、ユーザーデータはその予約においてすべてのインスタンスで使用可能です。同じリザベーションの一部である各インスタンスには固有の `ami-launch-index` 番号があるため、インスタンスが実行する操作を制御するコードを書くことができます。例えば、最初のホストはクラスター内の最初のノードとしてそれ自体を選択する場合があります。詳細な AMI 起動の例については「[1 つのリクエストで起動された各インスタンスを特定する](AMI-launch-index-examples.md)」を参照してください。

**重要**  
インスタンスメタデータおよびユーザーデータにはそのインスタンス自体内からのみアクセスできるものの、データは認証または暗号化手法によって保護されていません。インスタンス、そしてインスタンス上で実行される任意のソフトウェアに対して直接アクセス権がある可能性がある人はメタデータを表示できます。そのため、パスワードまたは存続期間の長い暗号化キーなどの機密データはユーザーデータとして保管しないようにしてください。

**Topics**
+ [インスタンスメタデータのカテゴリ](#instancedata-data-categories)
+ [動的データのカテゴリ](#dynamic-data-categories)
+ [EC2 インスタンスのインスタンスメタデータにアクセスする](instancedata-data-retrieval.md)
+ [インスタンスメタデータサービスのオプションを設定する](configuring-instance-metadata-options.md)
+ [ユーザーデータ入力を使用して EC2 インスタンスを起動するときにコマンドを実行する](user-data.md)
+ [1 つのリクエストで起動された各インスタンスを特定する](AMI-launch-index-examples.md)

## インスタンスメタデータのカテゴリ
<a name="instancedata-data-categories"></a>

インスタンスメタデータプロパティはいくつかのカテゴリに分けられます。インスタンスメタデータのプロパティを取得するにはリクエストでカテゴリを指定します。すると、メタデータがレスポンスで返されます。

新しいカテゴリがリリースされると、新しいインスタンスメタデータビルドが新しいバージョン番号で作成されます。次の表では**[Version when category was released]** (カテゴリがリリースされたときのバージョン) 列が、インスタンスメタデータカテゴリがリリースされたときのビルドバージョンを指定しています。Amazon EC2 が新しいインスタンスメタデータビルドをリリースするたびにコードを更新する必要をなくすために、メタデータリクエストのバージョン番号の代わりに、`latest` を使用することが推奨されます。詳細については[使用できるインスタンスメタデータのバージョンを取得する](configuring-instance-metadata-service.md#instance-metadata-ex-1) を参照してください。

Amazon EC2 が新しいインスタンスメタデータカテゴリをリリースすると、新しいカテゴリのインスタンスメタデータが既存のインスタンスで使用できなくなる場合があります。[Nitro ベースのインスタンス](instance-types.md#instance-hypervisor-type)では起動時に用意されたカテゴリのインスタンスメタデータのみが取得可能です。Xen ハイパーバイザーを使用するインスタンスの場合は[一度停止した後に開始](Stop_Start.md)することで、そのインスタンスで使用可能なカテゴリを更新できます。

次の表はインスタンスメタデータのカテゴリをまとめたものです。カテゴリ名のいくつかにはインスタンスに固有のデータのためのプレースホルダーが含まれています。例えば、{{mac}} はネットワークインターフェイスの MAC アドレスを表します。インスタンスメタデータを取得する際にはプレースホルダーを実際の値に置き換える必要があります。


| Category | 説明 | カテゴリがリリースされたときのバージョン | 
| --- | --- | --- | 
| ami-id  | インスタンスの起動に使用される AMI ID。 | 1.0 | 
| ami-launch-index  | 同じ RunInstances 呼び出しを使用して複数のインスタンスを起動する場合、この値は各インスタンスの起動順序を示します。最初に起動されたインスタンスの値は 0 です。Auto Scaling または EC2 フリートを使用してインスタンスを起動する場合、この値は常に 0 です。 | 1.0 | 
| ami-manifest-path  | Amazon S3 での AMI のマニフェストファイルのパス。Amazon EBS-backed AMI を使用してインスタンスを起動した場合、返される結果は unknown です。 | 1.0 | 
| ancestor-ami-ids  | この AMI を作成するために再バンドルされたあらゆるインスタンスの AMI ID。この値はAMI マニフェストファイルが ancestor-amis キーを含む場合にのみ存在します。 | 2007-10-10 | 
| autoscaling/target-lifecycle-state | Auto Scaling インスタンスの移行先となる、ターゲットの Auto Scaling ライフサイクルの状態を示す値。2022 年 3 月 10 日以降、インスタンスがターゲットのライフサイクル状態の 1 つに移行したときに表示されます。使用できる値: `Detached`\|`InService`\|`Standby`\|`Terminated`\|`Warmed:Hibernated`\|`Warmed:Running`\|`Warmed:Stopped`\|`Warmed:Terminated` 「*Amazon EC2 Auto Scaling ユーザーガイド*」の「[インスタンスメタデータを使用してターゲットライフサイクル状態を取得する](https://docs.aws.amazon.com/autoscaling/ec2/userguide/retrieving-target-lifecycle-state-through-imds.html)」を参照してください。 | 2021-07-15 | 
| block-device-mapping/ami | root/boot ファイルシステムを含む仮想デバイス。 | 2007-12-15 | 
| block-device-mapping/ebsN  | 任意の Amazon EBS ボリュームに関連付けられた仮想デバイス。Amazon EBS ボリュームは起動の時点、またはインスタンスが最後に開始された時点で存在している場合にのみ、メタデータで使用できます。N はAmazon EBS ボリュームのインデックス (ebs1 や ebs2 など) を示します。 | 2007-12-15 | 
| block-device-mapping/ephemeralN  | 非 NVMe インスタンスストアボリュームの仮想デバイス。N は各ボリュームのインデックスを示します。ブロックデバイスマッピングのインスタンスストアボリュームの数はインスタンスのインスタンスストアボリュームの実際の数に一致しない場合があります。インスタンスに使用可能なインスタンスストアボリュームの数はインスタンスタイプによって決定されます。ブロックデバイスマッピングのインスタンスストアボリュームの数が、インスタンスに利用可能な数を超える場合、追加のインスタンスストアボリュームは無視されます。 | 2007-12-15 | 
| block-device-mapping/root  | ルートデバイスに関連付けられた仮想デバイスまたはパーティション、あるいは仮想デバイス上のパーティション。ルート (/ または C:) ファイルシステムは所定のインスタンスに関連付けられています。 | 2007-12-15 | 
| block-device-mapping/swap  | swap に関連付けられた仮想デバイス。存在しない場合もあります。 | 2007-12-15 | 
| events/maintenance/history | インスタンスの完了またはキャンセルされたメンテナンスイベントがある場合はイベントに関する情報を含む JSON 文字列を含みます。 | 2018-08-17 | 
| events/maintenance/scheduled | インスタンスがアクティブなメンテナンスイベントがある場合はイベントに関する情報を含む JSON 文字列を含みます。詳細については[Amazon EC2 インスタンスに影響する予定されているイベントの表示](viewing_scheduled_events.md)を参照してください。 | 2018-08-17 | 
| events/recommendations/rebalance | EC2 インスタンスの再調整推奨通知がインスタンスに対して送信されるおおよその時間 (UTC)。このカテゴリのメタデータの例を次に示します。{"noticeTime": "2020-11-05T08:22:00Z"}このカテゴリは通知が発された後にのみ使用できます。詳細については「[EC2 インスタンスの再調整に関する推奨事項](rebalance-recommendations.md)」を参照してください。 | 2020-10-27 | 
| hostname | EC2 インスタンスが IP ベースの命名 (IPBN) を使用している場合、これはインスタンスのプライベート IPv4 DNS ホスト名です。EC2 インスタンスがリソースベースの命名 (RBN) を使用している場合、これは RBN です。複数のネットワークインターフェイスが存在する場合、これは eth0 デバイス (デバイス番号が 0 のデバイス) を示します。IPBN と RBN の詳細については[EC2 インスタンスのホスト名とドメイン](ec2-instance-naming.md)を参照してください。 | 1.0 | 
|  iam/info  | インスタンスに関連付けられた IAM ロールがある場合、インスタンスの LastUpdated の日付、InstanceProfileArn、InstanceProfileId など、インスタンスプロファイルが更新された最終時刻に関する情報が格納されます。そうでない場合はなしになります。 | 2012-01-12 | 
|  iam/security-credentials/{{role-name}}  | インスタンスに関連付けられた IAM ロールがある場合、{{role-name}} はロールの名前になり、{{role-name}} に、そのロールに関連付けられた一時的なセキュリティ認証情報が格納されます (詳細については[インスタンスメタデータからのセキュリティ認証情報の取得](instance-metadata-security-credentials.md)を参照してください)。そうでない場合はなしになります。 | 2012-01-12 | 
| identity-credentials/ec2/info | identity-credentials/ec2/security-credentials/ec2-instance の認証情報に関する情報。 | 2018-05-23 | 
| identity-credentials/ec2/security-credentials/ec2-instance | インスタンス上のソフトウェアが自身を AWS に識別し、EC2 Instance Connect や AWS Systems Manager デフォルトのホスト管理設定などの機能をサポートできるようにするインスタンスアイデンティティロール用の認証情報。これらの認証情報にはポリシーがアタッチされていないため、AWS 機能に対してインスタンスを識別する以外に追加の AWS API 許可はありません。詳細については「[Amazon EC2 インスタンスのインスタンスアイデンティティロール](iam-roles-for-amazon-ec2.md#ec2-instance-identity-roles)」を参照してください。 | 2018-05-23 | 
| instance-action | バンドルの準備のために再起動する必要があることをインスタンスに伝えます。有効な値: none \| shutdown \| bundle-pending。 | 2008-09-01 | 
| instance-id | このインスタンスの ID。 | 1.0 | 
| instance-life-cycle | このインスタンスの購入オプション。詳細については[Amazon EC2 の請求および購入オプション](instance-purchasing-options.md)を参照してください。 | 2019-10-01 | 
| instance-type  | インスタンスの種類。詳細については[Amazon EC2 インスタンスタイプ](instance-types.md)を参照してください。 | 2007-08-29 | 
| ipv6  | インスタンスの IPv6 アドレス。複数のネットワークインターフェイスが存在する場合、これは eth0 デバイス (デバイス番号が 0 のデバイス) のネットワークインターフェイスおよび最初に割り当てられた IPv6 アドレスを示します。ネットワークインターフェイス [0] に IPv6 アドレスが存在しない場合、この項目は設定されず、HTTP 404 応答が返されます。 | 2021-01-03 | 
|  kernel-id  | このインスタンスで起動したカーネルの ID (ある場合)。 | 2008-02-01 | 
|  local-hostname  | 複数のネットワークインターフェイスが存在する場合、これは eth0 デバイス (デバイス番号が 0 のデバイス) を示します。EC2 インスタンスが IP ベースの命名 (IPBN) を使用している場合、これはインスタンスのプライベート IPv4 DNS ホスト名です。EC2 インスタンスがリソースベースの命名 (RBN) を使用している場合、これは RBN です。IPBN、RBN、および EC2 インスタンスの命名の詳細については[EC2 インスタンスのホスト名とドメイン](ec2-instance-naming.md)を参照してください。 | 2007-01-19 | 
|  local-ipv4  | インスタンスのプライベート IPv4 アドレス。複数のネットワークインターフェイスが存在する場合、これは eth0 デバイス (デバイス番号が 0 のデバイス) を示します。これが IPv6 専用インスタンスの場合、この項目は設定されず、HTTP 404 応答が返されます。 | 1.0 | 
|  mac  | インスタンスのメディアアクセスコントロール (MAC) アドレス。複数のネットワークインターフェイスが存在する場合、これは eth0 デバイス (デバイス番号が 0 のデバイス) を示します。 | 2011-01-01 | 
| metrics/vhostmd | 使用不可 | 2011-05-01 | 
|  network/interfaces/macs/{{mac}}/device-number  | そのインターフェイスに関連付けられた固有のデバイス番号。デバイス番号はデバイス名に対応します。例えば、2 という device-number は eth2 デバイスを指します。このカテゴリはAmazon EC2 API で使用される DeviceIndex フィールドと device-index フィールド、および AWS CLI の EC2 コマンドに対応します。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/interface-id  | ネットワークインターフェイスの ID。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/ipv4-associations/{{public-ip}}  | 各パブリック IP アドレスに関連付けられ、そのインターフェイスに割り当てられたプライベート IPv4 アドレス。 | 2011-01-01 | 
| network/interfaces/macs/{{mac}}/ipv6s | インターフェイスに割り当てられた IPv6 アドレス。 | 2016-06-30 | 
| network/interfaces/macs/{{mac}}/ipv6-prefix | ネットワークインターフェイスに割り当てられた IPv6 プレフィクス。 |  | 
|  network/interfaces/macs/{{mac}}/local-hostname  | インスタンスのプライベート IPv4 DNS ホスト名。複数のネットワークインターフェイスが存在する場合、これは eth0 デバイス (デバイス番号が 0 のデバイス) を示します。これが IPv6 専用インスタンスの場合、これはリソースベースの名前です。IPBN と RBN の詳細については[EC2 インスタンスのホスト名とドメイン](ec2-instance-naming.md)を参照してください。 | 2007-01-19 | 
|  network/interfaces/macs/{{mac}}/local-ipv4s  | インターフェイスに関連付けられたプライベート IPv4 アドレス。これが IPv6 専用のネットワークインターフェイスである場合、この項目は設定されず、HTTP 404 応答が返されます。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/mac  | インスタンスの MAC アドレス。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/network-card  | ネットワークカードのインデックス。インスタンスタイプによっては複数のネットワークカードがサポートされているものもあります。 | 2020 年 11 月 1 日 | 
| network/interfaces/macs/{{mac}}/owner-id  | ネットワークインターフェイスの所有者の ID。複数インターフェイスの環境ではインターフェイスは Elastic Load Balancing などのサードパーティによってアタッチできます。インターフェイス上のトラフィックは常にインターフェイス所有者に対して課金されます。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/public-hostname  | インターフェイスのパブリック DNS (IPv4)。このカテゴリはenableDnsHostnames 属性が true に設定されている場合にのみ返されます。詳細についてはAmazon VPC ユーザーガイドの「[DNS attributes for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)」(VPC の DNS 属性) を参照してください。インスタンスにパブリック IPv6 アドレスのみがあり、パブリック IPv4 アドレスがない場合、この項目は設定されず、HTTP 404 応答が返されます。 |  2011-01-01 | 
|  network/interfaces/macs/{{mac}}/public-ipv4s  | インターフェイスに関連付けられたパブリック IP アドレスまたは Elastic IP アドレス。インスタンスには複数の IPv4 アドレスが存在する場合があります。 | 2011-01-01 | 
| network/interfaces/macs/{{mac}}/security-groups  | ネットワークインターフェイスが属するセキュリティグループ。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/security-group-ids  | ネットワークインターフェイスが属するセキュリティグループの ID。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/subnet-id  | インターフェイスが存在するサブネットの ID。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/subnet-ipv4-cidr-block  | インターフェイスが存在するサブネットの IPv4 CIDR ブロック。 | 2011-01-01 | 
| network/interfaces/macs/{{mac}}/subnet-ipv6-cidr-blocks  | インターフェイスが存在するサブネットの IPv6 CIDR ブロック。 | 2016-06-30  | 
|  network/interfaces/macs/{{mac}}/vpc-id  | インターフェイスが存在する VPC の ID。 | 2011-01-01 | 
| network/interfaces/macs/{{mac}}/vpc-ipv4-cidr-block | VPC のプライマリ IPv4 CIDR ブロック。 | 2011-01-01 | 
| network/interfaces/macs/{{mac}}/vpc-ipv4-cidr-blocks | VPC の IPv4 CIDR ブロック。 | 2016-06-30  | 
| network/interfaces/macs/{{mac}}/vpc-ipv6-cidr-blocks | インターフェイスが存在する VPC の IPv6 CIDR ブロック。 | 2016-06-30  | 
|  placement/availability-zone | インスタンスが起動した利用可能ゾーン。 | 2008-02-01 | 
|  placement/availability-zone-id | インスタンスが起動される静的アベイラビリティーゾーンの ID。このアベイラビリティーゾーン ID はアカウント間で一貫しています。ただし、アベイラビリティーゾーンとは異なる場合があります (アベイラビリティーゾーンはアカウントによって異なります)。 | 2019-10-01 | 
|  placement/group-name  | インスタンスが起動されるプレイスメントグループの名前。 | 2020-08-24 | 
|  placement/host-id  | インスタンスが起動されるホストの ID。専用ホスト にのみ適用されます。 | 2020-08-24 | 
|  placement/partition-number  | インスタンスが起動されるパーティションの番号。 | 2020-08-24 | 
|  placement/region  | インスタンスが起動される AWS リージョン。 | 2020-08-24 | 
|  product-codes  | インスタンスに関連付けられた AWS Marketplace 製品コード (ある場合)。 | 2007-03-01 | 
|  public-hostname  | インスタンスのパブリック DNS (IPv4)。このカテゴリはenableDnsHostnames 属性が true に設定されている場合にのみ返されます。詳細についてはAmazon VPC ユーザーガイドの「[DNS attributes for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)」(VPC の DNS 属性) を参照してください。インスタンスにパブリック IPv6 アドレスのみがあり、パブリック IPv4 アドレスがない場合、この項目は設定されず、HTTP 404 応答が返されます。 | 2007-01-19 | 
|  public-ipv4  | パブリック IPv4 アドレス。インスタンスに Elastic IP アドレスが関連付けられている場合、返される値は Elastic IP アドレスです。 | 2007-01-19 | 
|  public-keys/0/openssh-key  | パブリックキー。インスタンスの起動時に指定された場合のみ返されます。 | 1.0 | 
|  ramdisk-id  | 起動時に指定された RAM ディスクの ID (該当する場合)。 | 2007-10-10 | 
|  reservation-id  | 予約の ID。 | 1.0 | 
|  security-groups  | インスタンスに適用されるセキュリティグループの名前。<br />起動後、インスタンスのセキュリティグループを変更できます。これらの変更はこの場所と network/interfaces/macs/*{{mac}}*/security-groups に反映されます。 | 1.0 | 
|  services/domain  | リージョンのAWSリソースのドメイン。 | 2014-02-25 | 
|  services/partition  | リソースが置かれているパーティションです。標準の AWS リージョンの場合、パーティションは `aws` です。他のパーティションにリソースがある場合、パーティションは `aws-{{partitionname}}` です。例えば、中国 (北京) リージョンにあるリソースのパーティションは`aws-cn` です。 | 2015-10-20 | 
|  spot/instance-action  | アクション (休止、停止、または終了) およびアクションのおよその発生時刻 (UTC)。この項目が存在するのはスポットインスタンスが休止、停止、または終了のためにマークされた場合のみです。詳細については[instance-action](spot-instance-termination-notices.md#instance-action-metadata)を参照してください。 | 2016-11-15 | 
|  spot/termination-time  | スポットインスタンスで使用しているオペレーティングシステムが、シャットダウン信号を受信するおよその時刻 (UTC)。この項目はスポットインスタンスに対し Amazon EC2 による終了のマークが付けられている場合にのみ存在し、時刻値 (例えば 2015-01-05T18:02:00Z) が含まれます。ユーザー自身がスポットインスタンスを終了した場合、termination-time 項目に時刻は記述されません。詳細については[termination-time](spot-instance-termination-notices.md#termination-time-metadata)を参照してください。 | 2014-11-05 | 
| system | インスタンスの基盤となる仮想化タイプ (ハイパーバイザー) | 2022-09-24 | 
| tags/instance | インスタンスに関連付けられるインスタンスタグ。インスタンスメタデータのタグへのアクセスを明示的に許可した場合のみ使用できます。詳細については[インスタンスメタデータ内のタグへのアクセスを有効にする](work-with-tags-in-IMDS.md#allow-access-to-tags-in-IMDS) を参照してください。 | 2021-03-23 | 

## 動的データのカテゴリ
<a name="dynamic-data-categories"></a>

次の表は動的データのカテゴリをまとめたものです。


| Category | 説明 | カテゴリがリリースされたときのバージョン | 
| --- | --- | --- | 
| fws/instance-monitoring  | 顧客が CloudWatch で詳細な 1 分間隔のモニタリングを有効にしているかどうかを示す値。有効な値: enabled \| disabled | 2009-04-04 | 
| instance-identity/document  | インスタンス ID、プライベート IP アドレスなど、インスタンスの属性を含む JSON。[Amazon EC2 インスタンスのインスタンスアイデンティティドキュメント](instance-identity-documents.md)を参照してください。 | 2009-04-04 | 
| instance-identity/pkcs7  | 署名に対してドキュメントの真正性およびコンテンツを確認するために使用されます。[Amazon EC2 インスタンスのインスタンスアイデンティティドキュメント](instance-identity-documents.md)を参照してください。 | 2009-04-04 | 
| instance-identity/signature  | オリジンおよび権限を確認するために使用できるデータ。[Amazon EC2 インスタンスのインスタンスアイデンティティドキュメント](instance-identity-documents.md)を参照してください。 | 2009-04-04 | 