Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Blue/Green Deploymentで ロールバック時間を半減した話 2024/06/20 株式会社ワンキャリア 渡邉 美希パウラ
Slide 2
Slide 2 text
Copyright © ONE CAREER Inc. All Rights Reserved. 目次 2 ● はじめに ● デプロイのロールバックにおける課題 ● 解決策 ● 効果 ● ダウンタイムなしで切り替える方法 ● Blue/Green Deployment導入時の注意点
Slide 3
Slide 3 text
ONE CAREER Inc . Copyright © ONE CAREER Inc. All Rights Reserved. 自己紹介 Career 趣味 ひとこと 3 渡邉 美希パウラ SRE 2023/06 カナダの大学を卒業 2023/10~ ワンキャリアにSREとして新卒入社 ゲーム、音楽、スポーツ ブラジル生まれブラジル育ちのトリリンガルです
Slide 4
Slide 4 text
人の数だけ、 キャリアをつくる。 MISSION
Slide 5
Slide 5 text
Copyright © ONE CAREER Inc. 事業内容 5 1. キャリアデータとは、求職者の活動データ、企業の採用データの総称。 2. 日本の人事部「HRアワード2020」にてプロフェッショナル部門(人材採用・雇用部門)で最優秀賞を受賞。 3. NewsPicks発表「【図解】20サービスを徹底比較。本当に役立つ「就活サイト」一覧より。 4. ProFuture株式会社/HR総研「HR総研×楽天みん就:2024年卒学生の就職活動動向調査 結果報告【就職活動編】」(https://www.hrpro.c o.jp/research_detail.php?r_no=360)より。 5. 2023年12月時点の実測値。 これまで可視化されていなかった「キャリアデータ1 」を活用し、就職・採用の意思決定をサポート。 サービス一覧 5 5
Slide 6
Slide 6 text
Copyright © ONE CAREER Inc. All Rights Reserved. 目次 6 ● はじめに ● デプロイのロールバックにおける課題 ● 解決策 ● 効果 ● ダウンタイムなしで切り替える方法 ● Blue/Green Deployment導入時の注意点
Slide 7
Slide 7 text
Copyright © ONE CAREER Inc. All Rights Reserved. 7 デプロイをロールバックする時 どれくらい時間かかりますか?
Slide 8
Slide 8 text
Copyright © ONE CAREER Inc. All Rights Reserved. 前提: AWS ECS Fargate, ALB, Rolling Updateを使ってアプリケーションコンテナを運用 はじめに 8 デプロイ方式はRolling Update
Slide 9
Slide 9 text
Copyright © ONE CAREER Inc. All Rights Reserved. 目次 9 ● はじめに ● デプロイのロールバックにおける課題 ● 解決策 ● 効果 ● ダウンタイムなしで切り替える方法 ● Blue/Green Deployment導入時の注意点
Slide 10
Slide 10 text
Copyright © ONE CAREER Inc. All Rights Reserved. リリース起因のインシデントにて、ロールバックに10分以上かかっており インシデント発生から復旧までに遅れが生じていた。 インシデント復旧における課題 10 ここだけで10分以上かかっていた ● AWSコンソールにログイン ● 旧バージョンタスクの立ち上げ・切り替え ロールバック開始 復旧 インシデント発生 ● 報告 ● アプリケーションの状態確認
Slide 11
Slide 11 text
Copyright © ONE CAREER Inc. All Rights Reserved. 目次 11 ● はじめに ● デプロイのロールバックにおける課題 ● 解決策 ● 効果 ● ダウンタイムなしで切り替える方法 ● Blue/Green Deployment導入時の注意点
Slide 12
Slide 12 text
Copyright © ONE CAREER Inc. All Rights Reserved. Rolling UpdateからBlue/Green Deployに移行し インシデントが発生したら即座にロールバックできるようにした。 解決策 12 Blue/Green Deploymentとは? → 一時的に新・旧バージョンを共存させ、トラフィックの切り替えでデプロイする方式 Blue 旧バージョン Green 新バージョン Application Load Balancer AWS CodeDeploy 本番環境の切り替え
Slide 13
Slide 13 text
Copyright © ONE CAREER Inc. All Rights Reserved. Rolling UpdateからBlue/Green Deployに移行し インシデントが発生したら即座にロールバックできるようにした。 解決策 13 BEFORE:旧バージョンを再デプロイして切り替える 新バージョン(不具合あり) ロールバック開始 旧バージョン(不具合なし) 旧バージョンに少しずつ切り替え ロールバック完了
Slide 14
Slide 14 text
Copyright © ONE CAREER Inc. All Rights Reserved. Rolling UpdateからBlue/Green Deployに移行し インシデントが発生したら即座にロールバックできるようにした。 解決策 14 AFTER:旧バージョンも稼働している状態なのでトラフィックを切り替えるだけ ロールバック開始 トラフィックを切り替える ロールバック完了
Slide 15
Slide 15 text
Copyright © ONE CAREER Inc. All Rights Reserved. 目次 15 ● はじめに ● リリースのロールバックにおける課題 ● 解決策 ● 効果 ● ダウンタイムなしで切り替える方法 ● Blue/Green Deployment導入時の注意点
Slide 16
Slide 16 text
Copyright © ONE CAREER Inc. All Rights Reserved. ロールバック時間半減 インシデント発生から 復旧までの時間が短縮 インシデントによる ユーザー影響を低減! ロールバック時間を10分から5分に半減することに成功! 効果 16
Slide 17
Slide 17 text
Copyright © ONE CAREER Inc. All Rights Reserved. 目次 17 ● はじめに ● リリースのロールバックにおける課題 ● 解決策 ● 効果 ● ダウンタイムなしで切り替える方法 ● Blue/Green Deployment導入時の注意点
Slide 18
Slide 18 text
Copyright © ONE CAREER Inc. All Rights Reserved. ダウンタイムなしでBlue/Green Deploymentに切り替える方法 18 新規リソースの作成 Blue/Green DeployのECSサービスの動作確認 Blue/Green DeployのECSサービスをデプロイ 1 2 3 ALBのリスナールールのTGをBlue/GreenのTGに切り替え 4
Slide 19
Slide 19 text
Copyright © ONE CAREER Inc. All Rights Reserved. STEP1:新規リソースの作成 ダウンタイムなしでBlue/Green Deploymentに切り替える方法 19 作っておくリソース ● Blue/Green Deployment方式のECSサービス ● CodedeployのDeployment Group ● Blue/Green Deployment用のターゲットグループ(以後TGと表記) ○ Blue環境とGreen環境の2つ 注意点⚠:既存のRolling Update方式のサービスはそのまま稼働させておく
Slide 20
Slide 20 text
Copyright © ONE CAREER Inc. All Rights Reserved. STEP2:Blue/Green DeployのECSサービスをデプロイ ダウンタイムなしでBlue/Green Deploymentに切り替える方法 20 注意点⚠:初回デプロイする時はALBのデフォルトルールにBlue/Green用のターゲッ トグループ(TG)を追加しないと失敗する! Weightは0!
Slide 21
Slide 21 text
Copyright © ONE CAREER Inc. All Rights Reserved. STEP3:Blue/Green DeployのECSサービスの動作確認 ダウンタイムなしでBlue/Green Deploymentに切り替える方法 21 自分だけBlue/Greenでデプロイした サービスにアクセス可能 自身のPCのIPアドレス限定で、Blue/GreenのECSサービスに疎通できるように リスナールールを追加すると低リスクで動作確認が可能になる
Slide 22
Slide 22 text
Copyright © ONE CAREER Inc. All Rights Reserved. STEP4:ALBのリスナールールのTGをBlue/GreenのTGに切り替える ダウンタイムなしでBlue/Green Deploymentに切り替える方法 22 Rolling Update weight: 1 Green Weight: 0 Rolling Update weight: 1 Green Weight: 1 Rolling Update weight: 0 Green Weight: 1 Weightを徐々にBlue/Greenサービスが疎通しているTGに移す GreenのWeightを1に Rolling UpdateのWeightを0に
Slide 23
Slide 23 text
Copyright © ONE CAREER Inc. All Rights Reserved. STEP4:ALBのリスナールールのTGをBlue/GreenのTGに切り替える ダウンタイムなしでBlue/Green Deploymentに切り替える方法 23 リスナールールが複数ある場合:ルール1つずつ、一気にTGのweightを逆転させる 動作確認 次のルール Rolling Update weight: 1 Green Weight: 0 Rolling Update weight: 0 Green Weight: 1
Slide 24
Slide 24 text
Copyright © ONE CAREER Inc. All Rights Reserved. 目次 24 ● はじめに ● リリースのロールバックにおける課題 ● 解決策 ● 効果 ● ダウンタイムなしで切り替える方法 ● Blue/Green Deployment導入時の注意点
Slide 25
Slide 25 text
Copyright © ONE CAREER Inc. All Rights Reserved. インフラコストとのトレードオフになる Blue/Green Deployment導入時の注意点 25 新・旧バージョンを一時的に共存させるということは、タスク数が一時的に倍に なるということ ● インフラコスト面で考慮すべきこと ○ 新・旧バージョンを共存させる時間 ○ デプロイ回数 ● Blue/Green Deploymentの恩恵を受けやすいケース ○ インフラコストに余裕がある場合 ○ 障害によるユーザー影響が比較的大きい場合
Slide 26
Slide 26 text
Copyright © ONE CAREER Inc. All Rights Reserved. 26 Thank you!