[新機能]Launch Templates for Amazon EC2 instancesを試してみた #reinvent

はじめに

こんにちは、佐伯です。私も日本にいます。なんだかみんな楽しそうなので来年はre:Invent行きたいという気持ちが強くなっています。

今回は以下エントリで紹介された、Launch Templatesを試してみたいと思います。

【速報】新機能 Launch Templates for Amazon EC2 instancesが公開されました #reinvent

AWSドキュメント

英語のみとなりますが、以下がドキュメントとなります。

Launching an Instance from a Launch Template - Amazon Elastic Compute Cloud

やってみた

さくっとテンプレートを作ってEC2を作成してみます。

テンプレートの作成

EC2マネジメントコンソールに[Launch Templates]が追加されているので、まず[Create launch template]からテンプレートを作成します。

Create launch templates

テンプレート名と必要に応じてバージョンの説明を設定します。

Launch template contents

テンプレートの各パラメータを入力します。テンプレートで設定したパラメータはEC2インスタンス作成時に設定することもできるので、頻繁に変更がないパラメータをテンプレート化する形になると思います。

AMI IDやインスタンスタイプ、キーペアのパラメータを設定します。

Network Interface

ENIは2つまで追加できるようです。特に設定しなければ、デフォルトでプライマリネットワークインタフェースがひとつ作成されます。

Storage

AMIに含まれるルートボリューム以外を追加したい場合は設定します。

Tags

EC2インスタンスとEBSボリュームのタグを設定できます。

Security groups

EC2インスタンスにアタッチするセキュリティグループIDを入力します。

Advanced details

必要に応じでIAMロールや削除保護、ユーザーデータなどを設定できます。

テンプレートからEC2インスタンス作成

[Launch instance from template]からEC2を作成します。

先程設定したテンプレートを選択し、作成するEC2インスタンス数を入力します。EC2インスタンスを作成するサブネットIDを入力します。ここでサブネットIDを入力しないとデフォルトVPCのサブネットにEC2インスタンスが作成されます。(違うVPCのセキュリティグループが設定されてるって何度か怒られました。)

また、その他の設定をEC2インスタンス作成時に変更することも可能です。ここでの変更はテンプレート設定の変更ではないので頻繁に変更がない項目であればテンプレートを更新しましょう。

[Launch instance from template]をクリックするとEC2インスタンスが作成されます。作成されたEC2インスタンスにはaws:ec2launchtemplate:idaws:ec2launchtemplate:versionというタグにテンプレートIDとテンプレートバージョンが設定されてます。

テンプレートの更新

「更新」と書きましたが新しいバージョンのテンプレートを作成するが正確な表現です。作成済みのテンプレートを元に新しいバージョンのテンプレートを作成できます。

作成時と同じく[Create launch template]からテンプレートを作成します。[Create a new template version]を選択、元となるテンプレートのテンプレート名とバージョンを入力し、変更したい項目を入力のうえテンプレートを作成します。

テンプレートからEC2インスタンス作成時にテンプレートのバージョンを設定しなかった場合、デフォルトバージョンが参照されてEC2インスタンスが作成されてしまうので、デフォルトバージョンを変更します。

[Set default version]をクリックします。

[Default version]でさきほど作成したバージョンを選択します。

Default versionが変更され、バージョンが指定されなかった場合でも新しく作成したテンプレートバージョンからEC2インスタンスが作成されます。

まとめ

テンプレートをきっちり決めてしまえば、EC2インスタンスの作成オペレーションを簡略化できますね!もちろんAWS CLIを用いてテンプレートからEC2インスタンスを作成することもできますので、これまでAWS CLIで運用されていた場合は、多くのオプションを省くことができ運用面でメリットがあるかもしれません。