Azure API Management で Redis と互換性がある外部キャッシュを使用する

適用対象: すべての API Management レベル

Azure API Management では、組み込みのキャッシュを利用できるだけでなく、Redis と互換性がある外部キャッシュ (Azure Cache for Redis など) に応答をキャッシュすることもできます。

外部キャッシュを使用すると、組み込みキャッシュに関する次のいくつかの制限事項を回避することができます。

  • API Management の更新時にキャッシュが定期的に消去されるのを避ける
  • キャッシュの構成をより細かく制御する
  • ご利用の API Management レベルより多くのデータをキャッシュする
  • API Management の従量課金レベルでキャッシュを使用する
  • API Management セルフホステッド ゲートウェイでキャッシュを有効にする

キャッシュの詳細については、「API Management のキャッシュ ポリシー」と「Azure API Management のカスタム キャッシュ」を参照してください。

Note

現在、この機能はワークスペースでは使用できません。

APIM にお客様のキャッシュを追加する

ここでは、次の内容について学習します。

  • API Management に外部キャッシュを追加する

前提条件

このチュートリアルを完了するには、以下を実行する必要があります。

Azure Cache for Redis を作成する

このセクションでは、Azure 内に Azure Cache for Redis を作成する方法について説明します。 Azure の内部または外部に Azure Cache for Redis または Redis と互換性がある別のキャッシュが既にある場合は、次のセクションにスキップできます。

  1. キャッシュを作成するには、Azure portal にサインインします。 ポータル メニューで、[リソースの作成] を選択します。

    Azure portal の左側のナビゲーション ウィンドウ上で強調表示されている [リソースの作成] オプションを示すスクリーンショット。

  2. [作業の開始] ペインで、検索バーに「Azure Cache for Redis」と入力します。 検索結果で、Azure Cache for Redis を見つけた後、[作成] を選択します。

    検索ボックスに Azure Cache for Redis が入力され、[作成] ボタンが強調表示されている Azure Marketplace を示すスクリーンショット。

  3. [新しい Redis Cache] ペインの [基本] タブで、以下のキャッシュの設定を構成します。

    設定 アクション 説明
    サブスクリプション Azure サブスクリプションを選択します。 Azure Cache for Redis の新しいインスタンスの作成に使用するサブスクリプション。
    リソース グループ リソース グループを選択するか、 [新規作成] を選択し、新しいリソース グループの名前を入力します。 その中にキャッシュやその他のリソースを作成するリソース グループの名前。 すべてのアプリ リソースを 1 つのリソース グループに配置することで、それらをまとめて簡単に管理または削除できます。
    DNS 名 一意の名前を入力します。 キャッシュ名は、数字、英字、ハイフンのみを含む 1 から 63 文字の文字列とする必要があります。 名前の先頭と末尾には数字または文字を使用する必要があり、連続するハイフンを含めることはできません。 キャッシュ インスタンスの "ホスト名" は \<DNS name>.redis.cache.windows.net です。
    場所 場所を選択します。 キャッシュを使用する他のサービスに近い Azure リージョン
    キャッシュ SKU SKU を選択します。 この SKU によって、このキャッシュで利用できるサイズ、パフォーマンス、機能のパラメーターが決まります。 詳細については、Azure Cache for Redis の概要に関するページを参照してください。
    キャッシュ サイズ キャッシュ サイズを選択します。 詳細については、Azure Cache for Redis の概要に関するページを参照してください。
  4. [ネットワーク] タブを選択するか、[次へ: ネットワーク] を選択します。

  5. [ネットワーク] タブで、キャッシュで使用する接続方法を選択します。

  6. [詳細] タブを選択するか、[次へ: 詳細] を選択します。

  7. [詳細] ペインで、以下の情報に基づいて認証方法を確認または選択します。

    [詳細] ペインと選択できる利用可能なオプションを示すスクリーンショット。

    • 既定では、新しい Basic、Standard、または Premium キャッシュでは、Microsoft Entra 認証が有効になり、アクセス キー認証が無効になります。
    • Basic または Standard キャッシュの場合は、非 TLS ポートを選択できます。
    • Standard および Premium キャッシュの場合は、可用性ゾーンを有効にすることを選択できます。 キャッシュの作成後に可用性ゾーンを無効にすることはできません。
    • Premium キャッシュを利用する場合は、非 TLS ポート、クラスタリング、マネージド ID、データ永続化の設定を構成します。

    重要

    最適なセキュリティを確保するため、可能であれば、キャッシュに対する要求を認可するのに Microsoft Entra ID とマネージド ID を使用することをお勧めします。 Microsoft Entra ID とマネージド ID を使用した認可は、共有アクセス キー認可よりも優れたセキュリティと使いやすさを提供します。 キャッシュでマネージド ID を使用する方法の詳細については、「キャッシュ認証での Microsoft Entra ID の使用」を参照してください。

  8. (省略可能) [タグ] タブを選択するか、[次へ: タグ] を選択します。

  9. (省略可能) キャッシュ リソースを分類したい場合は、[タグ] タブで、タグの名前と値を入力します。

  10. [確認および作成] ボタンを選択します。

    [確認と作成] タブでは、Azure が構成を自動的に検証します。

  11. 緑色の検証に成功のメッセージが表示された後、 [作成] を選択します。

新しいキャッシュのデプロイは数分で完了します。 デプロイの進行状況は、Azure Cache for Redis の [概要] ペインで監視できます。 [状態][実行中] と表示されると、キャッシュの使用の準備が完了しています。

Redis Cache を Kubernetes にデプロイする

セルフホステッド ゲートウェイの場合、キャッシュには外部キャッシュが必要です。 キャッシュを効果的に行うには、セルフホステッド ゲートウェイとそれが依存するキャッシュを互いに近接させて、参照と保存の待機時間を最小限にする必要があります。 Redis Cache を同じ Kubernetes クラスターまたは近くの別のクラスターにデプロイすることをお勧めします。 Redis Cache を Kubernetes クラスターにデプロイする方法について確認します。

外部キャッシュの追加

Azure API Management に Redis と互換性がある外部キャッシュを追加するには、以下の手順に従います。 キャッシュは、API Management インスタンス内の特定のゲートウェイに制限できます。

Azure API Management に外部の Azure Cache for Redis を追加する方法が示されているスクリーンショット。

[使用元] 設定

構成の [使用元] 設定では、キャッシュを使用する API Management インスタンスの場所を指定します。 次のいずれかを選択してください。

  • API Management インスタンスがホストされている Azure リージョン (またはマルチリージョンのデプロイがある場合は、構成済みの場所のいずれか)

  • セルフホステッド ゲートウェイの場所

  • [既定] では、API Management インスタンス内のすべてのゲートウェイの場所に対する既定としてキャッシュを構成します

    [既定] に使用されるキャッシュは、特定の一致するリージョンまたは場所で使用されるキャッシュによってオーバーライドされます。

    たとえば、米国東部、東南アジア、西ヨーロッパのリージョンでホストされている API Management インスタンスについて検討します。 [既定] のものと東南アジアのものの、2 つのキャッシュが構成されています。 この例の場合、東南アジアの API Management では独自のキャッシュを使用し、他の 2 つのリージョンでは [既定] のキャッシュ エントリを使用します。

注意

複数の API Management インスタンスに対して同じ外部キャッシュを構成できます。 それらの API Management インスタンスは、同じまたは異なるリージョンにあります。 複数のインスタンスでキャッシュを共有する場合は、[使用元] 設定で [既定] を選択する必要があります。

同じサブスクリプションから Azure Cache for Redis を追加する

  1. Azure portal で API Management インスタンスを参照します。
  2. 左側のメニューから [External cache](外部キャッシュ) タブを選択します。
  3. [+ 追加] ボタンを選択します。
  4. [Cache instance](キャッシュ インスタンス) ドロップダウン フィールドでキャッシュを選択します。
  5. [使用元] ドロップダウン フィールドで、[既定] を選択するか目的のリージョンを指定します。
  6. [保存] を選択します。

現在の Azure サブスクリプションまたは一般の Azure の外部でホストされている、Redis と互換性があるキャッシュを追加します

  1. Azure portal で API Management インスタンスを参照します。
  2. 左側のメニューから [External cache](外部キャッシュ) タブを選択します。
  3. [+ 追加] ボタンを選択します。
  4. [Cache instance](キャッシュ インスタンス) ドロップダウン フィールドで [カスタム] を選択します。
  5. [使用元] ドロップダウン フィールドで、[既定] を選択するか目的のリージョンを指定します。
  6. [接続文字列] フィールドで Azure Cache for Redis (または Redis と互換性があるキャッシュ) の接続文字列を指定します。
  7. [保存] を選択します。

セルフホステッド ゲートウェイに Redis Cache を追加する

  1. Azure portal で API Management インスタンスを参照します。
  2. 左側のメニューから [External cache](外部キャッシュ) タブを選択します。
  3. [+ 追加] ボタンを選択します。
  4. [Cache instance](キャッシュ インスタンス) ドロップダウン フィールドで [カスタム] を選択します。
  5. [使用元] ドロップダウン フィールドで、目的のセルフホステッド ゲートウェイの場所、または [既定] を指定します。
  6. [接続文字列] フィールドで Redis Cache の接続文字列を指定します。
  7. [保存] を選択します。

外部キャッシュの使用

Redis と互換性があるキャッシュを追加したら、その外部キャッシュで応答キャッシュまたはキーによる値のキャッシュを有効にするようにキャッシュ ポリシーを構成します。

詳細な例については、「キャッシュを追加して Azure API Management のパフォーマンスを向上させる」をご覧ください。

次のステップ