答えは、提供される機能が完全にAMIに依存するため、実行しているAMIに少し依存します。
Amazon Linux AMISおよび公式のUbuntu AMIには、cloud-initパッケージがインストールされています。これには起動アクションをトリガできる方法がいくつかありますが、私が考案したので私のお気に入りであるあなたの要求に最も近いものはuser-data scriptのコンセプトです。
EC2インスタンスを起動するときに、任意のスクリプト(2文字の#!で始まる)をユーザーデータとして渡すことができます。インスタンスの最初の起動時にrootとして実行されます。これがどのように動作するかの具体的な例
は、私は私の最近の記事で、この正確なテクニックを使用します。
Uploading Known ssh Host Key in EC2 user-data Script
ます。また、同じスクリプトで複数のEC2インスタンスを実行したかったです。 ec2-run-instancesコマンド、関連するAPIとWebコンソールでは、同じユーザーデータで開始する任意の数のインスタンスを指定できます。たとえば、次のように
ec2-run-instances \
--instance-count 10 \
--user-data-file $MYSCRIPT \
--key $USER \
$SOMEAMI
あなたは現在、クラウド-initがインストールされていないこと、あなたがのいずれかの操作を実行できAMIを実行している場合:クラウド-initをインストールしたAMIへ
SOの良い点の1つは、あなたがいくつかのポインタを見つけ始める頃に、あなたのすべてのGoogleクエリに名前が表示され始める人があなたの質問に個人的に答えたということです。素晴らしい:-) –
私は上記の答えのオプション3を避けるだろう。私はこのアプローチで2つの異なる落とし穴に遭遇しました。 1)インスタンスに以前に見たIPアドレスがあり、known_hostsエントリが一致しません。 2)すべてのインスタンスと起動スクリプトをアップロードして制御するマシンが過負荷になり、不具合が発生する – Nate
SOのベストクォート:「私が発明したために私のお気に入り」 –