コラム Claude Code入門 更新:

Claude CodeでInfrastructure as Codeを構築する方法!TerraformとAWSを自動設定する手順

Claude CodeでInfrastructure as Codeを構築する方法!TerraformとAWSを自動設定する手順
目次 (24項目)
  1. 1. はじめに
  2. 2. 目次
  3. 3. 1. IaCでのClaude Code活用の概要
  4. 何ができるか
  5. 4. 2. Terraformプロジェクトの初期設定
  6. プロジェクト構成の設計
  7. バックエンドの設定
  8. 5. 3. AWSリソースの自動生成
  9. ネットワーク設計
  10. ECS Fargateの設定
  11. RDSの設定
  12. 6. 4. モジュール設計とリファクタリング
  13. 既存コードのモジュール化
  14. 再利用可能なモジュールの設計
  15. 7. 5. セキュリティ設定の強化
  16. セキュリティ診断
  17. AWS Configの設定
  18. 8. 6. ステート管理とCI/CD統合
  19. GitHub Actionsとの統合
  20. ドリフト検出
  21. 9. 7. インフラのコスト最適化
  22. コスト分析
  23. 10. 8. まとめ
  24. 11. よくある質問(FAQ)

はじめに

「Terraformを使いたいが、HCLの書き方がわからない」

「AWSのリソースをコード化したいが、どこから始めればいいかわからない」

「インフラ構成が複雑になってきて管理しきれない」

Infrastructure as Code(IaC)はモダンなインフラ管理の標準ですが、TerraformのHCL文法・AWSのリソース定義・ステート管理など、習得すべき知識が多くあります。Claude Codeを使えば、インフラ要件を自然言語で説明するだけで適切なTerraformコードを自動生成できます。

目次

  1. IaCでのClaude Code活用の概要
  2. Terraformプロジェクトの初期設定
  3. AWSリソースの自動生成
  4. モジュール設計とリファクタリング
  5. セキュリティ設定の強化
  6. ステート管理とCI/CD統合
  7. インフラのコストの最適化
  8. まとめ

1. IaCでのClaude Code活用の概要

何ができるか

> 以下のインフラ構成をTerraformで構築してください。

  構成概要:
  - 本番用のWebアプリケーション環境
  - AWSリージョン:ap-northeast-1(東京)
  - 可用性:マルチAZ構成

  コンポーネント:
  - VPC・サブネット・セキュリティグループ
  - ECS Fargate(アプリケーション)
  - RDS PostgreSQL(マルチAZ)
  - ElastiCache Redis
  - ALB(Application Load Balancer)
  - ACM(SSL証明書)
  - Route 53(DNSレコード)

  ディレクトリ構成の提案も含めてください。

2. Terraformプロジェクトの初期設定

プロジェクト構成の設計

> 複数環境(dev・staging・prod)に対応した
  Terraformプロジェクト構成を設計してください。

  要件:
  - 環境ごとに異なる設定値(インスタンスサイズ等)
  - 共通リソースのモジュール化
  - ステートファイルのS3管理・DynamoDBロック
  - tfvarsファイルによる環境別設定

  推奨するディレクトリ構成を提案してから実装してください。

バックエンドの設定

> Terraformのリモートバックエンドを設定してください。

  設定内容:
  - S3バケット(ステートファイル保存)
  - DynamoDBテーブル(ステートロック)
  - S3バケットのバージョニング有効化
  - 暗号化設定(KMS)
  - IAMポリシーの設定

  バックエンド用のリソース自体もTerraformで管理できるよう
  bootstrapスクリプトも作成してください。

3. AWSリソースの自動生成

ネットワーク設計

> 本番環境用のVPC構成をTerraformで実装してください。

  設計:
  - CIDR:10.0.0.0/16
  - パブリックサブネット:2つ(各AZ)
  - プライベートサブネット:4つ(アプリ用・DB用 各AZ)
  - NATゲートウェイ:各AZに1つ(高可用性)
  - VPCフローログ:CloudWatch Logsに送信

  セキュリティグループは用途別(ALB・アプリ・DB・Redis)に分けてください。

ECS Fargateの設定

> ECS Fargateを使ったコンテナデプロイ環境を構築してください。

  設定:
  - ECSクラスター
  - タスク定義(CPU:0.5vCPU・メモリ:1GB)
  - ECSサービス(最小2タスク・最大10タスク)
  - Auto Scaling(CPU使用率70%でスケールアウト)
  - ECRリポジトリ(イメージのライフサイクルポリシー付き)
  - CloudWatch Logsへのログ送信
  - Secrets ManagerからDB接続情報を取得

RDSの設定

> RDS PostgreSQLの本番環境設定をTerraformで実装してください。

  設定:
  - エンジン:PostgreSQL 15
  - インスタンス:db.t3.medium
  - マルチAZ:有効
  - 自動バックアップ:7日間保持
  - 暗号化:KMS使用
  - Enhanced Monitoring:有効
  - Performance Insights:有効
  - パラメータグループのカスタマイズ
  - セキュリティグループ:アプリサーバーからのみアクセス可

4. モジュール設計とリファクタリング

既存コードのモジュール化

> この大きなmain.tfをモジュールに分割してください。

  分割基準:
  - networking(VPC・サブネット・セキュリティグループ)
  - compute(ECS・EC2)
  - database(RDS・ElastiCache)
  - storage(S3)
  - monitoring(CloudWatch・アラーム)

  各モジュールのvariables.tf・outputs.tf・README.mdも作成してください。

  [main.tfを貼り付け]

再利用可能なモジュールの設計

> 複数のプロジェクトで再利用できる
  ECS Fargateデプロイ用モジュールを設計してください。

  入力変数:
  - アプリケーション名・環境名
  - Dockerイメージ・タグ
  - CPUとメモリのサイズ
  - 環境変数・シークレット
  - スケーリング設定

  出力値:
  - サービスARN・タスク定義ARN・ECRリポジトリURL

5. セキュリティ設定の強化

セキュリティ診断

> このTerraformコードをセキュリティ観点で診断してください。

  使用ツール:checkov または tfsec

  チェック観点:
  - S3バケットのパブリックアクセス設定
  - セキュリティグループの過剰な許可(0.0.0.0/0)
  - 暗号化されていないリソース
  - ロギング・監査が無効なリソース
  - IAMポリシーの最小権限原則違反

  問題を修正したコードを提示してください。

AWS Configの設定

> AWSのセキュリティコンプライアンスを自動チェックする
  AWS Config Rulesを設定してください。

  有効にするルール:
  - 暗号化されていないEBSボリューム検出
  - パブリックなS3バケット検出
  - MFAが無効なIAMユーザー検出
  - 古いアクセスキーの検出
  - セキュリティグループの過剰な許可検出

6. ステート管理とCI/CD統合

GitHub Actionsとの統合

> TerraformのCI/CDパイプラインをGitHub Actionsで構築してください。

  ワークフロー:
  - PRごと:terraform fmt・validate・plan を実行してPRコメントに結果を投稿
  - mainマージ後:terraform applyを実行(手動承認付き)
  - 環境ごとにワークスペースを切り替える

  認証:OIDC(OpenID Connect)を使ったキーレス認証

ドリフト検出

> インフラのドリフト(実際の状態とTerraformの状態の乖離)を
  定期的に検出する仕組みを構築してください。

  設定:
  - 毎日深夜にterraform planを実行
  - ドリフトが検出された場合はSlack・メールに通知
  - 差分の詳細をレポートとして保存

7. インフラのコスト最適化

コスト分析

> このTerraformコードのAWSリソースのコストを試算してください。

  試算条件:
  - リージョン:ap-northeast-1
  - 月間トラフィック:1TB
  - 平均CPU使用率:30%

  Infracostを使ってコスト見積もりを出力してください。
  コスト削減できる箇所があれば提案してください。

8. まとめ

Claude CodeでのTerraform・IaC活用のポイント:

  • インフラ要件を自然言語で説明するだけでHCLを自動生成
  • セキュリティ診断(checkov・tfsec)を自動実行して問題を修正
  • マルチ環境・モジュール設計を最初から正しく設計できる
  • GitHub ActionsとのCI/CD統合を自動構築できる

IaC導入の推奨順序:

  1. 開発環境のVPC・ECS環境から始める
  2. ステート管理をS3+DynamoDBに移行
  3. モジュール化してコードを整理
  4. CI/CDパイプラインを構築
  5. 本番環境に展開

次回の第33回:Webスクレイピングをする方法では、PlaywrightとBeautifulSoupを使った自動収集の方法を解説します。

よくある質問(FAQ)

Q. AWSの認証情報をTerraformに安全に渡すには?

A. Claude Codeに「AWSの認証情報を安全に管理する方法を教えてください」と相談することで、IAM Role・OIDC・AWS Vaultなど状況に応じた方法を提案してくれます。アクセスキーのハードコードは避けてください。

Q. GCPやAzureにも対応していますか?

A. はい。「GCPのCloud RunとCloud SQLをTerraformで構築してください」のように指定することで対応できます。

この記事はClaude Code入門シリーズ(第4部)の第32回です。← 第31回:TypeScript型設計第33回:Webスクレイピング →

ご質問はお問い合わせページからお気軽にどうぞ。

著者:R-LLM 開発者

フォロー

Webエンジニアとして10年以上のキャリアがあり、現在はWordPressとLLM(大規模言語モデル)の連携、および生成AIを活用した課題解決のための開発に日々取り組んでいます。

私の信条は、クライアントに寄り添った伴走支援と、最後まで責任を持ってやり遂げる「遂行力」です。これまでの膨大なトライ&エラーの蓄積により、自身の領域内であれば不具合も迅速に解決できる現場の知見を積み上げてきました。

このブログでは、一人のエンジニアとして私自身がAI技術に抱いている純粋な興味をベースに、日々の探求プロセスを発信しています。

生成AILLMをどのように実務に組み込み、価値へ繋げていくか。自身の検証結果だけでなく、実務者としての視点に基づいた「考察や推察」も含めて共有することで、同じように試行錯誤を続ける方々と知見を繋げていければと考えています。

関連記事

SHARE Xでシェア
← 前の投稿
投稿一覧に戻る
次の投稿 →