Terraformのきほんと応用2022/01/25に公開2022/01/26TerraformtechTerraformを使う全ての人が実践すべき内容について説明します。Terraform関連の他の記事は「Terraformのきほんと応用」からどうぞ。Teraformのてっぱん開発に使うTerraformとproviderのバージョンを制限する。バグフィックスなどのパッチバージョンは更新する。}}説明バージョン形式Terraformのバージョン形式に関するドキュメントは見当たらないのですが、providerの開発ガイドではセマンティックバージョニングという一般的な考え方を推奨しているため、Terraform本体も同様と考えられます。セマンティックバージョニングでは、バージョンをX.Y.Zの形式で表します。Xはメジャーバージョン、Yはマイナーバージョン、Zはパッチバージョンを表します。ソースの修正が必要となる可能性がある場合には、メジャーバージョンやマイナーバージョンが上がります。バージョンを制限する理由Terraformソースを複数人で開発している場合、使用しているバージョンが異なると問題になることがあります。古いバージョン(0.12未満)で作成したソースを最近のバージョン(0.12以上)で実行するとエラーとなってしまいます。このため、ソースに対応したバージョンで動くように制限を入れることで問題に対応します。バグ修正などソース変更を伴わないアップデートには追随すべきです。メジャーバージョンとマイナーバージョンは慎重にアップデートしたいけど、パッチバージョンは自由にあげたい。これが、Terraformでの開発の考え方の基本です。バージョン番号を固定する方法Terraform本体のバージョンを制限する場合はterraformセクションのrequired_versionを使用します。providerのバージョン制限はrequired_providersを使用します。バージョンの指定方法はいくつかありますが「~>」という演算子を使うことでメジャーバージョンとマイナーバージョンがあっていない場合はエラーとすることができます。以下はTerraform本体のバージョンを1.0.Xに、AWSProviderのバージョンを3.73.Xに制限する場合の例です。}}この定義がある状態で不当なバージョンのTerraformを実行すると以下のようなエラーとなり実行できなくなります。!「~>」以外の制限を使用する機会はほとんどないと思いますが、念のため他の表記方法が書かれたリンクを残しておきます。次はこれをやろうtfstateはS3などの共有ストレージに保存するTerraform関連の他の記事は「Terraformのきほんと応用」からどうぞ。GitHubで編集を提案sway普通のSIerの普通のベテランエンジニアバッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。