$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
HashiCorp Japan Tech Update HashiDays 2023 Reca...
Search
hayata.shimizu
July 07, 2023
Technology
2
1k
HashiCorp Japan Tech Update HashiDays 2023 Recap User Session
I talked about our experience in implementing TerraformCloud OPA.
hayata.shimizu
July 07, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
0
120
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
980
Product Engineer
resilire
0
140
原理から解き明かす AIと人間の成長 - Progate BAR
teba_eleven
2
300
Bakuraku Engineering Team Deck
layerx
PRO
11
5.8k
Oracle Cloud Infrastructure:2025年11月度サービス・アップデート
oracle4engineer
PRO
1
120
AI 時代のデータ戦略
na0
8
3.3k
安いGPUレンタルサービスについて
aratako
1
2.3k
その設計、 本当に価値を生んでますか?
shimomura
3
190
useEffectってなんで非推奨みたいなこと言われてるの?
maguroalternative
9
6.2k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.3k
HIG学習用スライド
yuukiw00w
0
110
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Navigating Team Friction
lara
191
16k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
80
BBQ
matthewcrist
89
9.9k
How STYLIGHT went responsive
nonsquared
100
5.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Typedesign – Prime Four
hannesfritz
42
2.9k
Designing for Performance
lara
610
69k
Transcript
Money Forward with Terraform Cloud OPA HashiCorp Japan Tech Update
HashiDays 2023 Recap
2022/04 - Now Money Forward, inc. サービス基盤本部インフラ部Platformグループ所属 全社で利用されるサービス提供基盤の運用/開発。AWS 上で構築されたk8sを中心とした基盤 自己紹介
- 清水 速太 (Shimizu Hayata) 2017/04 - 2022/03 AP Communications Co., Ltd. NW/SVエンジニアとして勤務。 物理NW機器の運用からキャリアを始め、運用自動化 /CICD/IaC/クラウドを経験 2
今日話すこと サービス基盤本部について OPAとは OPA導入の理由 OPAを導入してみて 3
サービス基盤本部 について 4
About us (Money Forward) 5
About us (サービス基盤本部) 「プラットフォームを作る」 6
About us (サービス提供基盤) 7
OPAとは 8
OPAとは Policy-based control for cloud native environments 出典: Cloud Native
Computing Foundation 汎用ポリシーエンジンとポリシー定義言語 9
OPAとは Policy as Code • Sandboxing • Codification • Version
Control • Testing • Automation 出典: HashiCorp https://docs.hashicorp.com/sentinel/concepts/policy-as-code 10
Terraform & OPA OPA on Terraform Cloud 11
OPA導入の理由 12
OPA導入契機 SG障害 13 RDS障害 インフラコスト
OPA導入契機 • AWS SecurityGroupでインシデント発生 • AWS SGのQuota ◦ SGの設定可能なRule数の上限:
60 • SGのRule数上限を超えてApply ◦ AWS APIの制約上、SG削除->SG再作成が正常な動き ◦ 再作成がクォータ上限で失敗 • SGにRuleが存在しない。サービス不通となる障害。 SG障害 14 概要
OPA導入契機 • AWS SecurityGroupでインシデント発生 • AWS SGのQuota ◦ SGの設定可能なRule数の上限:
60 • SGのRule数上限を超えてApply ◦ AWS APIの制約上、SG削除->SG再作成が正常な動き ◦ 再作成がクォータ上限で失敗 • SGにRuleが存在しない。サービス不通となる障害。 SG障害 15 概要
OPA導入契機 • AWS SecurityGroupでインシデント発生 • AWS SGのQuota ◦ SGの設定可能なRule数の上限:
60 • SGのRule数上限を超えてApply ◦ AWS APIの制約上、SG削除->SG再作成が正常な動き ◦ 再作成がクォータ上限で失敗 • SGにRuleが存在しない。サービス不通となる障害。 SG障害 16 概要
OPA導入契機 • AWS SecurityGroupでインシデント発生 • AWS SGのQuota ◦ SGの設定可能なRule数の上限:
60 • SGのRule数上限を超えてApply ◦ AWS APIの制約上、SG削除->SG再作成が正常な動き ◦ 再作成がクォータ上限で失敗 • SGにRuleが存在しない。サービス不通となる障害。 SG障害 17 概要
OPA導入契機 • Quota上限値を超えていないことを確認してからApply すること SG障害 18 対策
OPA導入契機 • AWS RDSでインシデント発生 ◦ engine_version = x.y.z ◦
auto_minor_version_upgrade = true • AWSとTerraformでengine_versionに差分発生 • 差分状態でApplyするとダウングレード ◦ ダウングレードはインスタンス削除 ->再作成 ◦ データ不整合で再作成に失敗 • インスタンスが不在となり、障害。 RDS障害 19 ※要検証ですが修正されている可能性あり 概要
OPA導入契機 • AWS RDSでインシデント発生 ◦ engine_version = x.y.z ◦
auto_minor_version_upgrade = true • AWSとTerraformでengine_versionに差分発生 • 差分状態でApplyするとダウングレード ◦ ダウングレードはインスタンス削除 ->再作成 ◦ データ不整合で再作成に失敗 • インスタンスが不在となり、障害。 RDS障害 20 ※要検証ですが修正されている可能性あり 概要
OPA導入契機 • AWS RDSでインシデント発生 ◦ engine_version = x.y.z ◦
auto_minor_version_upgrade = true • AWSとTerraformでengine_versionに差分発生 • 差分状態でApplyするとダウングレード ◦ ダウングレードはインスタンス削除 ->再作成 ◦ データ不整合で再作成に失敗 • インスタンスが不在となり、障害。 RDS障害 21 ※要検証ですが修正されている可能性あり 概要
OPA導入契機 • AWS RDSでインシデント発生 ◦ engine_version = x.y.z ◦
auto_minor_version_upgrade = true • AWSとTerraformでengine_versionに差分発生 • 差分状態でApplyするとダウングレード ◦ ダウングレードはインスタンス削除 ->再作成 ◦ データ不整合で再作成に失敗 • インスタンスが不在となり、障害。 RDS障害 22 ※要検証ですが修正されている可能性あり 概要
以下の設定を強制 • deletion_protection = true • ignore_changes = [engine_version]
OPA導入契機 RDS障害 23 対策
OPA導入契機 • サービス基盤本部が全事業部のインフラコストを持って いる。 • 会社の成長と比例して部のコストが膨らんでいく。 • 事業部がどれだけインフラにコストを使っているかを把
握できないため、コスト意識が薄れていく。 インフラコスト 24 概要
OPA導入契機 AWS provider default_tags の設定を強制 インフラコスト 25 対策
実行方法検討 人間が確認するの!? 26
ツールの検討 • Terraformの書き方を制限したい • 違反した状態でApplyを禁止したい • ツールの運用をしたくない ツールの要件 27
ツールの検討 TerraformCloud Policy の OPAにしました • Terraform以外にも対象を広げることができる 28
時系列 2022/09 RDS障害発生 2021/? SG障害発生 2022/10 インフラコスト調査開始 2022/10 OPA導入決定 29
時系列 2022/09 RDS障害発生 2021/? SG障害発生 2022/10 インフラコスト調査開始 2022/10 OPA導入決定 2022/10/31
OPA(SG)導入 2022/11/16 OPA(RDS)導入 2022/11/28 OPA(Cost)導入 30
事象の共通項 ? コスト 障害 31
事象の共通項 恐怖 32
恐怖 • 削減の判断ができないコスト • 深夜だからよかったものの、日中帯に起きていたら ... • Platformの信頼性→サービスの信頼性→企業の評価 33 何を
恐怖 に感じていたのか
恐怖 • 削減の判断ができないコスト • 深夜だからよかったものの、日中帯に起きていたら ... • Platformの信頼性→サービスの信頼性→企業の評価 34
恐怖 恐怖 感じたことありませんか? 35
OPAを導入してみて 36
導入してよかったと感じた点 恐怖からの解放 37
導入してよかったと感じた点 よかった点 • policyを管理したいがためにTerraform versionを最 新化できた • これまで各人の知識に偏っていたレビューポイントが明 確化された 38
• 一時的なポリシー解除が難しい。 ◦ whitelist方式でリソース名を追記し、解除する方式を採用 ◦ 本来の変更に加え、 whitelistの追加・削除の変更が必要で手間がかかる •
OPA設定がコード化されておらず、Adminが更新する必要がある。 ◦ Terraform CloudではOPAの設定すらもコード化が可能。 (Policy as Code as Code) ◦ issueとして積まれているので早めに対応したい • Policyに対するテストが組めていない ◦ Policy自体のtestをCIに組み込むことでより良い Policyを維持する 課題に感じている点 39
OPA導入の苦労した点① エラー表示が小さく、詳細な説明を残せない。 40
OPA導入の苦労した点① Policyに対してコードを発行し、別途用意するドキュメント誘導。 エンジニアの理解度や納得度が向上 Terraform Plan結果の画面がスッキリ • Code • Doc URL
• Resource name • denyの理由 • denyの回避方法 • Policy設定の背景 41
OPA導入の苦労した点② Lifecycle ignore_changesに対するアプローチ 「ignore_changesが設定されていること」 42
OPA導入の苦労した点② ignore_changesあり ignore_changesなし ignore_changesなし ignore_changesを扱う場合は、直接 before/afterを参照する 43
まとめ
我々のOPA導入のきっかけは「恐怖」。 皆さんも少しでもTerraformの運用で恐怖を感じたことありませんか? ぜひ、Policy導入の検討を! まとめ 45
46
Appendix 47
今日の資料 48
過去の発表や資料 • 「TerraformのCI/CD - monorepoとTerraform Cloud」 ◦ HashiTalk 2021 ◦
Makita Riki youtube SpeakerDeck 49
過去の発表や資料 • 「組織と事業の急拡大に立ち向かうためのマルチテナントAmazon EKS クラスタ/マ ルチアカウントアーキテクチャ」 ◦ AWS Summit Online
2020 ◦ Ogasawara Junya SpeakerDeck 50