この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
西澤です。AWSサービスのアップデート情報のキャッチアップをしていた中で、以前に書いた記事が、非常に簡単にスマートに実装できるようになっていたことに気付いたのでご紹介したいと思います。
最新のAMIを利用する為の戦いの記録
以前に書いた記事は下記のものです。
その他、色々な方が似たようなことで苦しんでいるところも合わせてご確認ください。
最新のWindows AMIはパラメータストアから簡単に取得できるようになっていた
そして、アンサーブログは、中山順博さんが書かれたこちらの記事。
もうLambdaで最新のAMI IDを取得する処理を書く必要も無いですし、CloudFormationをネストするようなややこしいことをする必要も無くなっていました。
最新のWindows AMIからEC2を起動するCloudFormationテンプレートサンプル
前回書いた記事では試行錯誤して苦労した記憶があったのですが、非常に簡単に短時間で用意することができました。逆に言うと、簡単に用意できるので、あまり需要がないかもしれませんが、一応私が試したサンプルテンプレートをご紹介しておきます。
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Launch from Latest Windows AMI Template
Parameters:
WindowsLatestAmi:
Type : AWS::SSM::Parameter::Value<String>
Default: /aws/service/ami-windows-latest/Windows_Server-2016-Japanese-Full-Base
AllowedValues:
- /aws/service/ami-windows-latest/Windows_Server-2008-R2_SP1-Japanese-64Bit-Base
- /aws/service/ami-windows-latest/Windows_Server-2012-R2_RTM-Japanese-64Bit-Base
- /aws/service/ami-windows-latest/Windows_Server-2016-Japanese-Full-Base
VPC:
Type: AWS::EC2::VPC::Id
Description: VPC ID
Subnet:
Type: AWS::EC2::Subnet::Id
Description: Subnet ID
KeyName:
Type: AWS::EC2::KeyPair::KeyName
Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
EC2SecurityGroup:
Type: List<AWS::EC2::SecurityGroup::Id>
Description: SecurityGroupId to attach
InstanceType:
Type: String
Default: t2.medium
Description: EC2 Instance Type.
EC2Tag:
Type: String
Default: wintest
Description: Name Tag for EC2 Instance.
Resources:
EC2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType: !Ref InstanceType
KeyName: !Ref KeyName
SubnetId: !Ref Subnet
ImageId: !Ref WindowsLatestAmi
SecurityGroupIds: !Ref EC2SecurityGroup
Tags:
- Key: Name
Value: !Ref EC2Tag
AMI IDの検索などせずに非常に簡単にWindowsサーバを用意することができます。ぜひお試しいただければと思います。
まとめ
前回苦労して検証をしてようやく動いたCloudFormationテンプレートが、ここまですっきり簡単に書けるようになるとは本当に驚きました。Lambdaを書いて動かすのも楽しいのですが、本来の目的の為に必要な作業は少ないに越したことはありません。便利に使えるパブリックなパラメータストアが他にも増えていくと嬉しいですよね。進化を続けるAWSにさらに期待したいです。
どこかの誰かのお役に立てば嬉しいです。