Azure Cache for Redis

このエントリは2019/10/29現在の情報に基づいています。将来の機能追加・変更に伴って記載内容との乖離が発生する可能性があります。

Azure Cache for Redisとは

Redisベースのキャッシュ機能をマネージドサービスとして提供するAzureのPaaS。ドキュメントは以下。

Azure Cache for Redis のドキュメント / Azure Cache for Redis Documentation
https://docs.microsoft.com/azure/azure-cache-for-redis/

まずは以下に目を通しておくとよい。

Azure Cache for Redis に関する FAQ / Azure Cache for Redis FAQ
https://docs.microsoft.com/azure/azure-cache-for-redis/cache-faq
Azure Cache for Redis のベスト プラクティス / Best practices for Azure Cache for Redis
https://docs.microsoft.com/azure/azure-cache-for-redis/cache-best-practices

キャッシュデータの永続化

Azure Cache for Redisには永続化オプションがあり、これを使うとAzure Storage (Premium)に定期的に永続化できるとともに、キャッシュが壊れたときにもバックアップからキャッシュを再構成できる。詳細は以下のドキュメントを参照。この機能を利用できるのはPremiumのみである点に注意。

Premium Azure Cache for Redis のデータ永続化の構成方法 / How to configure data persistence for a Premium Azure Cache for Redis
https://docs.microsoft.com/azure/azure-cache-for-redis/cache-how-to-premium-persistence

キャッシュデータのインポート・エクスポート

Premiumプランのみではあるが、BLOBストレージからのインポートやエクスポートが可能(プレビュー)。詳細は以下のドキュメントを参照。

Azure Cache for Redis でデータをインポートまたはエクスポートする / Import and Export data in Azure Cache for Redis
https://docs.microsoft.com/azure/azure-cache-for-redis/cache-how-to-import-export-data

なお、インポート中は当該Cacheへのアクセスはできない。外部からの参照に影響させたくない場合は、ロードバランサを配置してその背後に2インスタンス以上立て、データの入れ替えをするなどの仕組みを考慮する必要がある。

クラスタリング

Premiumでのみ利用可能。クラスタリングで実現できることは以下。注意点は、クラスタリングしたからといって、キャッシュで利用可能な接続の個数は増えない、というところ。

できることできないこと
データセットを複数のノードに自動的に分割
ノードのサブセットで障害が発生したとき、またはクラスターの他の部分と通信できないときに、操作を続行する機能
シャードの数を増やすと、スループット、メモリサイズは比例して増加
キャッシュで利用可能な接続の個数は増えない

キャッシュのレプリカ

Geoレプリケーションで一つをRead/Write、もう一つをReadレプリカとしてレプリケーションを構成できる。

geo レプリケーションには、レベルが Premium である Azure Cache for Redis の 2 つのインスタンスをリンクするメカニズムが用意されています。 1 つのキャッシュはプライマリ リンク キャッシュとして、もう一方のキャッシュはセカンダリ リンク キャッシュとして選択されます。 セカンダリ リンク キャッシュは読み取り専用になり、プライマリ キャッシュに書き込まれたデータがセカンダリ リンク キャッシュにレプリケートされます。 この機能は、Azure リージョン間でキャッシュをレプリケートする際に使用できます。

Azure Cache for Redis の geo レプリケーションの構成方法 / How to set up geo-replication for Azure Cache for Redis
https://docs.microsoft.com/azure/azure-cache-for-redis/cache-how-to-geo-replication

前提条件は以下のURLに記載の通りだが、永続化がサポートされないので注意(永続化を構成していると、構成できない)。そのため、Read-Write可能なインスタンスでは、エクスポート・インポートの仕組みを用意してデータをバックアップしておく必要がある。

geo レプリケーションの前提条件 / Geo-replication prerequisites
https://docs.microsoft.com/azure/azure-cache-for-redis/cache-how-to-geo-replication

TLS 1.2の強制

Azure Cache for Redisへ接続する場合、TLS 1.0、1.1、1.2を選択できる(もちろん、TLSを使わない接続も選択できるがお勧めしない)が、ドキュメントに記載の通り、TLS 1.2を選択することを強く推奨。インスタンス側でTLS 1.2を強制する場合、設定 > 詳細設定 で [TLS の最小バージョン] でTLS 1.2を選択する(デフォルトはTLS 1.0)。

クライアント側での対応は各言語でまちまち。

Azure Cache for Redis での使用から TLS 1.0 と 1.1 を削除する / Remove use of TLS 1.0 and 1.1 with Azure Cache for Redis
https://docs.microsoft.com/azure/azure-cache-for-redis/cache-remove-tls-10-11

Azure Cache for RedisをKey-Valueストアとして用い、Databricksからの大量の出力を受け止めた場合にどうなるかは別エントリで。

Azure DatabricksでAzure Cache for Redisにデータを流し込む
https://logico-jp.io/2019/12/25/azure-cache-for-redis-and-databricks/

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中