Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理...
Transcript of Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理...
![Page 1: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/1.jpg)
Terraformの運⽤に疲れた話
株式会社オプティマインド⼭⼝ 貴⽣
![Page 2: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/2.jpg)
会社について
![Page 3: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/3.jpg)
株式会社オプティマインド所在地︓名古屋
事業内容︓ラストワンマイルのルート最適化AIを活⽤したサービス開発
主な⽤途︓配送計画作成
会社について
![Page 4: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/4.jpg)
会社について
![Page 5: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/5.jpg)
会社について
![Page 6: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/6.jpg)
Terraformの運⽤を⾒直しました
![Page 7: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/7.jpg)
├── preview│ ├── gke.tf│ ├── …│ └── variable.tf├── dev│ ├── gke.tf│ ├── …│ └── variable.tf├── staging│ ├── gke.tf│ ├── …│ └── variable.tf├── prod│ ├── gke.tf│ ├── …│ └── variable.tf
毎回コンフリクトが発生
従来の運⽤
![Page 8: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/8.jpg)
毎回マージに時間がかかるので新機能の検証が
億劫になる
![Page 9: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/9.jpg)
仕事に⽣産性がなさ過ぎて気が滅⼊ってくる…
![Page 10: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/10.jpg)
![Page 11: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/11.jpg)
運⽤ルール含めてちゃんと⾒直す
![Page 12: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/12.jpg)
Terraform workspaceでステートを管理
(workspaceが自動的に管理するので意識をする事はない)
├── environments│ ├── state│ │ ├── preview│ │ ├── dev│ │ ├── staging│ │ └── prod│ ├── main.tf│ ├── …│ └── variable.tf├── module│ ├── gke.tf│ ├── …│ └── variable.tf
⾒直し後の運⽤
環境毎の変数を共通のvariableで管理
moduleは全環境共通同じものを使用する
![Page 13: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/13.jpg)
├── environments│ ├── state│ │ ├── preview│ │ ├── dev│ │ ├── staging│ │ └── prod│ ├── main.tf│ ├── …│ └── variable.tf├── module│ ├── gke.tf│ ├── …│ └── variable.tf
⾒直し後の運⽤
![Page 14: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/14.jpg)
├── environments│ ├── state│ │ ├── preview│ │ ├── dev│ │ ├── staging│ │ └── prod│ ├── main.tf│ ├── …│ └── variable.tf├── module│ ├── gke.tf│ ├── …│ └── variable.tf
⾒直し後の運⽤
![Page 15: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/15.jpg)
├── environments│ ├── state│ ├── main.tf│ ├── …│ └── variable.tf├── module│ ├── gke.tf│ ├── …│ └── variable.tf
├── environments│ ├── state│ ├── main.tf│ ├── …│ └── variable.tf├── module│ ├── gke.tf│ ├── …│ └── variable.tf
devpreview
マージ
⾒直し後の運⽤
previewで検証しやすくするため環境ごとにブランチを分ける
![Page 16: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/16.jpg)
・ルールが明確化された事で簡単にマージできるようになった
・変数を⼀つのvariableで持つ事で差分を簡単に把握できるようになった
まとめ
![Page 17: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/17.jpg)
⼈が増えてきたらプルリクを使ったCI/CDに切り替える
今後の課題
![Page 18: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/18.jpg)
またはTerraform enterpriseに移⾏する
今後の課題
![Page 19: Terraformの運⽤に 疲れた話 - OPTIMINDTerraform workspace でステートを管理 (workspaceが自動的に管理す るので意識をする事はない) ├── environments](https://reader033.fdocuments.net/reader033/viewer/2022050214/5f60a8a5244ca75dfa62dc27/html5/thumbnails/19.jpg)
ご静聴ありがとうございました︕