📘 Terraform入門から実践まで
🏗️ はじめに
クラウドインフラの構築は、かつてはマネジメントコンソールでポチポチ設定するのが当たり前でした。
しかし、現在では 「Infrastructure as Code(IaC)」 という考え方が主流になりつつあります。
このシリーズでは、IaCツールの代表である Terraform を使って、
「手動構築」から「自動化構築」へのステップアップを目指します。
🌍 IaC(Infrastructure as Code)とは?
IaC とは、「インフラ構成をコードとして記述し、自動的に構築・管理する」手法です。
| 従来の方法 | IaC方式 |
|---|---|
| AWSコンソールで手動設定 | コードで構成を宣言 |
| 設定ミスが発生しやすい | 一貫性と再現性が高い |
| 設定変更の履歴が残らない | Gitでバージョン管理できる |
例えば、これまで手動でVPCを作っていた作業を、IaCでは次のようなコードで記述できます。
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "main-vpc"
}
}
このファイルを実行するだけで、Terraformが自動的にAWS上にVPCを構築します。
⚙️ Terraformとは
Terraform は HashiCorp 社が開発したオープンソースの IaC ツールです。
宣言的な構文でクラウドインフラを記述し、複数のクラウド環境を統一的に管理できます。
💡 Terraformの特徴
- マルチクラウド対応:AWS、Azure、GCPなどを1つのツールで管理可能
- 宣言的アプローチ:最終的な状態を「宣言」するだけで自動的に構築
- 再現性と一貫性:同じコードで同じ環境を再構築できる
- コード管理が容易:Gitで変更履歴を追跡できる
🧩 Terraformの構成要素
| 要素 | 説明 |
|---|---|
provider |
利用するクラウドサービスを指定(例:aws, google, azure) |
resource |
作成する具体的なリソース(例:S3, EC2, VPC) |
variable |
パラメータ化された変数を定義 |
output |
構築後に表示する値を指定 |
state |
現在の構築状態を保存するファイル(terraform.tfstate) |
🧱 Terraformの基本的な流れ
Terraformの操作はシンプルで、以下の4コマンドで完結します。
terraform init # 初期化(プラグインのダウンロード)
terraform plan # 実行前の変更内容を確認
terraform apply # 実際にリソースを作成
terraform destroy # リソースの削除
これだけで、コードに書かれた通りにAWSやGCP上にインフラを構築できます。
🔄 Terraformと他ツールの比較
| ツール | 特徴 |
|---|---|
| CloudFormation (AWS) | AWS専用。ネイティブだが汎用性に欠ける。 |
| Pulumi | プログラミング言語でIaCを記述できる。学習コスト高め。 |
| Terraform | 宣言的構文、マルチクラウド対応、学習コスト低め。 |
🚀 結論:マルチクラウド環境で使いたいなら Terraform が最適。
🧠 まとめ
- IaCとは「インフラをコード化」する考え方。
- Terraformは最も広く使われるIaCツールの一つ。
- 宣言的な構文と再現性の高さが特徴。
-
init → plan → apply → destroyの4ステップで動く。