[トップページ] [FAQ 一覧]

対象:AMI

AMI(Amazon Machine Image) を初期化するシェルを設定する2通りの方法





AMIを初期化するコードを設定する


AMI から Windows インスタンスを起動(新規生成)する場合、ホスト名を変更したり、DNSサーバの設定を行ったり、アプリケーションをインストールしたりなど様々な処理を行いたい場合があるでしょう。そんな場合に何らかのシェルをインスタンスに私、さらにそのシェルを実行する必要があります。(WindowsではPowerShellで記載するのがよいでしょう)

様々な方法がありますが何通りか紹介します。


ユーザデータで渡す


インスタンスを生成するときにユーザデータとして実行するシェルを渡すことが可能です。

"aws ec2 run-instances"の場合

"--user-data" (string)

The user data to make available to the instance. For more
information, see Running Commands on Your Linux Instance at Launch
(Linux) and Adding User Data (Windows). If you are using a command
line tool, base64-encoding is performed for you, and you can load
the text from a file. Otherwise, you must provide base64-encoded
text. User data is limited to 16 KB.




New-EC2Instance

[-UserDataFile <System.String>] [-EncodeUserData <System.Management.Automation.SwitchParameter>]




(注意1)起動(生成)済みのインスタンスに設定する場合は設定そのものは可能ですが、既に初期化済みなので実行されません。<persist>true</persist> オプションを設定すると実行されますが、逆に毎回実行されてしまいます。

(注意2)イメージにユーザデータを設定して AMI 化しましたが、ユーザデータは削除されてしまいました。


イメージにシェルを埋め込み




AMIに事前にシェル本体を埋め込み、ユーザデータにそのシェルを実行するコードを埋め込むことでも可能です。

例えば AMI の "C:\InitializeScript\ConfigEnviroment.ps1"  に初期化データを設定します。

そしてユーザデータから以下のようにこのシェルを呼び出します。


<Powershell>
C:\InitializeScript\ConfigEnviroment.ps1
</Powershell>




【超重要】本ページは2019/07/16に記載されました。情報が古くなっている可能性があります。




[ 一覧に戻る]


【注意事項】本ページの内容は個人的に調査した結果がであり内容が正しいことは保証されません。
またAWSサービスは常に改良、アップデートされており本ページの内容が古く誤った内容になる可能性もあります。変更になっても本ページが正しく更新されるとは限りません。
あくまでも参考程度でご覧ください。内容により発生したいかなる時間的損害、金銭的損害、その他の損害に関しても何人も保証しません。