2016-07-07 8 views
0

「ユーザーデータスクリプトとクラウド初期設定ディレクティブは、インスタンスが起動されたときの最初の起動サイクルの間だけ実行されます。 aws cloudinitとuserdataのドキュメント。cloudinitサービスは、インスタンスを起動するときに最初の起動サイクルでのみ実行されますか?

これは混乱しています。インスタンスを起動するときにパブリックIPを添付しないと、userdataで定義されたパケットが最初の起動時にインストールされないように見えますインスタンスは現在インターネットにアクセスすることができません。

新しいEIPをインスタンスに関連付けてリブートしたとします。インスタンスが再度userdataを実行しますか?

私はそれを試しましたが、EIPをインスタンスに追加して再起動した後、もう一度userdataを実行しようとしました。しかし、それはインターネットにアクセスできるので、予期せずすべてのパケットを再びインストールすることに失敗しました。

誰でも私がこれについて把握するのに役立つでしょうか?ありがとう。

私は上記の文章は、リンクブローを参照してください。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

+0

正しく実行するには、ユーザーデータスクリプトにインターネットアクセスが必要ですか? –

+0

はい、私はwget、python-pipをuserdata設定のパケット項目の下に置きます。これはユーザーとcloudinitサービスの間のインターフェースになっていました。インスタンスを起動するときにパブリックIPが有効になっていないと、インスタンスを再起動した後にEIPを追加しても必ずyumソースに接続できませんでした。それでも動作しませんでした。 – Jepsenwan

答えて

1

AWSのドキュメントに記載されているように、インスタンスのユーザデータのみインスタンスの最初の起動時に実行された[1]。ユーザーデータスクリプトがネットワーク接続を必要とする場合、スクリプトは必要に応じて実行されません。これが問題であり、ユースケースで可能な場合は、カスタムAMIを使用してインスタンスを事前設定することを検討する必要があります。カスタムAMIを使用することで、ユーザーデータステップをスキップして、成功した実行に依存する必要がなくなります(インスタンスのプロビジョニング速度も向上します)。

[1] http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

関連する問題