コンテンツにスキップ

1ヶ月でAWS環境をTerraform import → module化 → prd apply

概要

Cloud Praticaに入会して3週間でAWS構成を構築、1ヶ月でstg環境を Terraform import → module化 → prd apply まで完了した学習記録。

Terraform import → module化 → apply の流れ

terraform import とは

すでに手動で作成した既存のAWSリソースをTerraformの管理下に取り込む操作。

# 例: 既存のS3バケットをTerraformに取り込む
terraform import aws_s3_bucket.my_bucket my-existing-bucket-name

importすると .tfstate にリソース情報が記録される。 しかしコード(.tfファイル)は自動生成されないので、手動で対応するリソース定義を書く必要がある。

module化とは

再利用可能なTerraformコードのまとまりに切り出すこと。

modules/
  ec2/
    main.tf      ← EC2インスタンスの定義
    variables.tf ← 入力変数
    outputs.tf   ← 出力値
  rds/
    main.tf
    ...
environments/
  stg/
    main.tf  ← module "ec2" { source = "../../modules/ec2" ... }
  prd/
    main.tf  ← 同じモジュールを別の変数で呼ぶ

stgとprdで同じモジュールを使い、変数(インスタンスタイプ、レプリカ数など)だけ変える構成が一般的。

stg → prd apply の意味

stg環境で動作確認したTerraformコードを、同じモジュールを使ってprd環境に適用すること。 stgで人柱になって設定を固め、prdに展開する安全な進め方。

学びとして重要な点

  • 苦手意識の克服: Terraformはstateファイルや依存関係の概念で最初つまずきやすいが、一度stgで手を動かすと理解が一気に進む
  • importから始める: 既存インフラがある現場では新規構築より import → コード化が多い。この流れを経験できたのは実践的
  • module化のタイミング: 最初からモジュール化しようとすると過設計になりやすい。まずベタ書きして、パターンが見えてからmodule化するのが現実的