AWS CloudFormation経験者がTerraformのstate管理で戸惑った話
- POSTS
はじめに 私はこれまで、AWS の構築では主に AWS CloudFormation を利用してきました。
今回、試しに Terraform を利用して構築を行ってみたところ、CloudFormation ではあまり意識することのなかった「state 管理」について考慮する必要があることを知りました。
CloudFormation 利用者の感覚では、「インフラの状態管理は AWS 側で行ってくれるもの」という認識が強かったため、Terraform で state を自分で管理する必要がある点には驚かされました。
CloudFormation では、スタックの状態管理は AWS 側の責務となっており、ユーザーが state の保存場所や排他制御を意識する場面はほとんどありません。
一方 Terraform では、state をどこに保存するか、チームでどのように共有するかまで考慮する必要があります。
本記事では、CloudFormation 経験者として Terraform の state 管理で戸惑った点をまとめます。
AWS CloudFormation では State を意識することが少なかった AWS CloudFormation の状態管理 Developers can deploy and update compute, database, and many other resources in a simple, declarative style that abstracts away the complexity of specific resource APIs. AWS CloudFormation is designed to allow resource lifecycles to be managed repeatably, predictable, and safely, while allowing for automatic rollbacks, automated state management, and management of resources across accounts and regions.