こんにちは。インフラの深淵を覗き込み、IaCの美学を追求するSREエンジニアです。
Terraformを触り始めると、誰もが一度はこう思うはずです。「今の変更で、一体いくらのお金が動くんだ?」と。
今日は、Terraform Cloud(TFC)を使いこなし、「コストを事前に可視化する」という現場で必須の防御スキルと、「プライベートネットワークをセキュアに守る」ためのエージェント構築術を伝授します。これらをマスターすれば、あなたは単なる「作業者」から、コストとセキュリティを司る「設計者」へと昇華できます。
—
1. なぜ「Cost Estimation」が必要なのか?
インフラエンジニアの最大の恐怖は、`terraform apply` を実行した瞬間に、予算を突き抜けるような高額リソースを作成してしまうことです。
Terraform Cloudの Cost Estimation 機能は、`plan` の実行結果から「その変更で月額いくら増えるか」を自動算出します。これがあれば、「あ、今回の変更でRDSのインスタンスクラスを間違えて、月5万円の追加コストが発生する」というミスを、applyの前に食い止めることができます。
準備するもの
- Terraform Cloudの組織アカウント(Freeプランでも一部利用可能ですが、詳細な可視化には有料プランが推奨されます)
- AWS等のプロバイダー認証設定済み(TFCの「Variables」に `AWS_ACCESS_KEY_ID` 等を設定してください)
—
2. 「Terraform Agent」という選択肢
TFCは強力ですが、企業環境では「パブリッククラウドからオンプレミスやVPC内部のリソースを直接操作させたくない」というセキュリティ要件が必ず立ちはだかります。
ここで登場するのが Terraform Agent です。
TFCの実行環境を、あなたの管理するネットワーク内に「専用のコンテナ」として常駐させることで、インターネットに穴を開けることなく、安全に内部リソースを操作できるようになります。
—
3. 実践:セキュアな実行環境の構築手順
ステップ1:Agent Tokenの発行
1. Terraform Cloudの「Organization Settings」から「Agents」を選択。
2. 「Create an agent pool」を行い、トークンを発行します。このトークンは二度と表示されないので厳重に管理してください。
ステップ2:DockerによるAgentの起動
最も手軽で堅牢なのはDockerでの運用です。以下のコマンドで、あなたのネットワーク内にAgentを常駐させます。
AgentをDockerコンテナとしてバックグラウンドで起動
docker run -d \
–name tfc-agent \
-e TFC_AGENT_TOKEN=”ここに取得したトークンを入力” \
-e TFC_AGENT_NAME=”my-secure-agent” \
hashicorp/tfc-agent:latest
- 知見: `TFC_AGENT_NAME` を明確にすることで、万が一トラブルが起きた際にどのノードが反応していないか即座に特定できます。運用における「可観測性」の基本です。
—
4. HelloWorld的な動作確認:コストが見える魔法
では、実際にコストが見えるか確認しましょう。以下の `main.tf` を作成してください。
AWSのt3.mediumインスタンスを定義
resource “aws_instance” “web” {
ami = “ami-0c55b159cbfafe1f0” # 東京リージョンのAmazon Linux 2
instance_type = “t3.medium” # これでいくらかかるか確認!
}
1. TFCのワークスペースで `terraform plan` を実行(TFC上からトリガー)。
2. 画面に 「Cost Estimation」 という項目が表示されます。
3. そこに「+$XX.XX / month」と表示されていれば大成功です。
—
5. 現場で震えるほど役立つ「運用の極意」
ここまでで基礎は完璧です。最後に、私が現場で必ず守っている「極限の知見」を共有します。
- Policy as Code (Sentinel / OPA) との併用:
コスト見積もりが出ただけでは不十分です。「月額100ドル以上の増額は自動的にfailさせる」というポリシーをコードで書くことで、人為的ミスを完全に排除できます。これがIaCの本質です。
- Agentのオートスケーリング:
Agentを1台だけで動かすのは危険です。可用性を担保するため、ECS Fargateなどで複数のAgentを起動し、負荷分散させる設計を推奨します。
- コストの「差分」を意識せよ:
毎回コストを見る癖をつけると、AWSのマイナーな価格改定や、リソースの非効率な選択に気づく「エンジニアとしての嗅覚」が養われます。
—
最後に
Terraform CloudとAgentを活用することは、単なるツール導入ではありません。「インフラの変更を、安全で、計算可能なビジネス活動に変える」という意思表示です。
最初は少し難しく感じるかもしれませんが、一度このフローを構築してしまえば、もう二度と「apply後の冷や汗」に悩まされることはありません。自信を持って、コードを書いてください。あなたのインフラは、今日からより堅牢で、より経済的になります。
何か詰まったら、いつでも聞いてくださいね。応援しています。