インスタンスユーザーデータの使用
インスタンスユーザーデータを使用してインスタンスをカスタマイズできます。インスタンスを起動すると、パラメータやスクリプトをユーザーデータとして保存できます。ユーザーデータのスクリプトは、インスタンスを起動すると実行されます。ユーザーデータはインスタンス属性として表示できます。インスタンスメタデータサービス (IMDS) を使用して、インスタンスのユーザーデータを表示することもできます。
考慮事項
-
ユーザーデータは非透過的なデータとして取り扱われ、指定したデータがそのまま返されます。インスタンスによって解釈が異なります。
-
ユーザーデータは、base64 でエンコードされている必要があります。Amazon EC2コンソールは、base64 エンコードを実行したり、base64 エンコード入力を受け入れたりできます。
-
ユーザーデータは raw 形式の 16 KB に制限されます (以前は base64 エンコード)。base64 エンコード後の 文字列の長さサイズ n は、ceil(n/3)*4 です。
-
ユーザーデータを取得するときにユーザーデータを base64 デコードする必要があります。インスタンスのメタデータあるいはコンソールを使用してデータを取得する場合、自動的にデコードされます。
-
インスタンスを停止してユーザーデータを変更した後に、インスタンスを起動した場合でも、更新されたユーザーデータは自動的には実行されません。ただし、インスタンスを起動するか、インスタンスを再起動または起動するたびに、更新されたユーザーデータスクリプトが 1 回実行されるように設定することができます。
-
ユーザーデータはインスタンス属性です。インスタンスから AMI を作成する場合、インスタンスのユーザーデータは AMI に含まれません。
起動時にインスタンスユーザーデータを指定する
インスタンスの起動時のユーザーデータを指定できます。コンソールの使用説明については、「起動時にインスタンスユーザーデータを指定する」を参照してください。Tools for Windows PowerShell の使用例については、「ユーザーデータと Tools for Windows PowerShell」を参照してください。
インスタンスユーザーデータを変更する
EBS ルートボリュームを持つインスタンスのユーザーデータを変更できます。インスタンスは停止状態である必要があります。コンソールの使用説明については、「インスタンスユーザーデータの表示と更新」を参照してください。Tools for Windows PowerShell の使用例については、「ユーザーデータと Tools for Windows PowerShell」を参照してください。
インスタンスからインスタンスユーザーデータを取得する
注記
このセクションの例では、IMDS の IPv4 アドレス 169.254.169.254
を使用します。IPv6 アドレスを使用して EC2 インスタンスのインスタンスメタデータを取得する場合は、IPv6 アドレスを有効にして使用してください。[fd00:ec2::254]
。IMDS の IPv6 アドレスは、IMDSv2 コマンドと互換性があります。IPv6 アドレスは、AWS Nitro System 上に構築されたインスタンスでのみアクセス可能です。
インスタンスからユーザーデータを取得するには、次の URI を使用します。
http://169.254.169.254/latest/user-data
ユーザーデータのリクエストは、データをそのままの状態で返します (コンテンツタイプ application/octet-stream
)。インスタンスにユーザーデータがない場合、リクエストは 404 - Not Found
を返します。
この例は、カンマで区切られたテキストとして指定されたユーザーデータを返します。
この例では、スクリプトとして指定されたユーザーデータを返します。
お使いのコンピュータからインスタンスのユーザーデータを取得する
自分のコンピュータからインスタンスのユーザーデータを取得できます。コンソールの使用説明については、「インスタンスユーザーデータの表示と更新」を参照してください。 Tools for Windows PowerShell の使用例については、「ユーザーデータと Tools for Windows PowerShell」を参照してください。