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 のカスタム キャッシュ」を参照してください。

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

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

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

前提条件

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

Azure Cache for Redis を作成する

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

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

    左側のナビゲーション ペインの [リソースの作成] が強調表示されています。

  2. [開始] ページ上で、検索ボックス内に「Azure Cache for Redis」と入力します。 次に、[作成] を選択します。

    検索ボックス内に

  3. [新規 Redis Cache] ページ上で、キャッシュの設定を構成します。

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

  5. [ネットワーク] タブで、接続方法を選択します。

  6. [次へ: 詳細設定] タブを選択するか、ページの下部にある [次へ: 詳細設定] ボタンを選択して、[詳細設定] タブを表示します。

    作業ウィンドウの [詳細設定] タブ、および選択できるオプションを示すスクリーンショット。

    • Basic または Standard キャッシュを利用する場合は、非 TLS ポートの選択をオンにします。 Microsoft Entra 認証を有効にするかどうかを選択することもできます。
    • Premium キャッシュを利用する場合は、非 TLS ポート、クラスタリング、マネージド ID、データ永続化の設定を構成します。 Microsoft Entra 認証を有効にするかどうかを選択することもできます。

    重要

    最適なセキュリティを実現するために、Microsoft では、可能な限り Microsoft Entra ID とマネージド ID を使用してキャッシュに対する要求を認可することをお勧めします。 Microsoft Entra ID とマネージド ID を使った認可によって、共有キー認可よりもセキュリティが向上し、使いやすくなります。 キャッシュでマネージド ID を使用する方法の詳細については、「キャッシュ認証に Microsoft Entra ID を使用する」を参照してください。

  7. ページの下部にある [次へ: タグ] タブを選択するか、ページの下部にある [次へ: タグ] ボタンを選択します。

  8. 必要に応じて、 [タグ] タブで、リソースを分類する場合は名前と値を入力します。

  9. [Review + create](レビュー + 作成) を選択します。 [確認および作成] タブが表示され、Azure によって構成が検証されます。

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

キャッシュが作成されるまで、しばらく時間がかかります。 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 のパフォーマンスを向上させる」をご覧ください。

次のステップ