- クラウドでインフラを構築する際は、コスト削減、デプロイ速度の向上、一貫性、安定性、再利用性を考慮し、Webコンソールで構築するよりもIaCツールを活用して構築するのがよい
- オープンソースであり、IaCツールの中で最も多く使われているのがTerraform
- Terraformのコードを効率的かつ効果的に書くには、Terraformで提供される機能を適切に使うことが重要
- Terraformの反復処理
- 一般的な宣言型言語には反復処理がないが、Terraformではさまざまな関数がサポートされており、反復処理を使うことができる
- 代表的に使われる反復処理:
count, for_each
countパラメータ: リソースとモジュールを反復
for_each式: リソース、リソース内のインラインブロック、モジュールを反復
- 各反復処理の使い方
count: 作成しようとするリソースがほぼ同一で変更されないときに活用すると、素早く簡潔に作成できる
for_each: 固有の名前やデータを持つリソース、再作成されてはならないリソースに活用すると、安全に作成・変更できる
- Count
countパラメータは整数を受け付け、リソース全体やモジュールを反復して作成する
countで構成すると、count.indexを活用してcountで生成したインデックスにアクセスできる
- Countの制約事項
countはリソース全体を反復するが、リソース内にあるインラインブロックは反復しない
countで生成したリソースの途中の値を削除すると、その後ろのすべての値が削除された後に新しく生成される。最終結果は同じでも、再作成されてはならないリソースであれば問題が生じる可能性がある
- For_each
for_each式はlist、set、mapを反復し、リソース全体、リソース内のインラインブロック、モジュールを反復して作成する
for_eachで構成すると、each.keyとeach.valueを使って該当するキーと値にアクセスできる
- リソースに
for_eachを使う場合、リストはサポートされない
- collectionには反復するset、mapを定義し、Configで
each.valueを使ってCollectionに定義されたキーと値を取得できる
まだコメントはありません。