オンプレミス データを使用してクロスクラウドをスケーリングするハイブリッド アプリをデプロイする

このソリューション ガイドでは、Azure と Azure Stack Hub の両方にまたがり、1 つのオンプレミス データ ソースを使用するハイブリッド アプリをデプロイする方法について説明します。

ハイブリッド クラウド ソリューションを使用することで、プライベート クラウドが持つコンプライアンス面でのメリットとパブリック クラウドが持つスケーラビリティとを融合することができます。 また、開発者は、Microsoft デベロッパーのエコシステムを活用し、クラウド環境とオンプレミス環境にそのスキルを活かすこともできます。

概要と前提条件

このチュートリアルに従うことにより、開発者がパブリック クラウドとプライベート クラウドにまったく同じ Web アプリをデプロイできるようにするワークフローを構築します。 このアプリは、プライベート クラウド上にホストされた、インターネットを介したルーティングが不可能なネットワークにアクセスできます。 これらの Web アプリは監視され、トラフィックが急増すると、トラフィックをパブリック クラウドにリダイレクトするように DNS レコードがプログラムによって書き換えられます。 急増前の水準までトラフィックが減少すると、トラフィックは再びプライベート クラウドへルーティングされます。

このチュートリアルに含まれるタスクは次のとおりです。

  • ハイブリッド接続の SQL Server データベース サーバーをデプロイする。
  • グローバル Azure 内の Web アプリをハイブリッド ネットワークに接続する。
  • クラウド間スケーリング向けに DNS を構成する。
  • クラウド間スケーリング向けに SSL 証明書を構成する。
  • Web アプリを構成してデプロイする。
  • Traffic Manager プロファイルを作成し、クラウド間スケーリング向けに構成する。
  • トラフィックの増加に関して Application Insights の監視とアラートを設定する。
  • グローバル Azure と Azure Stack Hub の間で自動トラフィック切り替えを構成する。

ヒント

ハイブリッドの柱の図 Microsoft Azure Stack Hub は Azure の拡張機能です。 Azure Stack Hub により、オンプレミス環境にクラウド コンピューティングの機敏性とイノベーションがもたらされ、ハイブリッド アプリをビルドし、どこにでもデプロイできる唯一のハイブリッド クラウドが可能になります。

ハイブリッド アプリの設計の考慮事項に関する記事では、ハイブリッド アプリを設計、デプロイ、および運用するためのソフトウェア品質の重要な要素 (配置、スケーラビリティ、可用性、回復性、管理容易性、およびセキュリティ) についてレビューしています。 これらの設計の考慮事項は、ハイブリッド アプリの設計を最適化したり、運用環境での課題を最小限に抑えたりするのに役立ちます。

前提条件

このチュートリアルは、グローバル Azure と Azure Stack Hub についての基本知識があることを前提にしています。 チュートリアルを開始する前に、より詳しい情報を確認しておきたい場合は、以下の記事をお読みください。

このチュートリアルは、Azure サブスクリプションをお持ちであることも前提としています。 サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

前提条件

このソリューションを開始する前に、次の要件を満たしてください。

  • Azure Stack Development Kit (ASDK) または Azure Stack Hub 統合システムのサブスクリプション。 ASDK をデプロイするには、インストーラーを使用して ASDK をデプロイする方法の手順に従います。

  • ご利用の Azure Stack Hub 環境に次のものがインストールされている必要があります。

    • Azure App Service。 Azure Stack Hub のオペレーターと協力して、Azure App Service をご自分の環境にデプロイし、構成してください。 このチュートリアルでは、App Service で専用の worker ロールを少なくとも 1 つ利用できるようにすることが求められます。
    • Windows Server 2016 イメージ。
    • Windows Server 2016 と Microsoft SQL Server イメージ。
    • 適切なプランとオファー。
    • Web アプリのドメイン名。 ドメイン名を持っていない場合、GoDaddy、Bluehost、InMotion などのドメイン プロバイダーから 1 つ購入できます。
  • 信頼のおける証明機関 (LetsEncrypt など) から取得したドメインの SSL 証明書。

  • SQL Server データベースと通信し、Application Insights をサポートする Web アプリ。 GitHub から dotnetcore-sqldb-tutorial サンプル アプリをダウンロードできます。

  • Azure 仮想ネットワークと Azure Stack Hub 仮想ネットワークの間のハイブリッド ネットワーク。 詳細な手順については、Azure と Azure Stack Hub を使用したハイブリッド クラウド接続の構成に関するページを参照してください。

  • Azure Stack Hub にプライベート ビルド エージェントが存在する、継続的インテグレーション/継続的デプロイ (CI/CD) のハイブリッド パイプライン。 詳細な手順については、「Azure および Azure Stack Hub アプリケーションのハイブリッド クラウド ID を構成する」を参照してください。

ハイブリッド接続の SQL Server データベース サーバーをデプロイする

  1. Azure Stack Hub ユーザー ポータルにサインインします。

  2. [ダッシュボード][Marketplace] を選択します。

    Azure Stack Hub Marketplace を示すスクリーンショット。

  3. [Marketplace][Compute](計算) を選択し、 [More](その他) を選択します。 [More](その他) から [Free SQL Server License: SQL Server 2017 Developer on Windows Server] イメージを選択します。

    Azure Stack Hub ユーザー ポータルで仮想マシン イメージを選択する方法を示すスクリーンショット。

  4. [Free SQL Server License: SQL Server 2017 Developer on Windows Server] で、 [作成] を選択します。

  5. [基本] > [基本設定の構成] で、仮想マシン (VM) の [名前]、SQL Server SA の [ユーザー名]、SA の [パスワード] を入力します。 [サブスクリプション] ドロップダウン リストから、デプロイ先のサブスクリプションを選択します。 [リソース グループ] では [Choose existing](既存の選択) を使用し、Azure Stack Hub Web アプリと同じリソース グループに VM を配置します。

    Azure Stack Hub ユーザー ポータルで VM の基本設定を構成する方法を示すスクリーンショット。

  6. [サイズ] で VM のサイズを選択します。 このチュートリアルでは、A2_Standard または DS2_V2_Standard をお勧めします。

  7. [設定] > [オプション機能の構成] で、次の設定を構成します。

    • ストレージ アカウント: 新しいアカウントが必要な場合は、作成します。

    • 仮想ネットワーク:

      重要

      SQL Server VM が VPN ゲートウェイと同じ仮想ネットワーク上にデプロイされていることを確認してください。

    • [パブリック IP アドレス] : 既定の設定を使用します。

    • [ネットワーク セキュリティ グループ] : (NSG)。 新しい NSG を作成します。

    • [拡張機能] と [監視] :既定の設定のままにします。

    • [診断ストレージ アカウント] :新しいアカウントが必要な場合は、作成します。

    • [OK] を選択して構成を保存します。

      Azure Stack Hub ユーザー ポータルでオプションの VM フィーチャーを構成する方法を示すスクリーンショット。

  8. [SQL Server の設定] で、次の設定を構成します。

    • [SQL 接続][パブリック (インターネット)] を選択します。

    • [ポート] は、既定値 (1433) のままにします。

    • [SQL 認証] には [有効] を選択します。

      注意

      SQL 認証を有効にすると、 [基本] で構成した "SQLAdmin" の情報が自動設定されます。

    • その他の設定は、既定値のままにしてください。 [OK] を選択します。

      Azure Stack Hub ユーザー ポータルで SQL Server 設定を構成する方法を示すスクリーンショット。

  9. [概要] で VM の構成を確認し、 [OK] を選択してデプロイを開始します。

    Azure Stack Hub ユーザー ポータルの構成の概要を示すスクリーンショット。

  10. 新しい VM の作成には時間がかかります。 VM の状態は、 [仮想マシン] で確認できます。

    Azure Stack Hub ユーザー ポータルの仮想マシンの状態を示すスクリーンショット。

Azure と Azure Stack Hub に Web アプリを作成する

Azure App Service は、Web アプリの実行と管理を簡単にします。 Azure Stack Hub は Azure と一貫性があるため、App Service はどちらの環境でも実行できます。 App Service を使用し、アプリをホストします。

Web アプリを作成する

  1. Azure で App Service プランを管理する」の手順に従って、Azure で Web アプリを作成します。 Web アプリは、ご利用のハイブリッド ネットワークと同じサブスクリプションおよびリソース グループに配置してください。

  2. 前の手順 (1) を Azure Stack Hub でも行います。

Azure Stack Hub 用のルートを追加する

Azure Stack Hub 上の App Service は、ユーザーがアプリにアクセスできるよう、パブリック インターネットからルーティングできなければなりません。 Azure Stack Hub がインターネットからアクセスできる場合、Azure Stack Hub Web アプリの公開 IP アドレスまたは URL をメモします。

ASDK を使用している場合は、静的 NAT のマッピングを構成することで、仮想環境の外部に App Service を公開することができます。

Azure 内の Web アプリをハイブリッド ネットワークに接続する

Azure の Web フロントエンドと Azure Stack Hub の SQL Server データベースを接続するには、Azure と Azure Stack Hub の間のハイブリッド ネットワークに Web アプリを接続する必要があります。 接続を有効にするためには、次の作業が必要となります。

  • ポイント対サイト接続を構成します。
  • Web アプリを構成します。
  • Azure Stack Hub 内のローカル ネットワーク ゲートウェイに変更を加える

ポイント対サイト接続のために Azure 仮想ネットワークを構成する

Azure App Service と統合するためには、ハイブリッド ネットワークの Azure 側にある仮想ネットワーク ゲートウェイでポイント対サイト接続を許可する必要があります。

  1. Azure portal で仮想ネットワーク ゲートウェイのページに移動します。 [設定] で、 [ポイント対サイトの構成] を選択します。

    Azure 仮想ネットワーク ゲートウェイのポイント対サイト オプションを示すスクリーンショット。

  2. [今すぐ構成] を選択し、ポイント対サイトを構成します。

    Azure 仮想ネットワーク ゲートウェイでポイント対サイトの構成を開始する方法を示すスクリーンショット。

  3. [ポイント対サイト] 構成ページで、使用するプライベート IP アドレス範囲を [アドレス プール] に入力します。

    注意

    指定する範囲が、ハイブリッド ネットワークのグローバル Azure コンポーネントまたは Azure Stack Hub コンポーネントのサブネットによって既に使用されているアドレス範囲と重複しないようにしてください。

    [トンネルの種類][IKEv2 VPN] チェック ボックスをオフにします。 [保存] を選択して、ポイント対サイトの構成を完了します。

    Azure 仮想ネットワーク ゲートウェイのポイント対サイト設定を示すスクリーンショット。

Azure App Service アプリとハイブリッド ネットワークを統合する

  1. Azure VNet にアプリを接続するには、「ゲートウェイが必要な Vnet 統合」の指示に従ってください。

  2. Web アプリをホストしている App Service プランの [設定] に移動します。 [設定][ネットワーク] を選択します。

    App Service プランのネットワークを構成する方法を示すスクリーンショット。

  3. [VNET 統合][管理するにはここをクリック] を選択します。

    App Service プランの VNET 統合を管理する方法を示すスクリーンショット。

  4. 構成する VNET を選択します。 [IP アドレスが VNET にルーティングされました] で、Azure VNet、Azure Stack Hub VNet、ポイント対サイトのアドレス空間に使用する IP アドレス範囲を入力します。 [保存] を選択し、これらの設定を確認して保存します。

    仮想ネットワーク統合でルーティングする IP アドレスの範囲を示すスクリーンショット。

App Service と Azure VNet の統合方法の詳細については、「アプリを Azure 仮想ネットワークに統合する」を参照してください。

Azure Stack Hub 仮想ネットワークを構成する

App Service のポイント対サイト アドレス範囲からのトラフィックをルーティングするために、Azure Stack Hub 仮想ネットワーク内のローカル ネットワーク ゲートウェイを構成する必要があります。

  1. Azure Stack Hub ポータルで、 [ローカル ネットワーク ゲートウェイ] に移動します。 [設定][構成] を選択します。

    Azure Stack Hub ローカル ネットワーク ゲートウェイのゲートウェイ構成オプションを示すスクリーンショット。

  2. [アドレス空間] に、Azure の仮想ネットワーク ゲートウェイのポイント対サイト アドレス範囲を入力します。

    Azure Stack Hub ローカル ネットワーク ゲートウェイのポイント対サイト アドレス空間を示すスクリーンショット。

  3. [保存] を選択し、構成を検証して保存します。

クラウド間スケーリング向けに DNS を構成する

クラウド間アプリ向けに DNS を適切に構成することで、ユーザーはグローバル Azure と Azure Stack Hub の Web アプリ インスタンスにアクセスできます。 また、このチュートリアルの DNS 構成を使えば、負荷が増減したときに Azure Traffic Manager でトラフィックをルーティングすることも可能です。

App Service ドメインが機能しないため、このチュートリアルでは Azure DNS を使用して DNS を管理します。

サブドメインを作成する

Traffic Manager は DNS の CNAME に依存しているため、エンドポイントに対して適切にトラフィックをルーティングするためには、サブドメインが必要となります。 DNS レコードとドメイン マッピングの詳細については、「Traffic Manager を使用したドメインのマップ」を参照してください。

Azure エンドポイントについては、Web アプリにアクセスするためにユーザーが使用できるサブドメインを作成します。 このチュートリアルでは、app.northwind.com を使用できますが、この値はご自身のドメインに合わせてカスタマイズする必要があります。

また、Azure Stack Hub エンドポイントについても、A レコードを使用してサブドメインを作成する必要があります。 azurestack.northwind.com を使用できます。

Azure でカスタム ドメインを構成する

  1. Azure App Service に CNAME をマップして、app.northwind.com ホスト名を Azure Web アプリに追加します。

Azure Stack Hub でカスタム ドメインを構成する

  1. Azure App Service に A レコードをマップして、ホスト名 azurestack.northwind.com を Azure Stack Hub Web アプリに追加します。 App Service アプリには、インターネット ルーティング可能な IP アドレスを使用します。

  2. Azure App Service に CNAME をマップして、ホスト名 app.northwind.com を Azure Stack Hub Web アプリに追加します。 CNAME のターゲットとして、前の手順 (1) で構成したホスト名を使用してください。

クラウド間スケーリング向けに SSL 証明書を構成する

Web アプリによって収集される機密データを移動中および SQL データベースで保管されている間、セキュリティで保護することが重要です。

すべての受信トラフィックについて SSL 証明書を使用するように、Azure の Web アプリと Azure Stack Hub の Web アプリを構成します。

Azure と Azure Stack Hub に SSL を追加する

Azure に SSL を追加するには、次の手順に従います。

  1. 作成したサブドメインに対し、取得した SSL 証明書が有効であることを確認します (ワイルドカード証明書を使用してもかまいません)。

  2. Azure portal で、Azure Web Apps に既存のカスタム SSL 証明書をバインドする方法に関する記事の「Web アプリの準備」と SSL 証明書のバインドに関するセクションの指示に従います。 [SSL の種類] として [SNI ベースの SSL] を選択します。

  3. すべてのトラフィックを HTTP ポートにリダイレクトします。 Azure Web Apps への既存のカスタム SSL 証明書のバインドに関する記事のセクション「HTTPS の適用」の手順に従ってください。

Azure Stack Hub に SSL を追加するには、次の手順に従います。

  1. Azure Stack Hub ポータルを使用して、Azure で使用した手順 1 から 3 を繰り返します。

Web アプリを構成し、デプロイする

テレメトリを正しい Application Insights インスタンスに報告するようにアプリ コードを構成し、正しい接続文字列で Web アプリを構成します。 Application Insights の詳細については、「Application Insights とは何か?」を参照してください。

Application Insights を追加する

  1. Microsoft Visual Studio で Web アプリを開きます。

  2. プロジェクトに Application Insights を追加し、Web トラフィックが増減したときのアラートを生成するために Application Insights によって使用されるテレメトリが転送されるようにします。

動的接続文字列を構成する

Web アプリの各インスタンスでは、異なる方法を使用して SQL データベースに接続します。 Azure のアプリでは SQL Server VM のプライベート IP アドレスが使用され、Azure Stack Hub のアプリでは SQL Server VM のパブリック IP アドレスが使用されます。

注意

Azure Stack Hub 統合システムでは、パブリック IP アドレスをインターネット ルーティング可能にしないでください。 ASDK では、パブリック IP アドレスは ASDK の外部にルーティングできません。

App Service 環境変数を使用し、アプリの各インスタンスに異なる接続文字列を渡すことができます。

  1. Visual Studio でアプリを開きます。

  2. Startup.cs を開いて、次のコード ブロックを見つけます。

    services.AddDbContext<MyDatabaseContext>(options =>
        options.UseSqlite("Data Source=localdatabase.db"));
    
  3. 前のコード ブロックを次のコードに置き換えます。このコードでは、appsettings.json ファイルで定義されている接続文字列が使用されます。

    services.AddDbContext<MyDatabaseContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("MyDbConnection")));
     // Automatically perform database migration
     services.BuildServiceProvider().GetService<MyDatabaseContext>().Database.Migrate();
    

App Service アプリ設定を構成する

  1. Azure と Azure Stack Hub 用の接続文字列を作成します。 IP アドレス以外は、同じ文字列を使用してください。

  2. Azure と Azure Stack Hub で、Web アプリのアプリ設定として適切な接続文字列を追加します。そのとき、名前のプレフィックスとして SQLCONNSTR\_ を使用します。

  3. Web アプリ設定を保存し、アプリを再起動します。

グローバル Azure で自動スケーリングを有効にする

App Service 環境で Web アプリを作成するとき、1 つのインスタンスから始めます。 自動的にスケールアウトしてインスタンスを追加することで、アプリ用のコンピューティング リソースを増やすことができます。 同様に、自動的にスケールインして、アプリに必要なインスタンスの数を減らすことができます。

注意

スケールアウトとスケールインを構成するには、App Service プランが必要です。 プランをお持ちでない場合は、作成したうえで次の手順を開始してください。

自動スケールアウトを有効にする

  1. Azure portal で、スケールアウトしたいサイトの App Service プランを見つけて、 [スケールアウト (App Service プラン)] を選択します。

    Azure App Service をスケールアウトする方法を示すスクリーンショット。

  2. [自動スケールの有効化] を選択します。

    Azure App Service で自動スケーリングを有効にする方法を示すスクリーンショット。

  3. [自動スケール設定の名前] に名前を入力します。 既存の自動スケール ルールで、 [メトリックに基づいてスケーリングする] を選択します。 [インスタンスの制限] で、 [最小] を 1、 [最大] を 10、 [既定] を 1 に設定します。

    Azure App Service で自動スケーリングを構成する方法を示すスクリーンショット。

  4. [+ ルールの追加] を選択します。

  5. [メトリック ソース][現在のリソース] を選択します。 このルールには、次の条件とアクションを使用します。

条件

  1. [時間の集計][平均] を選択します。

  2. [メトリック名][CPU の割合] を選択します。

  3. [演算子][より大きい] を選択します。

    • [しきい値]50 に設定します。
    • [期間]10 に設定します。

アクション

  1. [操作][カウントを増やす量] を選択します。

  2. [インスタンス数]2 に設定します。

  3. [クール ダウン]5 に設定します。

  4. [追加] を選択します。

  5. [+ ルールの追加] を選択します。

  6. [メトリック ソース][現在のリソース] を選択します。

    注意

    現在のリソースには、App Service プランの名前/GUID が表示され、 [リソースの種類] ドロップダウン リストと [リソース] ドロップダウン リストは利用できません。

自動スケールインを有効にする

トラフィックが減ると、Azure Web アプリでは、アクティブ インスタンスの数を自動的に減らし、コストを減らすことができます。 このアクションはスケールアウトより消極的であり、アプリ ユーザーへの影響を最小限に抑えます。

  1. [既定] のスケールアウト条件に移動し、 [+ ルールの追加] を選択します。 このルールには、次の条件とアクションを使用します。

条件

  1. [時間の集計][平均] を選択します。

  2. [メトリック名][CPU の割合] を選択します。

  3. [演算子][より小さい] を選択します。

    • [しきい値]30 に設定します。
    • [期間]10 に設定します。

アクション

  1. [操作][カウントを減らす量] を選択します。

    • [インスタンス数]1 に設定します。
    • [クール ダウン]5 に設定します。
  2. [追加] を選択します。

Traffic Manager プロファイルを作成し、クラウド間スケーリングを構成する

Azure portal を使用して Traffic Manager プロファイルを作成し、クラウド間スケーリングを有効にするようにエンドポイントを構成します。

Traffic Manager プロファイルを作成する

  1. [リソースの作成] を選択します。

  2. [ネットワーク] を選択します。

  3. [Traffic Manager プロファイル] を選択し、次の設定を構成します。

    • [名前] に、プロファイルの名前を入力します。 この名前は、trafficmanager.net ゾーン内で一意であることが必要です。新しい DNS 名を作成するときに使用されます (例: northwindstore.trafficmanager.net)。
    • [ルーティング方法][重み付け] を選択します。
    • [サブスクリプション] で、このプロファイルを作成するサブスクリプションを選択します。
    • [リソース グループ] で、このプロファイルの新しいリソース グループを作成します。
    • [リソース グループの場所] で、リソース グループの場所を選択します。 これはリソース グループの場所を指定する設定であり、グローバルにデプロイされる Traffic Manager プロファイルには影響しません。
  4. [作成] を選択します

    Traffic Manager プロファイルを作成する方法を示すスクリーンショット。

    Traffic Manager プロファイルのグローバル デプロイが完了すると、その作成先となったリソース グループのリソース一覧にそのプロファイルが表示されます。

Traffic Manager エンドポイントの追加

  1. 作成した Traffic Manager プロファイルを検索します プロファイルのリソース グループに移動した場合は、プロファイルを選択してください。

  2. [Traffic Manager プロファイル][設定] で、 [エンドポイント] を選択します。

  3. [追加] を選択します。

  4. Azure Stack Hub について、 [エンドポイントの追加] で次の設定を使用します。

    • [Type] (種類) で、 [外部エンドポイント] を選択します。
    • エンドポイントの [名前] を入力します。
    • 完全修飾ドメイン名 (FQDN) または IP として、Azure Stack Hub Web アプリの外部 URL を入力します。
    • [重み] は、既定値 (1) のままにします。 これにより、このエンドポイントが正常な状態である場合、すべてのトラフィックがそのエンドポイントに送信されるようになります。
    • [無効として追加] はオフのままにします。
  5. [OK] を選択して、Azure Stack Hub エンドポイントを保存します。

次に、Azure エンドポイントを構成します。

  1. [Traffic Manager プロファイル][エンドポイント] を選択します。

  2. [+追加] を選択します。

  3. Azure について、 [エンドポイントの追加] で次の設定を使用します。

    • [Type] (種類) で、 [Azure エンドポイント] を選択します。
    • エンドポイントの [名前] を入力します。
    • [ターゲット リソースの種類] で、 [App Service] を選択します。
    • [ターゲット リソース][アプリ サービスの選択] を選択し、同じサブスクリプションにある Web アプリの一覧を表示します。
    • [リソース] で、最初のエンドポイントとして追加する App Service を選択します。
    • [重み]2 を選択します。 この設定により、プライマリ エンドポイントが正常ではない場合や、トリガーされたらトラフィックをルーティングするルール/アラートがある場合、すべてのトラフィックがそのエンドポイントに送信されるようになります。
    • [無効として追加] はオフのままにします。
  4. [OK] を選択して、Azure エンドポイントを保存します。

構成したエンドポイントはどちらも、 [Traffic Manager プロファイル][エンドポイント] を選択すると表示されます。 次の画面キャプチャの例には、2 つのエンドポイントが、それぞれの状態および構成情報と共に表示されています。

Traffic Manager プロファイルのエンドポイントを示すスクリーンショット。

Azure で Application Insights の監視とアラートを設定する

Azure Application Insights を使用すると、アプリを監視し、構成した条件に応じてアラートを送信できます。 たとえば、アプリが利用できなくなった、障害が発生した、パフォーマンスの問題が生じたなどの例があります。

アラートの作成には、Azure Application Insights のメトリックを使用します。 これらのアラートがトリガーされると、Web アプリ インスタンスが自動的に Azure Stack Hub から Azure に切り替わってスケールアウトし、その後、Azure Stack Hub に戻ってスケールインします。

メトリックに基づくアラートを作成する

Azure portal で、このチュートリアルのリソース グループに移動して Application Insights インスタンスを選択し、 [Application Insights] を開きます。

Application Insights を示すスクリーンショット。

このビューを使用してスケールアウト アラートとスケールイン アラートを作成します。

スケールアウト アラートを作成する

  1. [構成][アラート (クラシック)] を選択します。

  2. [メトリック アラートの追加 (クラシック)] を選択します。

  3. [ルールの追加] で、次の設定を構成します。

    • [名前] に「Burst into Azure Cloud」と入力します。
    • [説明] は省略できます。
    • [ソース][アラート対象][メトリック] を選択します。
    • [条件] で、自分のサブスクリプション、Traffic Manager プロファイルのリソース グループ、リソースに使用する Traffic Manager プロファイルの名前を選択します。
  4. [メトリック][要求率] を選択します。

  5. [条件][より大きい] を選択します。

  6. [しきい値] に「2」を入力します。

  7. [期間][直近 5 分] を選択します。

  8. [通知手段] で次のように設定します。

    • [所有者、共同作成者、閲覧者に電子メールを送信] のチェック ボックスをオンにします。
    • [追加する管理者の電子メール] にメール アドレスを入力します。
  9. メニュー バーで [保存] を選択します。

スケールイン アラートを作成する

  1. [構成][アラート (クラシック)] を選択します。

  2. [メトリック アラートの追加 (クラシック)] を選択します。

  3. [ルールの追加] で、次の設定を構成します。

    • [名前] に「Scale back into Azure Stack Hub」と入力します。
    • [説明] は省略できます。
    • [ソース][アラート対象][メトリック] を選択します。
    • [条件] で、自分のサブスクリプション、Traffic Manager プロファイルのリソース グループ、リソースに使用する Traffic Manager プロファイルの名前を選択します。
  4. [メトリック][要求率] を選択します。

  5. [条件][より小さい] を選択します。

  6. [しきい値] に「2」を入力します。

  7. [期間][直近 5 分] を選択します。

  8. [通知手段] で次のように設定します。

    • [所有者、共同作成者、閲覧者に電子メールを送信] のチェック ボックスをオンにします。
    • [追加する管理者の電子メール] にメール アドレスを入力します。
  9. メニュー バーで [保存] を選択します。

次のスクリーンショットには、スケールアウトとスケールインのアラートが示されています。

Application Insights のアラート (クラシック) を示すスクリーンショット。

Azure と Azure Stack Hub の間でトラフィックをリダイレクトする

Azure と Azure Stack Hub の間で行われる Web アプリのトラフィックには、手動または自動の切り替えを構成できます。

Azure と Azure Stack Hub の間で手動切り替えを構成する

Web サイトが構成済みのしきい値に達した場合、アラートが届きます。 トラフィックを手動で Azure にリダイレクトするには、次の手順を使用します。

  1. Azure portal で、該当する Traffic Manager プロファイルを選択します。

    Azure portal の Traffic Manager エンドポイントを示すスクリーンショット。

  2. [エンドポイント] を選択します。

  3. [Azure エンドポイント] を選択します。

  4. [状態][有効] を選択し、 [保存] を選択します。

    Azure portal で Azure エンドポイントを有効にする方法を示すスクリーンショット。

  5. Traffic Manager プロファイルの [エンドポイント] で、 [外部エンドポイント] を選択します。

  6. [状態][無効] を選択し、 [保存] を選択します。

    Azure portal で Azure Stack Hub エンドポイントを無効にする方法を示すスクリーンショット。

エンドポイントの構成後、アプリ トラフィックは、Azure Stack Hub Web アプリではなく、Azure スケールアウト Web アプリに送信されます。

Azure Web アプリのトラフィックで変更されたエンドポイントを示すスクリーンショット。

フローを再び Azure Stack Hub に戻すには、前の手順を使用して次の設定を行います。

  • Azure Stack Hub エンドポイントを有効にします。
  • Azure エンドポイントを無効にします。

Azure と Azure Stack Hub の間で自動切り替えを構成する

Azure Functions によって実現されるサーバーレス環境で対象のアプリが実行されている場合は、Application Insights の監視を使用することもできます。

このシナリオでは、関数アプリを呼び出す Webhook を使用するように Application Insights を構成することができます。 このアプリでは、アラートに応じてエンドポイントの有効と無効を自動的に切り替えます。

次の手順を参考にして、自動トラフィック切り替えを構成してください。

  1. Azure 関数アプリを作成します。

  2. HTTP によってトリガーされる関数を作成します。

  3. Resource Manager、Web Apps、Traffic Manager 用の Azure SDK をインポートします。

  4. 次の処理を行うコードを作成します。

    • Azure サブスクリプションに対して認証を行う。
    • Traffic Manager のエンドポイントを切り替えるパラメーターを使用して、Azure または Azure Stack Hub にトラフィックを送信する。
  5. 作成したコードを保存し、Application Insights のアラート ルール設定の Webhook セクションに、適切なパラメーターと共に関数アプリの URL を追加します。

  6. Application Insights のアラートが発生すると、トラフィックが自動的にリダイレクトされます。

次のステップ:

次の追加のハイブリッド デプロイ ガイドを参照してください。