CloudFormationで値を動的にする
概要
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を使うことで、値を動的に変更できる。
テンプレートを使い回しに有効そうでした。