Azure SQL Database を使用するスタンドアロン シングルテナント アプリケーションをデプロイおよび操作する

適用対象: Azure SQL データベース

このチュートリアルでは、スタンドアロン アプリケーション、テナントごとのアプリ、またはパターンを使用して開発された Wingtip Tickets SaaS サンプル アプリケーションをデプロイして調査します。 アプリケーションの目的は、マルチテナント SaaS シナリオの有効化を簡単にする Azure SQL Database の機能を紹介することにあります。

スタンドアロン アプリケーションまたはテナントごとのアプリケーション パターンでは、各テナントに対するアプリケーション インスタンスをデプロイします。 各アプリケーションは、特定のテナント用に構成され、別個の Azure リソース グループにデプロイされます。 アプリケーションの複数のインスタンスは、マルチテナント ソリューションを提供するようにプロビジョニングされます。 このパターンは、テナント分離が最優先事項になっているテナントの数がより少ない場合に最適です。 Azure には、リソースをテナントのサブスクリプションにデプロイできるパートナー プログラムがあり、テナントの代わりにサービス プロバイダーによって管理されます。

このチュートリアルでは、3 つのテナントに対応するスタンドアロンのアプリケーションを 3 つ、Azure サブスクリプションにデプロイします。 ユーザーには、個々のアプリケーション コンポーネントを確認して操作するフル アクセスがあります。

アプリケーションのソース コードと管理スクリプトは、WingtipTicketsSaaS-StandaloneApp GitHub リポジトリから入手できます。 このアプリケーションは Visual Studio 2015 で作成されました。更新なしでは、Visual Studio 2019 で開いたり、コンパイルしたりできません。

このチュートリアルで学習する内容は次のとおりです。

  • Wingtip Tickets SaaS スタンドアロン アプリケーションをデプロイする方法。
  • アプリケーションのソース コード、および管理スクリプトを取得する場所。
  • アプリを構成するサーバーおよびデータベースについて。

追加のチュートリアルがリリースされます。 これにより、このアプリケーション パターンに基づいて管理シナリオの範囲を調べることができます。

Wingtip Tickets SaaS スタンドアロン アプリケーションをデプロイする

次のように 3 つの指定されたテナント用にアプリをデプロイします。

  1. 青い [Azure へのデプロイ] ボタンを 1 つずつクリックして、Azure Portal でデプロイ テンプレートを開きます。 各テンプレートには、2 つのパラメーター値が必要です。新しいリソース グループの名前と、アプリの他のデプロイからこのデプロイを区別するユーザー名です。 次の手順では、これらの値を設定するための詳細を提供します。

    Contoso Concert Hall
    [Deploy to Azure]\(Azure にデプロイ\) というラベルが付けられたボタンが表示されている画像。

    Dogwood Dojo
    [Deploy to Azure]\(Azure にデプロイ\) というラベルが付けられたボタンが表示されている画像。

    Fabrikam Jazz Club
    [Deploy to Azure]\(Azure にデプロイ\) というラベルが付けられたボタンが表示されている画像。

  2. 各デプロイに必須のパラメーター値を入力します。

    重要

    一部の認証とサーバー ファイアウォールは、デモンストレーションのために、意図的に保護されていません。 アプリケーション デプロイごとに新しいリソース グループを作成します。 既存のリソース グループを使用しないでください。 運用環境にはこのアプリケーション、またはこのアプリケーションが作成したリソースを使用しないでください。 関連する課金を停止するために、サンプル アプリケーションの操作が終了したら、すべてのリソース グループを削除してください。

    リソース名にはアルファベットの小文字、数字、およびハイフンのみを使用することをお勧めします。

    • リソース グループの場合、[新規作成] を選択して、リソース グループの名前を小文字で指定します。 wingtip-sa-<会場名>-<ユーザー> が、推奨されるパターンです。 <VenueName> には、会場の名前を空白なしで指定します。 <user> には、次のいずれかのユーザー値を指定します。 このパターンでは、リソース グループ名は wingtip-sa-contosoconcerthall-af1wingtip-sa-dogwooddojo-af1wingtip-sa-fabrikamjazzclub-af1 のいずれかになります。

    • ドロップダウン から [場所] を選択します。

    • ユーザー - イニシャルに一桁の数字を付加するなど、短いユーザー値をお勧めします (af1 など)。

  3. アプリケーションをデプロイします

    • 使用条件に同意したら、チェック ボックスをオンにします。
    • [購入] をクリックします。
  4. [通知] (検索ボックスの右にあるベル アイコン) をクリックして、3 つのデプロイすべての状態を監視します。 アプリのデプロイには、約 5 分間かかります。

アプリケーションの実行

アプリは、イベントを開催する会場の窓口の機能を提供します。 会場は、アプリケーションのテナントです。 各会場が、イベントを表示してチケットを販売するためのパーソナライズされた Web サイトを利用できます。 会場の種類には、コンサート ホール、ジャズ クラブ、スポーツ クラブなどがあります。 サンプルでは、場所の種類によって、会場の Web サイトに表示される背景写真が決定されます。 スタンドアロン アプリ モデルでは、各会場に、独自のスタンドアロン Azure SQL Database を備えた個別のアプリケーション インスタンスがあります。

  1. 個別のブラウザー タブで、次のように 3 つのテナントごとにイベント ページを開きます。

    • http://events.contosoconcerthall.<ユーザー>.trafficmanager.net

    • http://events.dogwooddojo.<ユーザー>.trafficmanager.net

    • http://events.fabrikamjazzclub.<ユーザー>.trafficmanager.net

      (各 URL で、<user> を、デプロイのユーザー値に置き換えてください。)

    events

アプリは、着信要求の分散を制御するために Azure Traffic Manager を使用します。 各テナント固有のアプリ インスタンスには、URL 内のドメイン名の一部としてテナント名が含まれています。 すべてのテナント URL に、特定のユーザー値が含まれます。 URL の形式を次に示します。

  • http://events.<会場名>.<ユーザー>.trafficmanager.net

各テナントのデータベースの場所は、対応するデプロイされたアプリのアプリ設定に含まれています。

運用環境では、通常、会社のインターネット ドメインで Traffic Manager プロファイルの URL が参照されるようにCNAME DNS レコードを作成します。

サーバーおよびテナント データベースを操作する

デプロイされたリソースの一部を見てみましょう。

  1. Azure Portal で、リソース グループの一覧を参照します。
  2. 3 つのテナントのリソース グループが表示されるはずです。
  3. wingtip-sa-fabrikam-<user> リソース グループを開きます。これには、Fabrikam Jazz Club デプロイのリソースが含まれます。 fabrikamjazzclub-<user> サーバーには、fabrikamjazzclub データベースが含まれます。

各テナント データベースは 50 DTU スタンドアロン データベースです。

その他のリソース

課金を停止するリソース グループを削除する

サンプルを使用し終えたら、関連付けられた課金を停止するために、作成したすべてのリソース グループを削除してください。

次のステップ

このチュートリアルで学習した内容は次のとおりです。

  • Wingtip Tickets SaaS スタンドアロン アプリケーションをデプロイする方法。
  • アプリを構成するサーバーおよびデータベースについて。
  • サンプル リソースを削除して、関連する課金を停止する方法。

次に、プロビジョニングとカタログのチュートリアルを確認して、一定の範囲のスキーマ管理やテナント分析などのクロス テナント シナリオを有効にするテナントのカタログの使用について調査してください。