Amazon EC2 インスタンスをすでに起動していますが、もう一度ユーザーデータを実行します。どのようにすればよいですか?

Amazon EC2 インスタンスに含まれているメタデータの一部として、ユーザーデータを使用してパッケージやスクリプトをインストールすることができます。デフォルトでは、ユーザーデータはインスタンスの最初の起動時に1度実行されます。

たとえば、SSH プライベートキーが失われてインスタンスにログインできないなど、ユーザーデータを2度に実行することによってメリットを得る状況があります。インスタンスを修復するには、AMI を作成するか、トラブルシューティングのためにボリュームを別のインスタンスへアタッチすることを含む可能性があります。それが推奨メソッドであるという状況もあります。ただし、代替メソッドはいくつかのコマンドで解決することができます。

注:続行する前にデータをバックアップします。詳細については、「Amazon EC2 のベストプラクティス」 を参照してください。

さらに続行する前にデータをバックアップしてください。インスタンスの最初の起動以降にユーザーデータを実行できるというセキュリティの影響を検討することをお勧めします。インスタンスのユーザーデータを変更するには、ModifyInstanceAttribute APIを使用します。

注:この方法を制限するためにIAMポリシーを作成できます。

  1. Amazon EC2コンソールで、インスタンスを選び、[Actions]、[Instance State]を選択し、[Stop]をクリックします。
  2. [Actions]を選択、次に[Instance Settings]を選択し、[View/Change User Data]をクリックします。
  3. 次の例は、 "Hello World"を/ tmpディレクトリのファイルに書き込むシェルスクリプトです。[User data] フィールドにコピー&ペーストし、[Save] を選択します。
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "Hello World." >> /tmp/sdksdfjsdlf
--//

[Actions]、[Instance State]、及び[Stop]をクリック。

cloud-initフェーズの完了後、含まれているユーザー データ コマンドがインスタンスで実行されているはずです。


このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2017 年 08 月 11 日