App Service のデプロイスロットで Blue-Green デプロイを行う

App Service の staging スロットに新バージョンをデプロイし、スワップ操作で本番環境を無停止で切り替える Blue-Green デプロイの一連の流れを体験します。

中級50Azure 実環境

ラボ概要

アプリケーションの新バージョンをリリースするとき、本番環境を直接更新するとダウンタイムや不具合発生時の切り戻しの難しさが問題になります。Blue-Green デプロイは、現行環境(Blue)と新環境(Green)を並行して用意し、動作確認が済んだ時点でトラフィックの向き先を一括で切り替える手法です。切り替えは一瞬で完了し、問題があれば同じ操作で元に戻せます。

Azure App Service では、Standard 以上のプランで利用できる「デプロイ スロット」がこの仕組みをそのまま提供しています。staging スロットに新バージョンをデプロイして検証し、スワップ操作で本番スロットと入れ替えると、ワーカーのウォームアップ後に切り替わるためコールドスタートも発生しません。AZ-204 (Azure Developer Associate) でも頻出のトピックです。

このラボでは S1 プランの Web アプリを作成し、バージョン 1.0 (Blue) を本番スロットへ、バージョン 2.0 (Green) を staging スロットへ Zip デプロイします。その後スワップを実行し、本番の URL を変えないままコンテンツが無停止で切り替わることを確認します。操作はすべて Cloud Shell の az CLI で行います。

学習目標

  • App Service プラン (S1) と Web アプリを az CLI で作成できる
  • デプロイ スロットの作成方法と、Standard 以上のプランが必要である理由を理解する
  • az webapp deploy を使った Zip デプロイを本番スロットと staging スロットの両方に実行できる
  • スロットのスワップにより本番環境を無停止で切り替えられる
  • スワップを再実行することでロールバックできることを説明できる

前提

  • サンドボックス環境の Azure ポータルにサインイン済みであること
  • リソースはすべて japaneast (東日本) リージョンに作成すること
  • 作業は割り当て済みのサンドボックス リソースグループ 1 つの中だけで行うこと(新しいリソースグループの作成やサブスクリプション設定の変更はできません)

ラボの構成

  1. 1Cloud Shell の起動と変数の設定
  2. 2App Service プラン (S1) の作成
  3. 3Web アプリの作成
  4. 4バージョン 1.0 (Blue) を本番スロットへデプロイ
  5. 5staging スロットの作成
  6. 6バージョン 2.0 (Green) を staging スロットへデプロイ
  7. 7スロットのスワップ (Blue-Green 切替)
  8. 8(任意) 再スワップでロールバックする
  9. 9動作確認
  10. 10完了チェックリスト
  11. 11後片付け

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

構成図

参考リソース