解決策 1:
ec2-run-instances
に user-data オプションを使用することをお勧めします .これにより、初回起動時に実行される何らかのスクリプトを VM に与えることができます。 ubuntu または debian を使用している場合は、cloud-init を使用できます。これにより、プロセスが洗練されます。 cloud-init を使用している場合は、[runcmd]
を使用できます 構成ファイルのセクションで、起動後に実行する任意のコマンドを指定します。
ユーザーデータページを提供してくれた SF ユーザーの Eric Hammond に感謝します。彼のサイトをチェックしてください - AWS に関する豊富な情報があります。
編集:再読後、最初の起動時にコマンドを実行するか、起動するたびにコマンドを実行するかは明確ではありません。上記の手順は、最初の起動にのみ適用されます。起動のたびにコマンドを実行したい場合、いくつかのオプションがあります - @reboot
経由でコマンドを実行できます cron ディレクティブ、または代わりにスクリプトを /etc/rc.local
に追加できます 、システムが起動するたびに実行されます。
解決策 2:
cloud-init
を持つ AMI を使用していた場合 パッケージがインストールされている場合 (Amazon Linux や Ubuntu など)、bash スクリプト (#! で始まる) をユーザー データ ファイルとして渡すだけで、ブート プロセスの最後に自動的に実行されます。
たとえば、次のように簡単にできます:
ec2-run-instances \
--user-data-file /home/root/beginProcess.sh \
--key $USER \
ami-XXXXXXXX
Amazon Linux や Ubuntu などの主要な EC2 AMI で利用できるユーザーデータ スクリプトの概念を紹介した記事は次のとおりです:http://alestic.com/2009/06/ec2-user-data-scripts
残念ながら、RHEL AMI を使用したいようです。そのコピーを実行したところ、最初の起動時に cloud-init または実行中のユーザーデータ スクリプトへの参照が見つかりませんでした。また、同じ作業のテストも行われませんでした。
このためだけに Linux ディストリビューションを切り替える必要があると言っているわけではありませんが、Amazon Linux は RHEL に基づいているため、うまくいく可能性があります。
初めて機能しない場合に、ユーザー データ スクリプトをデバッグするのに役立つ記事を次に示します:http://alestic.com/2010/12/ec2-user-data-output