Azure Cache for Redis について
Azure Cache for Redis は、Redis ソフトウェアを基にしたインメモリ データ ストアを提供します。 Redis は、バックエンドでデータ ストアを酷使するアプリケーションのパフォーマンスとスケーラビリティを高めます。 高速に読み書きできるサーバーのメモリ内にアクセス頻度の高いデータを維持することで、大量のアプリケーション要求を処理することができます。 Redis によって、きわめて低遅延かつ高スループットのデータ ストレージ ソリューションがモダン アプリケーションにもたらされます。
Azure Cache for Redis は、Redis のオープン ソース (OSS Redis) と、マネージド サービスとしての Redis Inc. (Redis Enterprise) の商用製品の両方を提供します。 安全かつ専用の Redis サーバー インスタンスを提供し、Redis API との完全な互換性を備えています。 このサービスは、Microsoft で管理されており、Azure 上でホストされ、Azure 内外の任意のアプリケーションから使用できます。
Azure Cache for Redis は、分散データ (またはコンテンツ) キャッシュ、セッション ストア、メッセージ ブローカーなどとして使用できます。 スタンドアロンとしてデプロイできます。 または、Azure SQL や Azure Cosmos DB など、他の Azure データベース サービスと共にデプロイすることもできます。
主なシナリオ
Azure Cache for Redis では、一般的なアプリケーションのアーキテクチャ パターンがサポートされているため、アプリケーションのパフォーマンスが向上します。 次のパターンなど、最も一般的なものをいくつか示します。
Pattern | 説明 |
---|---|
データ キャッシュ | 多くの場合、データベースが大きすぎてキャッシュに直接読み込むことができません。 キャッシュ アサイド パターンを使用して、必要な場合にだけデータをキャッシュに読み込むのが一般的です。 システムがデータを変更した場合、システムはキャッシュも更新できます。それが後で他のクライアントに配布されます。 さらに、システムでは、データの有効期限を設定したり、削除ポリシーを使用してキャッシュへのデータの更新をトリガーしたりすることができます。 |
コンテンツ キャッシュ | 多くの Web ページは、ヘッダー、フッター、バナーなどの静的コンテンツを使用するテンプレートから生成されます。 これらの静的項目は、頻繁には変更されません。 メモリ内キャッシュを使用すると、バックエンド データストアと比較して、静的コンテンツに迅速にアクセスできます。 このパターンでは、処理時間とサーバーの負荷が軽減されるため、Web サーバーの応答性が向上します。 負荷に対処するために必要なサーバー数を減らすことができます。 Azure Cache for Redis は、このパターンを ASP.NET でサポートするために、Redis 出力キャッシュ プロバイダーを提供します。 |
セッション ストア | このパターンは通常、Web アプリケーションでユーザーの Cookie に関連付けられる、ショッピング カートなどのユーザー履歴データに使用されます。 Cookie に格納する情報量が多すぎると、Cookie のサイズが大きくなり、大きなサイズ の Cookie が要求ごとに渡されたり検証されたりするため、パフォーマンスに悪影響を及ぼす場合があります。 一般的なソリューションでは、データベース内のデータにクエリを実行するためのキーとして、Cookie を使用します。 ユーザーに情報を関連付けるために、Azure Cache for Redis などのメモリ内キャッシュを使用すると、リレーショナル データベース全体を操作するよりも、はるかに高速になります。 |
ジョブおよびメッセージ キュー | アプリケーションは、多くの場合、要求に関連付けられている操作の実行に時間がかかると、キューにタスクを追加します。 実行時間の長い操作は、通常は別のサーバーによって順番に処理されるように、キューに登録されます。 作業を延期するこの手法は、タスク キューと呼ばれます。 Azure Cache for Redis では、アプリケーションでこのパターンを有効にするために、分散キューを提供します。 |
分散トランザクション | アプリケーションは、バックエンド データストアに対する一連のコマンドを単一のアトミック操作として実行することを必要とする場合があります。 すべてのコマンドが成功する必要があり、成功しなかった場合はすべて、初期の状態にロールバックされる必要があります。 Azure Cache for Redis では、一連のコマンドを単一のトランザクションとして実行する方法をサポートしています。 |
Redis のバージョン
Azure Cache for Redis では、OSS Redis バージョン 4.0.x と 6.0.x がサポートされます。 Redis 5.0 をスキップして最新バージョンをご提供することが決定しました。 これまで、Azure Cache for Redis は、1 つの Redis バージョンに対応していました。 今後は、新しいメジャー リリース アップグレードと、少なくとも 1 つ前の安定バージョンが提供される予定です。 アプリケーションにとって最適なバージョンを選択することができます。
サービス階層
Azure Cache for Redis は、次のレベルで使用できます。
レベル | 説明 |
---|---|
Basic | 1 つの VM 上で実行される OSS Redis キャッシュ。 このレベルには、サービス レベル アグリーメント (SLA) はありません。開発やテスト用のワークロード、およびクリティカルではないワークロードに適しています。 |
Standard | レプリケートされた構成において、2 つの VM 上で実行される OSS Redis キャッシュ。 |
Premium | 高パフォーマンスの OSS Redis キャッシュ。 このレベルでは、スループットの向上、待ち時間の短縮、可用性の強化などの機能が提供されます。 Premium キャッシュは、Basic または Standard のキャッシュの VM と比較して、より強力な VM にデプロイされます。 |
エンタープライズ | Redis Inc.'s の Redis Enterprise ソフトウェアを搭載した高パフォーマンスのキャッシュ。 このレベルは、RediSearch、RedisBloom、RedisJSON、RedisTimeSeries などの Redis モジュールをサポートします。 また、Premium レベルよりも高い可用性を提供します。 |
Enterprise Flash | Redis Inc.'s の Redis Enterprise ソフトウェアを搭載したコスト効果の高い大規模キャッシュ。 このレベルでは、Redis データ ストレージが、VM 上の、DRAM より低コストの非揮発性メモリに拡張されます。 これにより、GB あたりのメモリ コストが全体的に削減されます。 |
機能の比較
「Azure Cache for Redis の価格」に、各レベルの詳細な比較が示されています。 次の表に、レベル別にサポートされる一部の機能を紹介します。
機能の説明 | Basic | Standard | Premium | エンタープライズ | Enterprise Flash |
---|---|---|---|---|---|
サービス レベル アグリーメント (SLA) | - | ✔ | ✔ | ✔ | ✔ |
転送中のデータの暗号化 | ✔ | ✔ | ✔ | ✔ | ✔ |
ネットワークの分離 | ✔ | ✔ | ✔ | ✔ | ✔ |
スケーリング | ✔ | ✔ | ✔ | - | - |
OSS クラスタリング | - | - | ✔ | ✔ | ✔ |
データの永続化 | - | - | ✔ | プレビュー | プレビュー |
ゾーン冗長性 | - | - | ✔ | ✔ | ✔ |
geo レプリケーション | - | - | ✔ | ✔ | ✔ |
Redis モジュール | - | - | - | ✔ | プレビュー |
Import/Export | - | - | ✔ | ✔ | ✔ |
Reboot | ✔ | ✔ | ✔ | - | - |
スケジュールされた更新 | ✔ | ✔ | ✔ | - | - |
注意
Enterprise Flash レベルでは、現在、プレビュー段階の RedisJSON モジュールと RediSearch モジュールのみがサポートされています。
最適なサービス レベルを選択する
Azure Cache for Redis のレベルを選ぶ際は、次のオプションを考慮します。
- メモリ:Basic および Standard レベルでは 250 MB から 53 GB、Premium レベルでは 6 GB から 1.2 TB、Enterprise レベルでは 12 GB から 14 TB が提供されます。 120 GB を超える Premium レベルのキャッシュを作成する場合は、Redis OSS クラスタリングを使用できます。 詳細については、Azure Cache for Redis の価格に関するページを参照してください。 詳細については、「How to configure clustering for a Premium Azure Cache for Redis」 (Premium Azure Cache for Redis のクラスタリングの構成方法) を参照してください。
- パフォーマンス: Premium および Enterprise レベルのキャッシュは、高速プロセッサを備えたハードウェアにデプロイされ、Basic レベルや Standard レベルと比べて優れたパフォーマンスを発揮します。 Premium レベルのキャッシュは、スループットが高く、待機時間が低くなっています。 詳細については、「Azure Cache for Redis のパフォーマンス」を参照してください。
- Redis サーバー専用コア: C0 を除くすべてのキャッシュは、専用の VM コアを実行します。 Redis は設計上、コマンドの処理に使用されるスレッドが 1 つだけです。 Azure Cache for Redis には、I/O 処理に他のコアが使用されます。 使用コア数が増えることで、線形スケーリングは得られないまでも、スループット パフォーマンスは向上します。 加えて、VM サイズが大きくなれば、それよりも小さい VM と比べて、帯域幅の制限も引き上げられるのが一般的です。 これにより、アプリケーションのタイムアウトを引き起こすネットワークの飽和状態を避けることができます。
- ネットワーク パフォーマンス: 高いスループットを必要とするワークロードがある場合、Premium および Enterprise レベルでは、Basic や Standard と比較してより広い帯域幅が提供されます。 また、各レベル内では、キャッシュをホストする基盤の VM のため、キャッシュのサイズが大きいほど帯域幅も増えます。 詳細については、「Azure Cache for Redis のパフォーマンス」を参照してください。
- クライアント接続の最大数: Premium と Enterprise の各レベルにより、Redis に接続できるクライアントの最大数が提供され、キャッシュのサイズが大きいほど、より多くの接続数が提供されます。 クラスタリングにより、クラスター化されたキャッシュに使用できるネットワーク帯域の合計量が増えます。
- 高可用性: Azure Cache for Redis には、複数の高可用性オプションが用意されています。 Standard、Premium、または Enterprise キャッシュの可用性は SLA に従って提供されることが保証されています。 SLA は、キャッシュ エンドポイントへの接続のみをカバーします。 SLA は、データ損失からの保護には対応していません。 Premium レベルと Enterprise レベルの Redis データの永続化機能を使用して、データ損失に対する復元性を高めることをお勧めします。
- データの永続化: Premium および Enterprise レベルではそれぞれ、Azure Storage アカウントとマネージド ディスクにキャッシュデータを永続化できます。 基になるインフラストラクチャで問題が発生すると、データが失われる可能性があります。 Redis データの永続化機能を使用して、データ損失に対する復元性を高めることをお勧めします。 Azure Cache for Redis では、RDB オプションと AOF オプション (プレビュー) の両方が用意されています。 データの永続化は、Azure portal と CLI を使用して有効にすることができます。 Premium レベルについては、Premium Azure Cache for Redis の永続化の構成方法に関するページを参照してください。
- ネットワークの分離: Azure Private Link と Virtual Network (VNET) のデプロイにより、Azure Cache for Redis のセキュリティとトラフィックの分離が強化されます。 VNET を使用すると、ネットワーク アクセス制御ポリシーを介してアクセスをさらに制限することができます。 詳細については、Azure Private Link を使用した Azure Cache for Redis に関するページおよび「Premium Azure Cache for Redis の Virtual Network のサポートを構成する方法」を参照してください。
- Redis モジュール: Enterprise レベルでは、RediSearch、RedisBloom、RedisTimeSeries、RedisJSON (プレビュー) がサポートされます。 これらのモジュールにより、Redis に新しいデータ型と機能が追加されます。
作成後のキャッシュは、Basic レベルから Premium までスケーリングできます。 より低いレベルへのスケールダウンは、現在サポートされていません。 スケーリングの詳細な手順については、「How to Scale Azure Cache for Redis」(Azure Redis Cache のスケーリング方法) と「How to automate a scaling operation」(スケーリング処理を自動化する方法) を参照してください。
Enterprise レベルの特別な考慮事項
Enterprise レベルは Redis Enterprise に依存しています。Redis Inc. のお客様は、Azure Marketplace オファーを通じてこのソフトウェアのライセンスを取得して支払います。 Azure Cache for Redis によってライセンス取得が管理されるので、別途これを行う必要はありません。 Azure Marketplace で購入するには、以下の前提条件が整っている必要があります。
- お使いの Azure サブスクリプションに、有効な支払い方法が備わっている。 Azure クレジットや無料の MSDN サブスクリプションはサポートされていません。
- 組織が Azure Marketplace での購入を許可している。
- 非公開 Microsoft Azure Marketplace を使用する場合は、そこに Redis Inc. Enterprise プランが含まれている必要がある。
重要
Azure Cache for Redis Enterprise には、キャッシュ インスタンス自体とは別に課金される標準のネットワーク ロード バランサーが必要です。 詳細については、Load Balancer の価格に関するページを参照してください。
Enterprise キャッシュが複数の Availability Zones で構成されている場合、データ転送は 2022 年 7 月 1 日からの標準のネットワーク帯域幅料金で課金されます。
さらに、データ永続化によって Managed Disks が追加されます。 これらのリソースの使用は、Enterprise データ永続化のパブリック プレビュー期間中は無料です。 これは、機能が一般公開されると変更される可能性があります。
リージョンごとの可用性
Azure Cache for Redis は、新しいリージョンに継続的に拡大しています。 リージョンで利用できるかどうかについては、「リージョン別の利用可能な製品」をご覧ください。