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
GCP と Terraform / gcp-terraform
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
shigwata
February 22, 2022
Programming
87
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GCP と Terraform / gcp-terraform
shigwata
February 22, 2022
More Decks by shigwata
See All by shigwata
CircleCIを使ったGAEの開発フロー / google-appengine-workflow
shigwata
0
46
Other Decks in Programming
See All in Programming
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
APNsからLive Activityを開始する話
yumnumm
0
170
phperだってパンチカードでコーディングしたい
o0h
PRO
0
330
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
270
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
Event is what happens
moro
2
770
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
270
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Fireside Chat
paigeccino
43
4.1k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Navigating Team Friction
lara
192
16k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
Documentation Writing (for coders)
carmenintech
77
5.6k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Code Review Best Practice
trishagee
74
20k
Site-Speed That Sticks
csswizardry
13
1.6k
Transcript
GCP と Terraform 2/22 2022 Belong GCP Study - [GCP×SRE]
実運用から理解するプロジェクト構成と SLO
自己紹介 Shigeki Watanabe @shigwata SRE 株式会社Belong CI/CDが好き 2
アジェンダ • GCPのリソース階層とは • Belongでの事例 • Terraformでリソース階層を管理 3
GCPのリソース階層とは
GCPのリソース階層とは 5 Best practices for enterprise organizations
GCPのリソース階層とは 6 Best practices for enterprise organizations 組織リソース
GCPのリソース階層とは 組織リソース リソース階層のノードリソース ドメインにマッピングする組織ノードを作成 7
GCPのリソース階層とは 8 Best practices for enterprise organizations フォルダ
GCPのリソース階層とは フォルダ リソースのグループ分け • 部署やチーム • 本番環境と開発環境 組織リソースがないと作成できない 9
GCPのリソース階層とは 10 Best practices for enterprise organizations プロジェクト
GCPのリソース階層とは プロジェクト リソース階層の一番下 リソースをグループ化 • Cloud Storage, Cloud SQL, BigQuery,
etc. 11
Belongではどうしているか
Belongのリソース階層 13
初めからこの構成 だったわけではない
初期のリソース階層構成 15
初期のリソース階層構成 サービスごとのグルーピング • シンプルな設定 • プロジェクトをTerraformで 管理 16
サービスごとのグルーピングだと 環境横断な設定ができない
環境ごとのグルーピング
現在のリソース階層構成 環境ごとのグルーピング • IAMを継承 ◦ フォルダに設定することで、 下層フォルダに設定が継承される • ログエクスポートがフォルダに適用可 ◦
監査ログのエクスポートを Prodフォルダに設定することで 設定漏れが防げる • リソース階層をTerraformで管理 19
リソース階層をTerraformで管理
Terraformとは • HashiCorpが開発した Infrastructure as Code ツール • クラウドサービスを管理することが可能 ◦
GCP ◦ AWS ◦ GitHub • 宣言型の設定 ◦ HCL (HashiCorp configuration language) 21
GCPで使う場合 • サービスアカウントを作成して最低限の権限を付与する • GCSにtfstateを保存する • Google プロバイダを利用する 22
Terraformで管理したいもの • GCPリソース階層 ◦ 組織 ◦ フォルダ ◦ プロジェクト •
モニタリング • 監査ログ 23
どうやったか
どうやったか 定義を4つに分けて管理 • bootstrap • project • monitoring • audit-log
25
bootstrap GCPリソース階層の管理 • 組織のフォルダの定義 • フォルダ単位のIAM設定 • 管理用プロジェクトの作成 • terraform用サービスアカウントの作成
• tfstate保存用GCSバケットの作成 26
project プロジェクトの作成 • サービスフォルダの作成 • プロジェクトの作成 • プロジェクトのterraform用 サービスアカウントの作成 •
プロジェクトのtfstate保存用 GCSバケットを 管理用プロジェクトに作成 27
monitoring 28 サービス横断の モニタリングを定義
audit-log 29 監査ログ設定を Prodフォルダに設定
まとめ 30 • 企業に合ったGCPリソース階層を定義する • リソース階層の定義をTerraformで管理する
リファレンス 31 • Google Cloud security best practices center ◦
Google Cloud security foundations blueprint guide ◦ https://github.com/terraform-google-modules/terra form-example-foundation • Best practices for enterprise organizations
おまけ
どこで実行するか
CI
Terraform定義変更フロー 35 1. ローカルで開発 2. Bitbucket に Git Push 3.
Git Push をトリガーに CI 起動 a. CircleCI で tflint を自動実行 b. CircleCI で terraform plan を自動実行 4. PR作成 5. レビュー 6. マージ Terraform を CircleCI で実行する場合は Terraform orb を利用すると簡単
リリース方法 36 1. master ブランチに Git タグを付与 2. Git タグをトリガーに
CI/CD 起動 a. CircleCI で terraform plan を自動実行 b. slack に CircleCI の hold Job を通知 c. 承認すると、CircleCI が terraform apply を自動実行 3. リリース
まとめ 37 • 企業に合ったGCPリソース階層を定義する • リソース階層の定義をTerraformで管理する • TerraformをCIで実行する