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
現在、この機能はワークスペースでは使用できません。
ここでは、次の内容について学習します。
- API Management に外部キャッシュを追加する
前提条件
このチュートリアルを完了するには、以下を実行する必要があります。
Azure Cache for Redis を作成する
このセクションでは、Azure 内に Azure Cache for Redis を作成する方法について説明します。 Azure の内部または外部に Azure Cache for Redis または Redis と互換性がある別のキャッシュが既にある場合は、次のセクションにスキップできます。
キャッシュを作成するには、Azure portal にサインインします。 ポータルのメニューで、[リソースの作成] を選びます。
[作業の開始] ペインの検索バーに「Azure Cache for Redis」と入力します。 検索結果で Azure Cache for Redis を見つけて、[作成] を選びます。
[新しい 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 の概要に関するページを参照してください。 [ネットワーク] タブを選ぶか、[次へ: ネットワーク] を選びます。
[ネットワーク] タブで、キャッシュに使う接続方法を選びます。
[詳細] タブを選ぶか、[次へ: 詳細] を選びます。
[詳細] ペインで、以下の情報に基づいて認証方法を確認または選択します。
- 既定では、新しい 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 の使用に関する記事をご覧ください。
(省略可能) [タグ] タブを選ぶか、[次へ: タグ] を選びます。
(省略可能) キャッシュ リソースを分類する場合は、[タグ] タブでタグの名前と値を入力します。
[確認および作成] ボタンを選択します。
[確認と作成] タブでは、Azure によって構成が自動的に検証されます。
緑色の検証に成功のメッセージが表示された後、 [作成] を選択します。
新しいキャッシュのデプロイは数分で完了します。 デプロイの進行状況は、Azure Cache for Redis の [概要] ペインで監視できます。 [状態] に [実行中] と表示されると、キャッシュの使用の準備が完了しています。
Redis Cache を Kubernetes にデプロイする
セルフホステッド ゲートウェイの場合、キャッシュには外部キャッシュが必要です。 キャッシュを効果的に行うには、セルフホステッド ゲートウェイとそれが依存するキャッシュを互いに近接させて、参照と保存の待機時間を最小限にする必要があります。 Redis Cache を同じ Kubernetes クラスターまたは近くの別のクラスターにデプロイすることをお勧めします。 Redis Cache を Kubernetes クラスターにデプロイする方法について確認します。
外部キャッシュの追加
Azure API Management に Redis と互換性がある外部キャッシュを追加するには、以下の手順に従います。 キャッシュは、API Management インスタンス内の特定のゲートウェイに制限できます。
[使用元] 設定
構成の [使用元] 設定では、キャッシュを使用する API Management インスタンスの場所を指定します。 次のいずれかを選択してください。
API Management インスタンスがホストされている Azure リージョン (またはマルチリージョンのデプロイがある場合は、構成済みの場所のいずれか)
セルフホステッド ゲートウェイの場所
[既定] では、API Management インスタンス内のすべてのゲートウェイの場所に対する既定としてキャッシュを構成します
[既定] に使用されるキャッシュは、特定の一致するリージョンまたは場所で使用されるキャッシュによってオーバーライドされます。
たとえば、米国東部、東南アジア、西ヨーロッパのリージョンでホストされている API Management インスタンスについて検討します。 [既定] のものと東南アジアのものの、2 つのキャッシュが構成されています。 この例の場合、東南アジアの API Management では独自のキャッシュを使用し、他の 2 つのリージョンでは [既定] のキャッシュ エントリを使用します。
注意
複数の API Management インスタンスに対して同じ外部キャッシュを構成できます。 それらの API Management インスタンスは、同じまたは異なるリージョンにあります。 複数のインスタンスでキャッシュを共有する場合は、[使用元] 設定で [既定] を選択する必要があります。
同じサブスクリプションから Azure Cache for Redis を追加する
- Azure portal で API Management インスタンスを参照します。
- 左側のメニューから [External cache](外部キャッシュ) タブを選択します。
- [+ 追加] ボタンを選択します。
- [Cache instance](キャッシュ インスタンス) ドロップダウン フィールドでキャッシュを選択します。
- [使用元] ドロップダウン フィールドで、[既定] を選択するか目的のリージョンを指定します。
- [保存] を選択します。
現在の Azure サブスクリプションまたは一般の Azure の外部でホストされている、Redis と互換性があるキャッシュを追加します
- Azure portal で API Management インスタンスを参照します。
- 左側のメニューから [External cache](外部キャッシュ) タブを選択します。
- [+ 追加] ボタンを選択します。
- [Cache instance](キャッシュ インスタンス) ドロップダウン フィールドで [カスタム] を選択します。
- [使用元] ドロップダウン フィールドで、[既定] を選択するか目的のリージョンを指定します。
- [接続文字列] フィールドで Azure Cache for Redis (または Redis と互換性があるキャッシュ) の接続文字列を指定します。
- [保存] を選択します。
セルフホステッド ゲートウェイに Redis Cache を追加する
- Azure portal で API Management インスタンスを参照します。
- 左側のメニューから [External cache](外部キャッシュ) タブを選択します。
- [+ 追加] ボタンを選択します。
- [Cache instance](キャッシュ インスタンス) ドロップダウン フィールドで [カスタム] を選択します。
- [使用元] ドロップダウン フィールドで、目的のセルフホステッド ゲートウェイの場所、または [既定] を指定します。
- [接続文字列] フィールドで Redis Cache の接続文字列を指定します。
- [保存] を選択します。
外部キャッシュの使用
Redis と互換性があるキャッシュを追加したら、その外部キャッシュで応答キャッシュまたはキーによる値のキャッシュを有効にするようにキャッシュ ポリシーを構成します。
詳細な例については、「キャッシュを追加して Azure API Management のパフォーマンスを向上させる」をご覧ください。
次のステップ
- キャッシュ ポリシーの詳細については、Azure API Management ポリシー リファレンスの「Caching policies (キャッシュ ポリシー)」を参照してください。
- ポリシー式を使ってキーごとにアイテムをキャッシュするには、「Azure API Management のカスタム キャッシュ」を参照してください。