Amazon Linux起動時にCloudInitで設定するもの

この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。
          こんにちは!AWSチームの柳瀬です!

どうやら最近弊社のエンジニアブログで何かあったみたいですが、後日談はご本人にお任せするとしましょうか

というわけで、私はEC2インスタンスを起動する時に設定を自動化出来るCloudInitについて書きたいと思います。
CloudInitはもともとUbuntuが由来のソフトウェアですが、Amazon Linuxでも標準でインストールされており、起動時に指定したUserDataから初期設定を自動化することが出来ます。
インスタンスの自動構成だとChefやPuppetが有名ですが、簡単なものなら記述方法がシンプルなCloudiInitも便利です。 UserDataはインスタンスを起動するときに、以下の部分にテキストを貼付けると指定が出来ます。
また、ec2-apitoolsのec2-run-instancesコマンドを使用する場合は-f(--user-data-file)を使用してテキストファイルからUserDataを指定する事も可能です。
その場合のコマンド実行例は以下のようになります。

具体的に指定するUserDataですが、私は以下のように指定する事が多いです。 ※設定した内容は以下の表をご覧ください。 2行目yum updateを実行するオプションになります。 Amazon Linuxはデフォルトでsecurityが指定されておりますが、私はほとんど最新にしてしまうので、"repo_upgrade: all"を指定します。
行数内容
1行目CloudInitでUserDataを使用する場合は1行目にこのように記述します。
3行目以下の行が起動後に実行するコマンドである事を指示します。
4行目タイムゾーンの設定をしています。
※Amazon LinuxのデフォルトはUTC
5行目ec2-run-instancesコマンドの-b(--block-device-mapping)オプションでルートデバイス(EBS)を拡張した場合に、ファイルシステムのサイズを変更しています。
各種パッケージのインストール場合は以下のようにご指定下さい。 ちなみにUbuntu11.10にインストールされているCloudInitですと以下のように指定する事も出来ます。 Cloudinitを使用するとログインする事なく設定が出来ますし、作業漏れを防げるので重宝しますよ:-)

AWS運用自動化サービス「Cloud Automator」無料トライアルはこちらから

CATEGORY :

COMMENT ON FACEBOOK