1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CloudFormation の パラメータについて整理しよう

Posted at

基本の書き方

次の例では、InstanceTypeParameter というパラメータです。
デフォルトではt2.micro、他にm1.small m1.largeのインスタンスタイプを指定できるようになります。

Parameters:
  InstanceTypeParameter:
    Type: String
    Default: t2.micro
    AllowedValues:
      - t2.micro
      - m1.small
      - m1.large
    Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro.

上記を参照するには、Ref関数で、InstanceTypeParameter パラメータを指定するだけです。

Ec2Instance:
  Type: AWS::EC2::Instance
  Properties:
    InstanceType:
      Ref: InstanceTypeParameter
    ImageId: ami-0ff8a91507f77f867

プロパティ

プロパティ 説明
AllowedPattern String 型に使用できるパターンを表す正規表現
AllowedValues パラメーターに許容される一連の値を含む配列
ConstraintDescription 制約が違反された場合に、制約について説明するエラーメッセージ
Default スタックの作成時に値を指定しなかった場合に、テンプレートで使用される適切な値
Description パラメータの説明
MaxLength String 型に使用できる最大文字数
MaxValue Number 型に使用できる数値の最大数
MinLength String 型に使用できる最少文字数
MinValue Number 型に使用できる数値の最小数
NoEcho パラメータ値をマスクする

Type

Type には次のようなもの指定できます。

Type 説明
String 文字列 dev
Number 数値 8888
List カンマで区切られた整数または浮動小数点値の配列 1,2
CommaDelimitedList カンマで区切られた文字列の配列 dev,prod
AWS 固有のパラメータタイプ ※後述
SSM パラメータータイプ ※後述

AWS 固有のパラメータタイプ

Type 説明
AWS::EC2::AvailabilityZone::Name AZ us-west-2a
AWS::EC2::Image::Id EC2 イメージ ID ami-0ff8a91507f77f867
AWS::EC2::Instance::Id EC2 インスタンス ID i-1e731a32
AWS::EC2::KeyPair::KeyName Amazon EC2 のキーペア名
AWS::EC2::SecurityGroup::GroupName セキュリティグループ名 my-sg-abc など
AWS::EC2::SecurityGroup::Id セキュリティグループ ID sg-a123fd85
AWS::EC2::Subnet::Id サブネット ID subnet-123a351e
AWS::EC2::Volume::Id Amazon EBS ボリューム ID vol-3cdd3f56
AWS::EC2::VPC::Id VPC ID vpc-a123baa3
AWS::Route53::HostedZone::Id Route 53 ホストゾーン ID Z23YXV4OVPL04A
ListAWS::EC2::AvailabilityZone::Name リージョンのAZの配列 us-west-2a, us-west-2b
ListAWS::EC2::Image::Id EC2 イメージ ID の配列 ami-0ff8a91507f77f867, ami-0a584ac55a7631c0c など
ListAWS::EC2::Instance::Id EC2 インスタンス ID の配列 i-1e731a32, i-1e731a34 など
ListAWS::EC2::SecurityGroup::GroupName セキュリティグループ名の配列 my-sg-abc, my-sg-def など
ListAWS::EC2::SecurityGroup::Id セキュリティグループ ID の配列 sg-a123fd85, sg-b456fd85 など
ListAWS::EC2::Subnet::Id サブネット ID の配列 subnet-123a351e, subnet-456b351e など
ListAWS::EC2::Volume::Id EBS ボリューム ID の配列 vol-3cdd3f56, vol-4cdd3f56 など
ListAWS::EC2::VPC::Id VPC ID の配列 vpc-a123baa3, vpc-b456baa3 など
ListAWS::Route53::HostedZone::Id Route 53 ホストゾーン ID の配列 Z23YXV4OVPL04A, Z23YXV4OVPL04B など

以下の例では、AWS::EC2::KeyPair::KeyName および AWS::EC2::Subnet::Id の型の 2 つのパラメーターが宣言されています。
これらの型では、有効な値は既存のキーペア名およびサブネット ID に制限されます。
mySubnetIDs パラメーターはListなので、ユーザーは 1 つ以上のサブネット ID をリストから指定するということになります。

Parameters: 
  myKeyPair: 
    Description: Amazon EC2 Key Pair
    Type: "AWS::EC2::KeyPair::KeyName"
  mySubnetIDs: 
    Description: Subnet IDs
    Type: "List<AWS::EC2::Subnet::Id>"

SSM パラメータタイプ

Type 説明 詳細
AWS::SSM::Parameter::Name Systems Manager パラメーターキーの名前 パラメーターキーを渡す場合は、このパラメーターを使用
AWS::SSM::Parameter::Value 値が文字列の Systems Manager パラメーター パラメーターストア内の String パラメータータイプに対応
AWS::SSM::Parameter::Value> 、、または AWS::SSM::Parameter::Value 値が文字列のリストである Systems Manager パラメーター パラメーターストア内の StringList パラメータータイプに対応
AWS::SSM::Parameter::Value 値が AWS 固有のパラメータタイプである Systems Manager パラメータ (例)AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>
AWS::SSM::Parameter::Value> 値が AWS 固有のパラメータタイプのリストである Systems Manager パラメータ (例)AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>

CloudFormation のパラメータを Systems Manager パラメータから取得する。使い方は以下の記事がわかりやすい。

CloudFormation コンソールでのパラメーターのグループ化およびソート

CloudFormation コンソールを使用してスタックを作成または更新すると、コンソールに論理 ID により入力パラメーターがアルファベット順に並べられてリストされる。
AWS::CloudFormation::Interface メタデータキーを使用すれば、パラメーターをグループ化および順序付けすることができる。

使い方は以下の記事で紹介されている「Metadata を使って入力パラメータを見やすく管理する」がわかりやすい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?