TerraformによるIaC構築
AWSの手動構築で手動構築したAWSインフラをTerraformでコード化します。コード化の方法は、手動構築した環境を一度削除してTerraformで再構築する方法と、importブロックを使って既存リソースをTerraformの管理下に取り込む方法のどちらでも構いません。最終的に、Terraformでインフラを管理できる状態を目指します。
- AWSインフラをTerraformコードで管理できる状態にする
- 変数・モジュール・リモートバックエンドを活用した実務的な構成にする
terraform applyで環境が再現できる状態を実現する
1. 必須要件
AWS構成図の作成で作成したAWS構成図に含まれるすべてのリソースを、Terraformでコード化してください。以下の要件をすべて満たすこと。
1.1 Terraformの設計・運用
- 変数(
variables.tf)を活用し、環境名・インスタンスタイプ・CIDRブロックなどをハードコードしないこと - モジュールを最低1つ使用すること(例:ネットワークモジュール、ECSモジュールなど)
- tfstateファイルをS3バックエンドで管理すること
terraform planでエラーが発生しないこと
1.2 動作確認
terraform applyで環境が正しく構築されること- カスタムドメインにHTTPSでアクセスし、APIのレスポンスが正常に返ることを確認すること
2. 提出物
- GitHubリポジトリのURL
- mainブランチに最新のコードがマージされている状態にすること
- README.mdに以下を記載すること
- Terraformプロジェクトのディレクトリ構成
- 使用しているモジュールの説明
terraform applyの実行手順- 環境の削除手順(
terraform destroy)
3. コード化の進め方
手動構築と同様に、段階的に進めることをおすすめします。一般的には、以下のような順番で進めるとスムーズです。実際にコード化するリソースは、AWS構成図の作成で作成したAWS構成図に従ってください。
- プロジェクトの初期設定 …
provider、backend(S3)、variables.tfを作成する - ネットワーク … ネットワーク関連のリソースをまとめてコード化する
- データベース … データベースをコード化し、Privateサブネットへの配置とセキュリティグループを設定する
- コンテナレジストリ … イメージの保管先をコード化する
- コンテナ実行環境 … タスク定義・サービスをコード化し、データベースやレジストリとの連携を設定する
- ロードバランサ … ターゲットグループ・リスナーをコード化し、コンテナサービスと紐づける
- ドメイン・証明書 … カスタムドメインとSSL証明書をコード化する
- スケーリング … オートスケーリングポリシーをコード化する
各ステップで terraform plan → terraform apply を実行し、リソースが正しく作成されることを確認してから次に進みましょう。
4. 参考講座
- IaCとTerraformの概要
- Terraformの基本
- 変数の利用
- リソース間の参照
- TerraformでシンプルなAWS構成を作ろう
- 制御構文
- モジュール
- 既存リソースを取り込む
- リモートバックエンド管理
- terraformコマンド
- TerraformでWebアプリをデプロイしよう
5. 目安期間
4週間