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サービスの構成図です。各コンポーネントをクリックして詳細を確認してください。

AWS Cloud
VPC (10.0.0.0/16)

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に変数を渡す方法は複数あり、明確な優先順位が存在します。外側ほど優先度が高くなります。