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 | はい | イエス | はい | いいえ | いいえ |
更新プログラム チャネルと更新プログラムのスケジュール | はい | イエス | はい | いいえ | 無効 |
Note
Enterprise Flash レベルでは、現在、RediSearch モジュール (プレビュー) と RedisJSON モジュールのみがサポートされています。
最適なサービス レベルを選択する
Azure Cache for Redis のレベルを選ぶ際は、次のオプションを考慮します。
- メモリ: Basic レベルと Standard レベルでは 250 MB から 53 GB、Premium レベルでは 6 GB から 1.2 TB、Enterprise レベルでは 1 GB から 2 TB、Enterprise Flash レベルでは 300 GB から 4.5 TB が提供されます。 サイズの大きいキャッシュ インスタンスを作成するには、スケール アウトを使用できます。詳細については、Azure Cache for Redis の価格に関するページを参照してください。
- パフォーマンス: Premium および Enterprise レベルのキャッシュは、高速プロセッサを備えたハードウェアにデプロイされ、Basic レベルや Standard レベルと比べて優れたパフォーマンスを発揮します。 通常、Enterprise レベルは、ほとんどのワークロード (特に、大規模なキャッシュ インスタンスを伴うもの) に最適なパフォーマンスを備えています。 詳細については、「パフォーマンス テスト」を参照してください。
- Redis サーバー専用コア: C0 を除くすべてのキャッシュによって、専用 vCPU が実行されます。 Basic レベル、Standard レベル、Premium レベルでは、オープン ソース Redis が実行されます。この場合、設計上、コマンド処理には 1 つのスレッドのみが使用されます。 これらのレベルでは、通常、vCPU が多いほどスループットのパフォーマンスが向上します。Azure Cache for Redis では、I/O 処理または OS プロセスに他の vCPU を使用するからです。 ただし、インスタンスごとに vCPU を追加しても、線形パフォーマンスは向上しない可能性があります。 通常は、スケールアウトすると、これらのレベルでスケールアップするよりもパフォーマンスは向上します。 Enterprise レベルと Enterprise Flash レベルは両方とも、インスタンスごとに複数の vCPU を利用できる Redis Enterprise 上で実行されます。これにより、パフォーマンスは、他のレベルよりも大幅に向上します。 Enterprise レベルと Enterprise フラッシュ レベルでは、スケールアウトする前にスケールアップすることをお勧めしています。詳細については、シャーディングと CPU 使用率を参照してください。
- ネットワーク パフォーマンス: 高いスループットを必要とするワークロードがある場合、Premium および Enterprise レベルでは、Basic や Standard と比較してより広い帯域幅が提供されます。 また、各レベル内では、キャッシュをホストする基盤の VM のため、キャッシュのサイズが大きいほど帯域幅も増えます。 帯域幅の制限を上げると、アプリケーションのタイムアウトを引き起こすネットワークの飽和状態を避けやすくなります。 詳細については、「パフォーマンス テスト」を参照してください。
- クライアント接続の最大数: 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 scale - Basic, Standard, and Premium レベル」(スケーリングする方法 - Basic、Standard、Premium tiers) を参照してください。
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 には、キャッシュ インスタンス自体とは別に課金される標準のネットワーク ロード バランサーが必要です。 現在、これらの料金は Azure Cache for Redis によって吸収され、顧客には渡されません。 これは、今後変更される可能性があります。 詳細については、Load Balancer の価格に関するページを参照してください。
エンタープライズ キャッシュが複数の Availability Zones 用に構成されている場合、データ転送料金は Azure Cache for Redis によって吸収され、顧客には渡されません。 これは将来変更される可能性があり、データ転送は標準のネットワーク帯域幅レートで課金される予定です
さらに、データ永続化によって Managed Disks が追加されます。 これらのリソースの使用は、Enterprise データ永続化のパブリック プレビュー期間中は無料です。 これは、機能が一般公開されると変更される可能性があります。
リージョンごとの可用性
Azure Cache for Redis は、新しいリージョンに継続的に拡大しています。 リージョンで利用できるかどうかについては、「リージョン別の利用可能な製品」をご覧ください。