既存EC2をベースに起動テンプレートを作る
EC2起動テンプレートの作り方
Contents
前提条件
- 既存のEC2から取得した構成情報をベースに、起動テンプレートを作る方法を紹介します。
- 今回の操作には、aws cli、vi を使います。私の実行環境は、Windows Subsystem for Linuxにインストールしたaws cli を使用しています。
- Windows Subsystem for Linuxのインストール方法、aws cli のインストール方法は、下記の記事を参考にしてください。
既存EC2から構成情報を取得する
ec2 describe-instancesを使ったEC2の確認
- 起動テンプレートのベースになるEC2を確認します。
$ aws ec2 describe-instances --instance-ids i-0a3d4cf56d0b0abcd
{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
"ImageId": "ami-012ab123456789012",
"InstanceId": "i-0a3d4cf56d0b0abcd",
"InstanceType": "t3.nano",
** snip **
ec2 get-launch-template-dataを使った構成情報の取得
- EC2から構成情報を取得します。
$ instance_id=i-0a3d4cf56d0b0abcd
$ ec2tag=niikawa-test-win1
$ aws ec2 get-launch-template-data --instance-id ${instance_id} > instance-data_${ec2tag}_${instance_id}.json
構成情報を編集してシンプル化する
viエディタを使ってシンプル化
- ベースとなるEC2の構成情報から不要な情報を削除して、シンプル化します。
- 私の場合、下記編集をしています。
- EBSの"SnapshotId"を削除
- NetworkInterfacesの"Description"、"Ipv6Addresses"、"PrivateIpAddresses"のブロック、"SubnetId"を削除
- “ImageId"を削除(但し、起動テンプレート作成後追記必要となる)
- “Placement"のブロックを削除("AvailabilityZone"、"GroupName"、"Tenancy")
- 必要に応じて、TagSpecificationsの"Tags"をカスタマイズ
$ vi instance-data_niikawa-test-win1_i-0a3d4cf56d0b0abcd.json
構成情報をベースに起動テンプレートを作る
ec2 create-launch-templateを使った起動テンプレート作成
- シンプル化した構成情報を元に起動テンプレートを作成します。
$ aws ec2 create-launch-template --launch-template-name niikawa-test-win1-template --cli-input-json file://instance-data_niikawa-test-win1_i-0a3d4cf56d0b0abcd.json
{
"LaunchTemplate": {
"LaunchTemplateId": "lt-0ea89491a563f94c8",
"LaunchTemplateName": "niikawa-test-win1-template",
"CreateTime": "2019-08-04T22:41:20.000Z",
"CreatedBy": "arn:aws:iam::111122223333:user/niikawa1",
"DefaultVersionNumber": 1,
"LatestVersionNumber": 1
}
}
AWSコンソールを使った起動テンプレートの更新
起動テンプレートが作成されたことをチェック
- 先ほどaws cli で作成した起動テンプレートが作成でき、AMI のID が空であること、その他指定した情報(インスタンスタイプ、キーペア等)が反映されていることを確認します。
起動テンプレートのAMIを更新する
- 起動テンプレートで起動するためのAMIのIDを指定して、起動テンプレートのバージョンを更新します。
- 「起動テンプレートバージョンの作成」を選択し、起動テンプレート名を選びます。
- 必ず、「ソーステンプレートのバージョン」からバージョンを選択します。これ大事です。
- 構成情報をシンプル化した時に削除した「AMI ID」にAMIのIDを入力します。
- その他に更新する構成情報があれば追加して、更新します。