Linux EC2インスタンスのセットの起動を自動化したい。
基本的に、次のようなスクリプト/プログラムを作成します。
VMWareを使用して、通常はvmrunまたはVix SDKを使用します。
Amazon AWS/EC2のオプションは何ですか?
提供される機能は完全にAMIに依存しているため、答えは実行しているAMIに少し依存します。
Amazon Linux AMISおよび公式のUbuntu AMIには cloud-init パッケージがインストールされています。これには、起動アクションをトリガーする方法がいくつかありますが、リクエストに最も近いもの(そして、私が発明したので私のお気に入り)は ser-data script の概念です。
EC2インスタンスを起動するときに、ユーザーデータとして(2文字の#!で始まる)任意のスクリプトを渡すことができます。インスタンスの最初の起動時にrootとして実行されます。
これがどのように機能するかの特定の例については、最近の記事で次の正確な手法を使用します: EC2ユーザーデータスクリプトで既知のsshホストキーをアップロードする
また、同じスクリプトで複数のEC2インスタンスを実行したいと考えていました。 ec2-run-instancesコマンドと関連APIおよびWebコンソールを使用すると、同じユーザーデータで開始するインスタンスをいくつでも指定できます。例えば:
ec2-run-instances \
--instance-count 10 \
--user-data-file $MYSCRIPT \
--key $USER \
$SOMEAMI
現在cloud-initがインストールされていないAMIを実行している場合、次のいずれかを実行できます。
Cloud-initがインストールされているAMIに切り替える、または
Cloud-initがインストールされているAMIのカスタムバージョンをビルドする、または
起動後にすべてのインスタンスIDの記録を作成し、すべてのインスタンスが実行状態に移行するのを待ち、sshdが接続を受け入れるのを待って、各インスタンスに起動スクリプトをアップロードする、より複雑なラッパースクリプトを記述します、各インスタンスで起動スクリプトを実行します。
「cloud-init」でスクリプトを実行するチュートリアル AWS EC2が起動するたびに実行されます。
設定ファイル(AWS CentOS6)を設定し、
eC2の起動時にスクリプトを実行します
Linuxで設定ファイルを設定するには、 AWS Linuxでcloud-initを設定 を参照します。
私は個人的に AWS VPC/EBS を使用します。これはLinux AMIに基づいてセットアップされたもので、構成ファイルには何も触れませんでした/etc/cloud/cloud.cfg
しかし、私の cloud-initのブートスクリプト は正常に実行されます。