Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コード化できていなかったヤプリをTerraform文化に変えていった話

 コード化できていなかったヤプリをTerraform文化に変えていった話

20220825 HashiTalks: Japan の発表資料です。
https://events.hashicorp.com/hashitalksjapan

MotokiHabuchi

August 25, 2022
Tweet

More Decks by MotokiHabuchi

Other Decks in Technology

Transcript

  1. terraform/ ├── modules │ └─── vpc │ ├── main.tf │

    ├── output.tf │ └── variable.tf └── dev └── vpc ├── backend.tf ├── main.tf ├── output.tf ├── provider.tf └── variable.tf ディレクトリ構成 module "vpc" {
 source = "../../modules/vpc"
 common = "${var.common}"
 vpc = "${var.vpc}"
 }

  2. terraform/ └── dev-aws ├── vpc ├── codedeploy │ ├── backend.tf

    │ ├── datasource.tf │ ├── main.tf │ ├── output.tf │ ├── provider.tf │ └── variable.tf ➚ ディレクトリ構成 ➘ └── dev ├── backend.tf ├── datasource.tf ├── main.tf ├── output.tf ├── provider.tf └── variable.tf
  3. terraform/ ├── template │ ├── service │ │└── review │

    │ ├── serviceA.tf │ │ ├── <一部省略> │ │ ├── provider.tf │ │ └── variable.tf │ └── workspace │ └── base │ ├── main.tf │ ├── <一部省略> │ └── variable.tf 続く ディレクトリ構成
  4. 続き └── {workspace名} ├── service │ └── review1 │ ├──

    serviceA.tf -> ../../../templates/service/review/serviceA.tf │ ├── backend.tf │ ├── <一部省略> │ ├── provider.tf -> ../../../templates/service/review/provider.tf │ └── variable.tf └── workspace └── base ├── backend.tf ├── main.tf -> ../../../templates/workspace/base/main.tf ├── <一部省略> └── variable.tf ディレクトリ構成
  5. • モノレポなterraformディレクトリ配下 ◦ 294 directories, 1597 files • tfstate ◦

    開発環境 45~75 resource、11data source ◦ 共通リソース 450 resource、87 data source • 全体的にディレクトリ構成を見直す予定 Terraformもどんどん成長
  6. terraform/ ├── template └── {workspace名} prod/stg/dev ├── service │ └──

    review1~50 ←約60リソース×50環境 └── workspace └── base ↓47ファイル ├── serviceA.tf ├── serviceB.tf ├── <一部省略> ├── serviceXY.tf ├── serviceYZ.tf └── variable.tf ディレクトリ構成