複数の Azure リージョンに Azure API Management サービス インスタンスをデプロイする方法How to deploy an Azure API Management service instance to multiple Azure regions

Azure API Management では複数リージョンのデプロイがサポートされています。これにより、API パブリッシャーは 1 つの Azure API Management サービスを任意の数のサポートされる Azure リージョンに分散できます。Azure API Management supports multi-region deployment, which enables API publishers to distribute a single Azure API management service across any number of supported Azure regions. 複数リージョン機能により、地理的に分散した API コンシューマーによって認識される要求待ち時間が短くなり、1 つのリージョンがオフラインになった場合でもサービスの可用性を向上できます。Multi-region feature helps reduce request latency perceived by geographically distributed API consumers and improves service availability if one region goes offline.

新しい Azure API Management サービスには、最初は単一の Azure リージョン (プライマリ リージョン) 内に 1 つのユニットのみが含まれています。A new Azure API Management service initially contains only one unit in a single Azure region, the Primary region. 追加のユニットは、プライマリ リージョンまたはセカンダリ リージョンに追加できます。Additional units can be added to the Primary or Secondary regions. API Management ゲートウェイ コンポーネントは、選択されたすべてのプライマリ リージョンとセカンダリ リージョンにデプロイされます。An API Management gateway component is deployed to every selected Primary and Secondary region. 受信 API 要求は、最も近いリージョンに自動的に送られます。Incoming API requests are automatically directed to the closest region. リージョンがオフラインになった場合、API 要求は、障害が発生したリージョンを迂回して、次に最も近いゲートウェイに自動的にルーティングされます。If a region goes offline, the API requests will be automatically routed around the failed region to the next closest gateway.

注意

すべてのリージョンにデプロイされるのは、API Management のゲートウェイ コンポーネントのみです。Only the gateway component of API Management is deployed to all regions. サービス管理コンポーネントと開発者ポータルは、プライマリ リージョンでのみホストされます。The service management component and developer portal are hosted in the Primary region only. このため、プライマリ リージョンの停止時には、プライマリ リージョンがオンラインに戻るまで、開発者ポータルへのアクセス、および構成を変更する機能 (API の追加、ポリシーの適用など) が損なわれます。Therefore, in case of the Primary region outage, access to the developer portal and ability to change configuration (e.g. adding APIs, applying policies) will be impaired until the Primary region comes back online. プライマリ リージョンがオフラインの間、使用可能なセカンダリ リージョンは、使用可能な最新の構成を使用して引き続き API トラフィックを処理します。While the Primary region is offline available Secondary regions will continue to serve the API traffic using the latest configuration available to them.

重要

顧客データを 1 つのリージョンに格納できるようにする機能は、現在のところ、アジア太平洋地域の東南アジア リージョン (シンガポール) でのみ使用できます。The feature to enable storing customer data in a single region is currently only available in the Southeast Asia Region (Singapore) of the Asia Pacific Geo. その他のすべてのリージョンでは、顧客データは地域内に格納されます。For all other regions, customer data is stored in Geo.

可用性Availability

重要

この機能は、API Management の Premium レベルでのみ使用できます。This feature is available only in the Premium tier of API Management.

新しいリージョンに API Management サービスをデプロイする Deploy API Management service to a new region

注意

API Management サービス インスタンスをまだ作成していない場合は、API Management サービス インスタンスの作成に関するページを参照してください。If you have not yet created an API Management service instance, see Create an API Management service instance.

  1. Azure portal で、API Management サービスに移動し、メニューの [場所] エントリをクリックします。In the Azure portal, navigate to your API Management service and click on the Locations entry in the menu.
  2. 上部バーの [+ 追加] をクリックします。Click + Add in the top bar.
  3. ドロップダウン リストから場所を選択し、スライダーでユニット数を設定します。Select the location from the drop-down list and set the number of units with the slider.
  4. [追加] ボタンをクリックして確認します。Click the Add button to confirm.
  5. すべての場所を構成するまで、この手順を繰り返します。Repeat this process until you configure all locations.
  6. 上部バーにある [保存] をクリックして、デプロイ プロセスを開始します。Click Save in the top bar to start the deployment process.

API Management サービスの場所を削除する Delete an API Management service location

  1. Azure portal で、API Management サービスに移動し、メニューの [場所] エントリをクリックします。In the Azure portal, navigate to your API Management service and click on the Locations entry in the menu.
  2. テーブルの右端にある [...] ボタンを使用して、削除する場所のコンテキスト メニューを開きます。For the location you would like to remove, open the context menu using the ... button at the right end of the table. [削除] を選択します。Select the Delete option.
  3. 削除されたことを確認したら、 [保存] をクリックして変更を適用します。Confirm the deletion and click Save to apply the changes.

リージョンのバックエンド サービスに API 呼び出しをルーティングする Route API calls to regional backend services

Azure API Management は、バックエンド サービスの URL が 1 つだけであることを特徴としています。Azure API Management features only one backend service URL. 複数のリージョンに Azure API Management インスタンスがある場合でも、API ゲートウェイは、1 つのリージョンのみにデプロイされる同じバックエンド サービスに要求を転送します。Even though there are Azure API Management instances in various regions, the API gateway will still forward requests to the same backend service, which is deployed in only one region. この場合、要求に固有のリージョンで Azure API Management 内にキャッシュされた応答でのみパフォーマンスが向上し、グローバルなバックエンドへの接続では引き続き長い待ち時間が発生します。In this case, the performance gain will come only from responses cached within Azure API Management in a region specific to the request, but contacting the backend across the globe may still cause high latency.

システムの地理的な分散を十分に活用するには、Azure API Management インスタンスと同じリージョンにバックエンド サービスをデプロイする必要があります。To fully leverage geographical distribution of your system, you should have backend services deployed in the same regions as Azure API Management instances. その後、ポリシーと @(context.Deployment.Region) プロパティを使用して、バックエンドのローカル インスタンスにトラフィックをルーティングできます。Then, using policies and @(context.Deployment.Region) property, you can route the traffic to local instances of your backend.

  1. Azure API Management インスタンスに移動し、左側のメニューから [API] をクリックします。Navigate to your Azure API Management instance and click on APIs from the left menu.

  2. 目的の API を選択します。Select your desired API.

  3. [受信処理] で、矢印のドロップダウンから [コード エディター] をクリックします。Click Code editor from the arrow dropdown in the Inbound processing.

    API コード エディター

  4. set-backendchoose 条件ポリシーを組み合わせて使用して、ファイルの <inbound> </inbound> セクション内に適切なルーティング ポリシーを作成します。Use the set-backend combined with conditional choose policies to construct a proper routing policy in the <inbound> </inbound> section of the file.

    たとえば、次の XML ファイルは、米国西部リージョンと東アジア リージョンで機能します。For example, the below XML file would work for West US and East Asia regions:

    <policies>
        <inbound>
            <base />
            <choose>
                <when condition="@("West US".Equals(context.Deployment.Region, StringComparison.OrdinalIgnoreCase))">
                    <set-backend-service base-url="http://contoso-us.com/" />
                </when>
                <when condition="@("East Asia".Equals(context.Deployment.Region, StringComparison.OrdinalIgnoreCase))">
                    <set-backend-service base-url="http://contoso-asia.com/" />
                </when>
                <otherwise>
                    <set-backend-service base-url="http://contoso-other.com/" />
                </otherwise>
            </choose>
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

ヒント

バックエンド サービスの正面に Azure Traffic Manager を置き、API 呼び出しを Traffic Manager に誘導して、そこでルーティングを自動的に解決させることもできます。You may also front your backend services with Azure Traffic Manager, direct the API calls to the Traffic Manager, and let it resolve the routing automatically.

API Management リージョン ゲートウェイへのカスタム ルーティングを使用する Use custom routing to API Management regional gateways

API Management は、最短の待ち時間に基づいてリージョン "ゲートウェイ" に要求をルーティングします。API Management routes the requests to a regional gateway based on the lowest latency. API Management でこの設定をオーバーライドすることはできませんが、カスタム ルーティング規則を持った独自の Traffic Manager を使用することはできます。Although it is not possible to override this setting in API Management, you can use your own Traffic Manager with custom routing rules.

  1. 独自の Azure Traffic Manager を作成します。Create your own Azure Traffic Manager.
  2. カスタム ドメインを使用している場合、API Management サービスではなく、Traffic Manager と共に使用します。If you are using a custom domain, use it with the Traffic Manager instead of the API Management service.
  3. Traffic Manager に API Management のリージョン エンドポイントを構成します。Configure the API Management regional endpoints in Traffic Manager. リージョン エンドポイントは、https://<service-name>-<region>-01.regional.azure-api.net という URL パターンに従います (例: https://contoso-westus2-01.regional.azure-api.net)。The regional endpoints follow the URL pattern of https://<service-name>-<region>-01.regional.azure-api.net, for example https://contoso-westus2-01.regional.azure-api.net.
  4. Traffic Manager に API Management のリージョン状態エンドポイントを構成します。Configure the API Management regional status endpoints in Traffic Manager. リージョン状態エンドポイントは、https://<service-name>-<region>-01.regional.azure-api.net/status-0123456789abcdef という URL パターンに従います (例: https://contoso-westus2-01.regional.azure-api.net/status-0123456789abcdef)。The regional status endpoints follow the URL pattern of https://<service-name>-<region>-01.regional.azure-api.net/status-0123456789abcdef, for example https://contoso-westus2-01.regional.azure-api.net/status-0123456789abcdef.
  5. Traffic Manager のルーティング方法を指定します。Specify the routing method of the Traffic Manager.