Terraformの基礎をマスターする
Infrastructure as Code (IaC) の哲学から、Terraformのコアな考え方を学びます。
🚀 IaCの哲学
インフラをコードで管理する手法です。手作業によるミスをなくし、再現性のある環境を素早く構築できます。インフラもアプリケーションのようにバージョン管理や自動化の対象となります。
📜 宣言的アプローチ
「どう作るか(How)」ではなく「何が欲しいか(What)」を定義します。Terraformは望ましい最終状態をコードで記述すると、その状態を実現するための手順を自動で計画・実行してくれます。
🤝 主な利点
再現性、バージョン管理、エラー削減、そして運用効率の大幅な向上が実現します。これにより、開発チームはより迅速かつ安全にインフラを管理できます。
再利用可能なコードの構成要素
高品質で保守性の高いTerraformコードを構成する基本的な要素です。
プロジェクトの構成
Terraformプロジェクトは、いくつかの主要なファイルと概念で構成されます。下の要素をクリックして、それぞれの役割とコード例を確認してください。
📝 `variables.tf`
コードを再利用可能にするための入力パラメータを定義します。
🏗️ `main.tf`
VPCやEC2インスタンスなど、実際のインフラリソースを定義します。
📤 `outputs.tf`
作成されたリソースの情報(例: ALBのURL)を出力します。
💾 `terraform.tfstate`
インフラの現在の状態を記録する、Terraformの「記憶」です。
要素を選択してください
左のリストから構成要素をクリックすると、ここに説明とコード例が表示されます。
実践:セキュアなWebサービスアーキテクチャ
Terraformで構築するHTTPS専用Webサービスの構成図です。各コンポーネントをクリックして詳細を確認してください。
Public Subnets
ALB
ACM
SG (ALB)
Private Subnets
EC2 Instances
SG (EC2)
↑ インターネットからのアクセス (HTTP/HTTPS)
↓ ALBからEC2へのトラフィック
コンポーネントを選択
上の図からコンポーネントをクリックすると、ここにその役割とTerraformコードが表示されます。
TerraformのワークフローとTIPS
実際のコマンド実行フローと、より効果的に使うための知識を探ります。
コアワークフロー
1. `terraform init`
プロジェクトを初期化。プロバイダをダウンロードします。
2. `terraform plan`
変更計画を作成。何が作られ、変更・削除されるかを確認します。
3. `terraform apply`
計画を適用。実際のインフラに変更を加えます。
変数の優先順位
Terraformに変数を渡す方法は複数あり、明確な優先順位が存在します。外側ほど優先度が高くなります。