Slide 1

Slide 1 text

Terraform Cloudを使って
 Stateファイルを楽に管理する
 2023年4月14日
 クラスメソッド AWS事業本部 佐藤 雅樹
 1

Slide 2

Slide 2 text

resource “my_profile” “this” { name = “佐藤雅樹” company = “クラスメソッド株式会社” department = “ソリューションアーキテクト” Interest = [ “DevOps”, “IaC” ] } 2 自己紹介 2

Slide 3

Slide 3 text

Stateファイル(tfstate)管理に悩みや課題はありませんか?
 3 - 管理用のリソース(S3やDynamoDB等)の管理を負担に感じて いる
 - 変更履歴を簡単に確認したい
 - アクセスコントロール


Slide 4

Slide 4 text

アジェンダ
 4 - Stateファイルとは
 - Stateファイルの管理方法
 - Terraform Cloudを使うメリット


Slide 5

Slide 5 text

Stateファイルとは
 5 Stateファイル = リソースの状態を管理するファイル

Slide 6

Slide 6 text

Stateファイルの管理方法
 6 - ローカル
 - クラウドストレージサービス(S3・Cloud Storage等)
 - Terraform Cloud


Slide 7

Slide 7 text

ローカル
 7 ローカルでStateファイルを管理
 - デフォルトの設定のため、追加設定不要でシンプル


Slide 8

Slide 8 text

ローカル管理の課題
 8 - PC故障やStateファイルの誤削除・紛失によって、Stateファ イルが使用できなくなる
 - 複数人で開発する際に、Stateファイルの共有・競合の問題 が発生する
 
 -> 外部のストレージサービスに保存しよう


Slide 9

Slide 9 text

クラウドストレージサービス(S3・Cloud Storage等)
 9 S3等でStateファイルを管理
 - 外部ストレージのため、ファイルの共有が簡単
 - Stateロック(DynamoDB等)を使用して、
 ファイルアクセスの競合を防げる
 


Slide 10

Slide 10 text

10 Stateファイル管理用の リソース作成や管理が悩ましい

Slide 11

Slide 11 text

Stateファイル管理用のリソースの管理
 11 - AWSアカウントが100個あったら、100個S3とDynamoDBを作 らないと。。(管理負荷が大きい)
 - State管理用のリソースはどうやって管理する?
 - Terraformで作ったらStateファイルをどこに置く?
 - 手動・CLI・別のIaCツール?
 


Slide 12

Slide 12 text

12 Terraform Cloudを使おう!

Slide 13

Slide 13 text

Terraform Cloud
 13 Terraform CloudでStateファイルを管理
 - Stateファイル管理用のリソースを
 自前で用意する必要がない
 - Stateロック機能標準装備
 


Slide 14

Slide 14 text

1. Terraform Cloudにログイン(terraform login)
 2. tfファイルに以下の記述を追加
 3. terraform init
 4. terraform apply
 Terraform CloudでStateファイルを管理する
 14 # *.tfファイル
 terraform {
 cloud {
 organization = "Organization名"
 
 workspaces {
 name = "Workspace名"
 }
 }
 }


Slide 15

Slide 15 text

Terraform CloudでStateファイルを管理する
 15 自動的にWorkspaceが作成されStateファイルが保存される


Slide 16

Slide 16 text

16 今回はCLI-driven workflowで説明 他にもVersion control workflow (Github等と繋ぐ)などがあるが 設定は同じくらい簡単

Slide 17

Slide 17 text

17 他にも便利なところを紹介したい

Slide 18

Slide 18 text

Stateファイルの変更履歴をGUIで確認できる
 18 変更履歴をGUIで一覧で確認できる


Slide 19

Slide 19 text

Stateファイルの変更履歴をGUIで確認できる
 19 追加・削除の変更差分も見やすい


Slide 20

Slide 20 text

Stateファイルのロールバック
 20 GUI操作でStateファイルを特定地点にロールバック可能
 (インフラストラクチャの変更は別途Runが必要)


Slide 21

Slide 21 text

シンプルな操作でStateファイルのアクセス制御が可能
 21 Workspace(Stateファイル置き場)単位で
 シンプルな操作でアクセス制御が可能


Slide 22

Slide 22 text

まとめ
 Stateファイル管理はTerraform Cloudがおすすめ
 - Stateファイル管理用のインフラを用意する必要がない
 - 設定も簡単
 - GUIで変更履歴や変更差分を確認できる
 - アクセス制御もシンプルに設定できる
 
 Stateファイル管理機能は5ユーザーまで無料の
 Freeプランでも使用可能
 22

Slide 23

Slide 23 text

23 関連URL TerraformのStateファイル(tfstate)管理方法の比較とTerraform Cloudをおすすめし たい理由 - https://dev.classmethod.jp/articles/terraform_tfstate_management_tfc/ Stateファイル(tfstate)をS3からTerraform Cloudに移行してみる - https://dev.classmethod.jp/articles/migrate-statefile-s3-tfc/ Study HashiCorp Products - Terraform 実行環境の決定版、Terraform Cloudの 機能全部見せます - https://www.slideshare.net/tkaburagi/study-hashicorp-products-terraform-terraf orm-cloudpdf クラスメソッド Terraform Cloud Business製品ページ - https://classmethod.jp/partner/terraform/