Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ECSネイティブBlue/Greenデプロイについて調べてみた
Search
枡川健太郎
October 19, 2025
0
220
ECSネイティブBlue/Greenデプロイについて調べてみた
枡川健太郎
October 19, 2025
Tweet
Share
More Decks by 枡川健太郎
See All by 枡川健太郎
CloudWatch MCP サーバーと CloudWatch Application Signals MCP サーバーを使ってみた
masukawa
2
520
[re:Inforce2025振り返り勉強会]アプリケーションコードもIaCコードもまとめてチェック! Amazon InspcetorのCode Securityを試してみる!
masukawa
0
30
[k8s novice x JAWSコンテナ]Kubernetes Wakaran Tokyo #3 EKS Hands-on 解説
masukawa
0
65
re_Invent 2024 コンテナ関連アップデート総まとめ #cmregrowth
masukawa
0
690
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
YesSQL, Process and Tooling at Scale
rocio
173
15k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
610
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Rails Girls Zürich Keynote
gr2m
95
14k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Transcript
ECS ネイティブ Blue/Greenデプロイに ついて調べてみた 枡川健太郎 クラスメソッド株式会社
2 ECS ネイティブBlue/Greenとは? Amazon ECS blue/green service deployments workflow •
CodeDeploy不要 • ECS Service Connectで利⽤可
テスト⽤アーキテクチャー 3
4 CDKで作成すると? • ECSサービスでdeploymentStrategyとして BLUE_GREENを指定 • ターゲットグループ側で本番リスナーとテストリス ナーを指定 • ECS
Blue/Green専⽤のインフラストラクチャー ロールが必要
5 マネジメントコンソールを⾒てみる 「すべて⼀度に」しか選べない トラフィック切り替え後に 既存タスクを残す時間
6 デプロイしてみる(スケールアップ前)
7 デプロイしてみる (スケールアップ) Green側のECSタスクを起動中
8 デプロイしてみる (テストトラフィック移⾏) テストリスナーの重み付けを変更中
9 デプロイしてみる (テストトラフィック移⾏後) テストリスナーの重み付けを変更後
10 デプロイしてみる (本番トラフィック移⾏) 本番リスナーの重み付けを変更中
11 デプロイしてみる (ベイク時間) 既存タスクを残して待機中
12 デプロイしてみる (クリーンアップ) 既存タスクを削除中
トラフィックの切り替え 13 • Modify Rule APIを利⽤して、ECSが転送時に重み付けを変更 • テストトラフィック移⾏後、本番トラフィック移⾏までの時間を制御するこ とは不可 ◦
4回試した所、42秒、42秒、41秒、42秒 • テストリスナーを利⽤して何かしらのテストを⾏う場合はライフサイクルルー ルの設定が必須
ライフサイクルフック 14 • スケールアップ前 (Pre scale up) • スケールアップ後 (After
scale up) • テストトラフィック移⾏ (Test traffic shift) • テストトラフィック移⾏後 (After test traffic shift) • 本番トラフィック移⾏ (Production traffic shift) • 本番トラフィック移⾏後 (After production traffic shift)
ロールバック 15 • Modify Rule APIを利⽤して、ECSが転送時の重み付けを戻す • テストトラフィック移⾏後までにロールバックできるなら、本番には影響を 出さずにロールバック可能 ◦
ここでライフサイクルフックを利⽤したテストを⾏うべき • ベイク時間(本番トラフィック後に切り替えた際)は、まず本番リスナーの重み 付けを変更、次にテストリスナーも戻す ◦ 検証してみた所 ▪ 「ロールバック」実⾏後 → (17秒) → 本番側重み付け変更 → (36秒) → テストリスナー側重み付け変更
None