概要
CloudFormation入門 - juve534のブログ
でCloudFormationに入門したのでその続き。 今回は値を動的にする方法を学びました。
内容
前回作ったものは値が動的になっており、そのまま使い回しができない状態になっています。
AWSTemplateFormatVersion: '2010-09-09'
Resources:
FirstVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
これはVPCなので、ピンと来ないかもしれません。 では、EC2で見てみましょう。
FirstEC2:
Type: AWS::EC2::Instance
Properties:
InstanceType: 't2.micro'
SecurityGroupIds:
- !GetAtt FirstSecurityGroup.GroupId
SubnetId: !Ref FrontendSubnet
ImageId: 'ami-id'
KeyName: '鍵名'
このテンプレートでいうと、AMIのIDやsshで使う鍵は動的にしたいと思いました。
また、Git等のバージョン管理に上げるときに、隠したいとも思います。
なので、Parametersを使って動的にします。
Parameters:
# SSH用キーペアの指定
KeyPair:
Description: KeyPair Name
Type: AWS::EC2::KeyPair::KeyName
AmiId:
Description: AMI ID
Type: AWS::EC2::Image::Id
FirstEC2:
Type: AWS::EC2::Instance
Properties:
InstanceType: 't2.micro'
SecurityGroupIds:
- !GetAtt FirstSecurityGroup.GroupId
SubnetId: !Ref FrontendSubnet
ImageId: !Ref AmiId
KeyName: !Ref KeyPair
Parametersには2つ定義を作りました。
KeyPairはコンソール上でいくつか作っていたので、既存のものを流用しています。
AMIも同様にいくつか作っていたので、流用できるようにしました。
これで、CloudFormationのコンソール上からテンプレートをアップし、Parameterを定義しました。
目論見通り、動的に値を変えられました。
まとめ
Parametersを使うことで、値を動的に変更できる。
テンプレートを使い回しに有効そうでした。