LoginSignup
0
0

個人メモ: terraformer + terraform + AWS

Posted at

※ 個人的なメモ
(事後なので抜けあるかも...)

AWS現環境をterraformのコードで管理する

前提

  • AWSリソース作成済み
  • aws configure、terraform、terraformerの準備、インストールができている

やること

  • AWSの現環境をterraformerを使用してコード化
  • コード化したterrafomerのコードをtfファイルを作成して、AWSリソースと紐づける
  • terraformを使用してAWSリソースの変更をしてみる
  • tfstateの管理場所をlocalからs3に変更する

AWSの現環境をterraformerを使用してコード化

AWSリソースをterraformerを使用してコード化する

  • 下記はS3の例
$ terraformer import aws --resources=s3 --regions=ap-northeast-1 --profile=default
  • 実行結果
    スクリーンショット 2024-05-12 14.04.26.png
  • generated/ にコードが生成される
.
├── README.md
├── generated
│   └── aws
│       └── s3
│           ├── outputs.tf
│           ├── provider.tf
│           ├── s3_bucket.tf
│           ├── s3_bucket_policy.tf
│           └── terraform.tfstate

コード化したterrafomerのコードをtfファイルを作成して、AWSリソースと紐づける

  • terrafomr importを使用して紐づける
    • ./s3.tfを作成して、./generated/aws/s3/s3_bucket.tfのコードを任意のリソースをコピーして貼り付ける
// tfファイルにこのように書かれている場合下記のように指定する (resource "aws_s3_bucket" "hoge" {...})
$ terraform import aws_s3_bucket.hoge {紐づけたいS3バケット名}
  • 実行結果
    スクリーンショット 2024-05-12 14.27.46.png

  • terraform plan で紐づいていることを確認
    スクリーンショット 2024-05-12 14.29.35.png

スクリーンショット 2024-05-12 14.33.10.png


terraformを使用してAWSリソースの変更をしてみる

  • 適当にコードを編集
// false→trueに変更
force_destroy = "true"
  • terraform planで差分確認
$ terraform plan

スクリーンショット 2024-05-12 14.39.39.png

  • terraform applyで差分を反映、反映前に差分確認が入るので yes と打つ
$ terraform apply

スクリーンショット 2024-05-12 14.43.55.png

  • 差分が反映される
    スクリーンショット 2024-05-12 14.46.16 1.png

tfstateの管理場所をlocalからs3に変更する

  • main.tfに下記を追記
terraform {
  backend "s3" {
    bucket                  = "matsui-backend-tfstate" // tfstateを管理するバケット名
    key                     = "terraform.tfstate" // tfstateのファイル名
    region                  = "ap-northeast-1"
  }
}
  • その後、terraform initを実行し、localに配置しているtfstateをS3にコピーするか聞かれるので yes と打つ
$ terraform init

スクリーンショット 2024-05-12 14.58.21.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0