AWS CloudFormation(インフラ自動化)のパラメータの使い方とベストプラクティスを完全解説!初心者でもわかる
生徒
「AWS CloudFormationでパラメータってよく聞くんですが、何のために使うんですか?」
先生
「CloudFormationのパラメータは、テンプレートを使い回すための設定値の入れ物です。環境ごとに値を変えたいときに活躍します。」
生徒
「設定をあとから変えられるってことですか?」
先生
「その通りです。では、仕組みと使い方を順番に見ていきましょう。」
1. AWS CloudFormationパラメータとは?
AWS CloudFormationのパラメータとは、テンプレート実行時に外から値を渡すための仕組みです。インフラ自動化では、同じ構成でも開発環境や本番環境でインスタンスタイプや名前を変えたい場面が多くあります。そのときにパラメータを使うと、テンプレートを書き直さずに再利用できます。
例えるなら、電子レンジの「出力」や「時間」を毎回変えるダイヤルのようなものです。本体は同じでも、設定だけ変えて使えます。
2. パラメータを使うメリット
CloudFormationでパラメータを使う最大のメリットは、テンプレートの汎用性が高まる点です。複数環境で同じAWSリソース構成を使えるため、ミスが減り運用も楽になります。
また、数値や文字列を外から入力するため、初心者でも設定内容が分かりやすくなります。インフラ構成をコードで管理するInfrastructure as Codeの考え方とも相性が良いです。
3. CloudFormationテンプレートでの基本的な書き方
パラメータはテンプレート内のParametersセクションに定義します。YAMLやJSON形式で書けますが、ここでは読みやすいYAMLを例にします。
Parameters:
InstanceType:
Type: String
Default: t3.micro
Description: EC2インスタンスのタイプ
この例では、EC2のインスタンスタイプを外から指定できるようにしています。Defaultを設定しておくと、入力しなくても自動で値が入ります。
4. パラメータの主な型と使い分け
パラメータにはStringやNumberなどの型があります。文字を入力したい場合はString、数値を扱う場合はNumberを使います。
他にも、AWS::EC2::KeyPair::KeyNameのように、AWSリソース専用の型も用意されています。これを使うと、存在しない値を入力したときにエラーで教えてくれるため、安全です。
5. 実行時にパラメータを指定する方法
AWSマネジメントコンソールからCloudFormationスタックを作成すると、途中でパラメータ入力画面が表示されます。ここで値を入力するだけで設定が反映されます。
CLIを使う場合は、コマンドで指定できます。
aws cloudformation create-stack --stack-name sample-stack \
--template-body file://template.yaml \
--parameters ParameterKey=InstanceType,ParameterValue=t3.small
6. よくあるミスと注意点
初心者がよくやりがちなミスは、パラメータ名の書き間違いです。Resources内で参照するときは、Refを使って正確に指定する必要があります。
また、パラメータを増やしすぎると、何を設定しているのか分からなくなるため注意が必要です。本当に変える必要があるものだけをパラメータ化しましょう。
7. ベストプラクティス:分かりやすい設計
パラメータにはDescriptionを必ず書くことがおすすめです。これにより、スタック作成時に何を入力すればいいか一目で分かります。
さらに、AllowedValuesを設定すると、選択肢を限定でき、入力ミスを防げます。初心者にも優しい設計になります。
8. 実務でよく使われるパラメータ例
実務では、環境名、インスタンスタイプ、VPC IDなどをパラメータにするケースが多いです。これらは環境ごとに変わりやすく、CloudFormationパラメータの代表的な使い道です。
パラメータを上手に使うことで、AWS構築作業が自動化され、作業時間の短縮と品質向上につながります。