知り合いが、構築をIaCで行っているそうで、関連知識を深めようと思います。
Terraform は、インフラをコードとして管理するためのツール(Infrastructure as Code / IaC)です。
AWS をはじめ、GCP、Azure、GitHub、Datadog など多くのサービスに対応しており、「コンソールをポチポチ操作する代わりに、設定をコードで書いてインフラを作る・変更する」ことを目的としています。
Terraform を使うと、VPC、EC2、S3、IAM、RDS などの AWS リソースを 宣言的に 定義できます。
宣言的というのは、「どうやって作るか」ではなく「最終的にどうあるべきか」を書く、という考え方です。Terraform はその定義を読み取り、現在の状態との差分を計算して、必要な作成・変更・削除を自動で行います。
実務で Terraform が重宝される理由のひとつは、インフラの状態をコードとしてバージョン管理できる点です。設定ファイルは Git に保存できるため、「いつ・誰が・何を変更したか」が明確になります。これにより、属人化しやすいインフラ構成をチームで安全に共有できますし、過去の状態に戻すことも容易になります。