Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CI/CD環境のTerraform versionを最新に保つと幸せになれる
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yhamano
July 26, 2021
Technology
2.3k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CI/CD環境のTerraform versionを最新に保つと幸せになれる
yhamano
July 26, 2021
More Decks by yhamano
See All by yhamano
MIXI での HCP Terraform 活用事例 / Use Case of HCP Terraform at MIXI
yhamano
2
1.3k
Self-Service Implementation of AWS IAM Identity Center Permissions
yhamano
1
1.2k
TIPSTAR におけるデータ分析基盤信頼性向上の取り組み
yhamano
1
2.4k
複数プロダクトを管理する AWS Organizations における AWS IAM Identity Center を GitHub x Terraform でいい感じに運用したい
yhamano
1
2.6k
Opsしかやってこなかった私が DevOpsが根付いたチームにJoinした話
yhamano
2
2k
IAMの地味なUpdateをご紹介_掲載用.pdf
yhamano
0
900
lightning-talk-toyosu_hamano_20190925_open.pdf
yhamano
0
920
Other Decks in Technology
See All in Technology
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
340
Copilot Coworkで「みのるん式」やってみた
minorun365
PRO
2
1.7k
[dbts2026]数十PBの超巨大データ×AI活用を支えるSnowflakeの実力〜大規模環境におけるアーキテクチャと運用のリアル〜
y_matsubara
0
120
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
1
210
eBPF 簡介 2026 版
shunghsiyu
0
190
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
230
TSKaigi Sendai 2026 - tsgo時代のTypeScript Playgroundはどう動くか
teamlab
PRO
0
110
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
2
1k
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
4
1.7k
Ebitengine製iOSアプリ公開ボタンを押す会
eiei114
0
110
Kiro Crew の Bot (続く役目を任せる窓口) | 目指せ Kiro マスター 12
inariku
PRO
2
350
お客様の「やりたい」の先を見通す合意形成プロセス ~裏にある課題と不安を解きほぐすコツ~
yukakoseki
0
130
Featured
See All Featured
Claude Code のすすめ
schroneko
67
230k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
470
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
380
The untapped power of vector embeddings
frankvandijk
2
2k
Code Review Best Practice
trishagee
74
20k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Prompt Engineering for Job Search
mfonobong
0
580
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
510
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
380
Leo the Paperboy
mayatellez
10
2.4k
Transcript
CI/CD環境のTerraform versionを 最新に保つと幸せになれる Ops JAWS Meetup#19 勉強会 2021年7月26日(月)
おしながき • 自己紹介 • Terraform概要 • TerraformのCI/CDプロセス • Terraformバージョンアップの必要性と辛み •
tfupdateの活用 • まとめ
Terraform概要 • HashiCorp社により開発/提供されているIaCサービス ◦ HCLと呼ばれる独自の宣言型言語で記述する ◦ 1000以上のプロバイダに対応している ◦ Terraformのランタイムや各種プロバイダの利用は無料 ▪
実行環境は利用者側で用意する必要がある ◦ Terraform Cloudと呼ばれる実行管理サービスも提供されている
2021/06/08
v1.0.0がリリースされ遂にGA🎉
Terraform実行環境 • ローカルPC ◦ ローカルPCからterraform CLIを実行 ◦ 柔軟性は高い ◦ 実環境とリポジトリの内容がズレる
• CI/CDサービス(CircleCI, Code Build...) ◦ PRの作成/マージでterraform CLIを実行 ◦ 実環境とリポジトリの内容が同一で安心 ◦ 自動化によるコスト削減 ◦ ヒューマンエラーの撲滅 ◦ パイプラインの構築が必要
Terraform実行環境 • ローカルPC ◦ ローカルPCからterraform CLIを実行 ◦ 柔軟性は高い ◦ 実環境とリポジトリの内容がズレる
• CI/CDサービス(CircleCI, Code Build...) ◦ PRの作成/マージでterraform CLIを実行 ◦ 実環境とリポジトリの内容が同一で安心 ◦ 自動化によるコスト削減 ◦ ヒューマンエラーの撲滅 ◦ パイプラインの構築が必要 本番環境に適用していく場合はこちらを選択していきたい
Terraformの一般的なCI/CDプロセス
Terraformの一般的なCI/CDプロセス tfファイルをgit push
Terraformの一般的なCI/CDプロセス PR作成をトリガーに Linterによる静的解析やplan実行を行う
Terraformの一般的なCI/CDプロセス PRマージをトリガーにapply tfstateを外部ストレージで管理
Terraformの一般的なCI/CDプロセス 本日のメインディッシュ CI/CD環境でのTerraform version管理
Terraform version • 結構な頻度でリリースがあるが、手動でのversion up対応は辛い ◦ tfファイルで管理しているrequired_versionの書き換え ◦ CI/CD環境で利用するTerraform本体のversion
up対応 ◦ 既存リソースに影響が無いことをplanで確認 ◦ tfstateを複数管理している場合は各ディレクトリに対して対応する必要がある • 一方、新機能/新サービスをterraform管理したい場合はversion upする必要がある version指定がある コンポーネント 概要 例 Terraform本体 Terraform自体のコアな処理を担当 - provider 各プロバイダに依存した処理を担当 hashicorp/terraform-provider-aws hashicorp/terraform-provider-google module resource定義のテンプレート terraform-aws-modules/terraform-aws-vpc terraform-aws-modules/terraform-aws-iam
自動化したい!!!
tfupdate • 指定したディレクトリ配下もしくはファイルのversion記載部分を、取得したversionで 再帰的に一括更新してくれる ◦ tfupdate terraform -v 1.0.0 main.tf
で実行すればmain.tf内のversion記載部分を 1.0.0に更新してくれる • CI/CD等のスケジュールジョブ内で利用することで、最新版のリリースがあれば version up用のPRを自動作成することが可能 ◦ CircleCIであればexampleのconfig.ymlやOrbが公開されている ▪ https://github.com/minamijoyo/tfupdate-circleci-example ▪ https://circleci.com/developer/orbs/orb/masutaka/tfupdate ◦ exampleはPR作成までだが、plan結果に差分が無ければ自動マージとかもで きちゃう! • 詳細はQiitaに公開されています https://github.com/minamijoyo/tfupdate
tfupdate
朝起きたら最新versionになってる幸せ😍
数ヶ月運用してみて • 新機能/新サービスをリードタイム無しに積極的に活用できる ようになった • version upによるplan結果差分発生は1ヶ月に1回程度 ◦ Terraform本体とproviderでの利用のみ •
plan結果差分無しの時の標準出力が変更になり、自動マージ されないことがあった ◦ planのoptionに-detailed-exitcodeを付与することでplan結果差分 のありなしで終了コードが変わる
まとめ • Terraform(IaC全般)を活用する場合は極力CI/CDプロセスを導 入したい • CI/CD環境のTerraform version管理から開放されて幸せにな れた
Thank you.