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
2026-07-28 3-shakeテックランチ Cloud Run のデプロイパラメータを考...
Search
SUZUKI Masashi
July 27, 2026
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2026-07-28 3-shakeテックランチ Cloud Run のデプロイパラメータを考える / Cloud Run Deploy Parameter
https://3-shake.connpass.com/event/399469/
で発表した内容
SUZUKI Masashi
July 27, 2026
More Decks by SUZUKI Masashi
See All by SUZUKI Masashi
2026-10-28 Jagu'e'r月末 Tech Lunch Online#18 - Google Cloud を語る! Cloud Run のプロビジョニングとデプロイの隙間を埋める - tfstate との連携 / Cloud Run Deploy and Provisioning
masasuzu
1
95
2026-10-24 JAWS JAWS-UG 茨城 #18 IAM Policy Autopilotってなにさ。terraform planからIAM Policyつくれるの? / What's IAM Policy Autopilot
masasuzu
0
200
2026-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
1
740
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
4
840
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
2
370
2026-08-15 JAWS-UG 茨城 #16 Secrets ManagerにおけるSecret値の管理(Terraformの場合) / Secrets Manager Secrets
masasuzu
2
910
2026-07-24 tfpolicyを試してみたのですが、、、、
masasuzu
1
220
2026-06-18 ecspressoのtfstate参照が便利すぎた話
masasuzu
1
580
2026-04-14 Jagu'e'r Cloud Native分科会 Terraform Stateにおけるシークレットの平文保存という課題とその解決
masasuzu
1
110
Other Decks in Technology
See All in Technology
AIエージェント統制はAPIから——押さえるべき5つの要素
nagix
0
120
生成AI時代のIAMのマニアックな話
takuros
3
320
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
380
(swiftc) NonCopyableとライフタイム修飾子
teamhimeh
0
170
新卒エンジニア、 介護士になる
ryu1013
1
680
企画からFlutter実装まで、1つの機能を一貫して開発したプロセスと成果物
khiroyuki1003
1
150
Jev の中身は50行で再現できる。でも本物との差はどこにあるのか
hisuzuya
0
300
re:Inventで、人生は変わったのか? / growth-builders-hub-1-reinvent-2026
mhrtech
2
310
バックオフィスに染み出すTypeScript ── clasp で安全に仕組みを作る
nealle
1
180
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
210
Lint の層を組み直した話
bengo4com
3
310
The future of architectural work
ufried
0
150
Featured
See All Featured
Mind Mapping
helmedeiros
1
430
Building the Perfect Custom Keyboard
takai
2
950
Utilizing Notion as your number one productivity tool
mfonobong
4
640
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
660
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
740
Agile that works and the tools we love
rasmusluckow
331
22k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
Side Projects
sachag
456
43k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
610
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Transcript
Cloud Run のデプロイパラメータを考える 2026-07-28 3-shake テックランチ会 #1 すずきまさし Copyright ©
3-shake, Inc. All Rights Reserved.
おまえだれよ • • • すずきまさし/masasuzu/@masasuz 株式会社スリーシェイクSreake事業部シニアアーキテクト クラウドインフラなんでも屋さんをしてます ◦ お客様の外部から ▪
設計、運用、構築等の技術支援を行います。 ◦ お客様の内部から ▪ インフラチームの一員として内製化支援も行います。 • 得意領域 ◦ AWS ▪ AWS Community Builder Cloud Operation Since 2024~2026 ▪ 2026 Japan All AWS Certifications Engineers ◦ Google Cloud ▪ Google Cloud Partner Top Engineer 2026 ◦ Terraform Copyright © 3-shake, Inc. All Rights Reserved. 2
もくじ • • • 今回の課題を考えるうえでの前提構成 Cloud Runのデプロイの課題 どう解決したか Copyright ©
3-shake, Inc. All Rights Reserved. 3
01 今回の課題を考えるうえでの前提構成 Copyright © 3-shake, Inc. All Rights Reserved. 4
前提構成 • • • • レポジトリ: GitHub インフラ管理: Terraform ◦
tfstate管理はGCS アプリケーションデプロイ : gcloud run deploy CI/CD: GitHub Actions Copyright © 3-shake, Inc. All Rights Reserved. 5
アプリとインフラの責任境界 • • アプリケーション管理 ◦ Cloud Run インフラ管理 ◦ ◦
Cloud Run以外のリソース Cloud Runが使用するリソース ▪ Service Account ▪ Secret Manager ▪ Cloud SQL ▪ Cloud Storage ▪ Artifact Registry ▪ etc… Copyright © 3-shake, Inc. All Rights Reserved. 6
Cloud Runはアプリケーション側で管理する TerraformでもCloud Runは管理できる。が、 1. 学習コスト 2. 頻繁な変更 & ドリフト
3. ツール特性の不一致 アプリケーションエンジニアに Terraformを覚えてもらう必要があるた め、運用のハードルが高くなります。 環境変数や CPU、Memoryなど、アプ リ側で自由に変更したい項目が多い。 「デプロイ」という高頻度な行為に対し て、インフラ構築向けの Terraformとい うツールは過大であり、マッチしていな いと考えられます。 ※アプリ側で変更するとTerraformでドリフト (差分)になるため、ignore_changesの設 定が必要です。 であれば、そもそも Cloud Run自体は Terraformで管理せず、アプリ側での管理に任せたほうが良 い。 と自分は考えています。 Copyright © 3-shake, Inc. All Rights Reserved. 7
02 Cloud Runのデプロイの課題 Copyright © 3-shake, Inc. All Rights Reserved.
8
アプリケーションで使いたい値 こういった値をアプリケーション自体で使用したり、環境変数として 埋め込んで使用したい。 • • • • • • •
Service Account Cloud SQLのホスト Cloud Storage バケット名 Secret Manager サブネットワーク ◦ Direct VPC Egressを使う場合 連携するCloud RunのURL コンテナイメージ Copyright © 3-shake, Inc. All Rights Reserved. 9
環境ごとのパラメータを取得する ルールベースで決められるもの (課題が少ない ) リソース名など、命名規則やルールに基づいて一意に決定できるパラメータ。 設定の自動化が容易で、管理上の破綻が起きにくい領域です。 ルールベースで決められないもの (課題の本質 ) 接続先URLや個別識別
IDなど、実環境が作成されてからでないと確定しない パラメータ。これらは実環境から動的に値を取得してくる仕組みが必要になり ます。 Copyright © 3-shake, Inc. All Rights Reserved. 10
なにが課題なのか 環境ごとに異なるリソース名をどう渡すか ① 手動で取得してデプロイ設定に転記 • 単純にめんどくさい • コピペミスの可能性 • 環境が増えるごとに環境ごとのファイルが自動的に増殖する
• インフラ側の変更によってドリフト(乖離)が発生しうる ② デプロイ実行時に gcloudで動的取得 • リソース名がルールベースでないとき設計が破綻する • デプロイとは直接関係のない余分な参照権限を渡すことになる Copyright © 3-shake, Inc. All Rights Reserved. 11
03 どう解決したか Copyright © 3-shake, Inc. All Rights Reserved. 12
tfstateの利用 Source of Truthとしてのtfstateの利用 tfstateからの直接取得による簡潔化 Terraformが管理するインフラ情報はすべて tfstateに記載されています。 手動でのコピペを排除し、ここから直接取得するのが最も安全で簡潔な 方法です。 オブジェクト参照権限のみのシンプル管理
tfstateはCloud Storage Objectとして保存されるため、デプロイ用の Service Accountに対してオブジェクトの参照権限を付与するだけで安 全 にアクセスが完結します。 ツール: tfstate-lookup tfstateを効率的に参照するための外部ツールとして、 fujiwara/tfstate-lookup が利用しやすかったです。 https://github.com/fujiwara/tfstate-lookup Copyright © 3-shake, Inc. All Rights Reserved. 13
tfstate参照をデプロイに組み込む パラメータの集約 デプロイ用の tfstateに必要なパラメータをまとめ、不要な情報を参照させない (remote state参照) 最小権限の付与 デプロイ用の GitHub Actionsには、該当するデプロイ用
tfstateへのアクセス権の み を安全に付与する パラメータを利用したデプロイ デプロイ時に tfstateを直接参照し、環境変数などの必要なパラメータを動的に利用 して展開する 環境ごとの管理 環境ごとに保存先 GCSおよびtfstateファイルが作成されるため、デプロイ対象に 応じて差し替える Copyright © 3-shake, Inc. All Rights Reserved. 14
もう一歩進めたい パラメータ取得の仕組み化 tfstate-lookupを使用して、いい感じにデプロイパラメータを取得する仕組みはで きた。 デプロイ連携の課題 取得したデプロイパラメータを、実際のデプロイ処理へ渡す箇所がまだこなれて いない。 AWS ECSにおける ecspresso
AWSのECS環境では、このあたりをいい感じにハンドリングしてくれる kayac/ecspresso が存在。 https://github.com/kayac/ecspresso 解決へ向けた試行錯誤 (clrnd) Cloud Runでも同様の体験を実現するため、自作ツール masasuzu/clrnd を開 発してます。 https://github.com/masasuzu/clrnd Copyright © 3-shake, Inc. All Rights Reserved. 15
clrnd • tfstateから取得した値をマニュフェストテンプレートに埋めてデプロイする形です https://speakerdeck.com/masasuzu/2026-06-18-ecspressonotfstatecan-zhao-kabian-li-sukitahua?slide=23 Copyright © 3-shake, Inc. All Rights
Reserved. 16
04 まとめ Copyright © 3-shake, Inc. All Rights Reserved. 17
まとめ 1. デプロイパラメータの課題 2. tfstate-lookupの導入 3. clrnd(おまけ) インフラ変更時における情報の不整合(ドリフ ト)や、安全かつ正確なパラメータ取得方法が 大きな運用課題となっていた。
tfstateをSource of Truthとしてパラメータを自 動取得。設定ファイルへの直書きを排除。 AWS ECSで実績のある ecspressoに影響を 受け、Cloud Run向けデプロイツールとして自 作開発を進行中。 主なボトルネック : ・値の取得・自動化は実現 ・実際のデプロイ処理へ安全に値を渡す連携 部分に、依然として課題が残る ・手動管理による設定ミス ・インフラ状態との乖離 Copyright © 3-shake, Inc. All Rights Reserved. 現在のステータス : 今後の展望 : ・本番運用への正式投入 ・想定する要件(マニフェスト埋め込み等)は 既に実装済み