このブログをご覧のみなさん、こんにちは。
セッションストレージの冗長性、可用性を確保すべく、Redis のクラウドサービスを比較検討してみました。
条件
以下の条件を満たすものを調査しました。
- Redis
- クラスタ構成できる
- スケールアウト/インできる
- 日中帯はノーダウン(後でこれは実現できないことが分かったので、「障がい時、早急に復旧できる」へ要求を変更してもらいました)
当初 Amazon ElastiCache を提案されたので、以下を参考に Azure Redis Cache と比較検討してみました。
Microsoft Azure とアマゾン ウェブ サービス
Amazon ElastiCache
- クラスタ構成: Memcached, Redis どちらのエンジンを採用しても可能
- スケールアウト/インできること: Memcached, Redis(クラスタ非構成) で可能
Adding nodes to a cluster currently applies only if you are running Memcached or Redis (cluster mode disabled).
- 上記のため、条件を満たせないことが発覚
- リージョンをまたいでのクラスタ構成はできないが、Multi-AZ でクラスタ構成は可能
Azure Redis Cache
- クラスタ構成: Premiumレベルで可能
Redis クラスター: 53 GB を超えるキャッシュを作成するか、複数の Redis ノード間でデータを共有する場合、Premium レベルで利用可能な Redis クラスタリングを使用することができます。
- スケールアウト/インできること: 可能
各ノードは、Azure によって管理される高可用性対応のプライマリ/レプリカ キャッシュのペアで構成されています。
- リージョンをまたいでのクラスタ構成はできない
冗長性(障がい時の復旧)
リージョンをまたいでクラスタ構成ができないため、リージョンで障がいが発生した場合は別のリージョンで同一構成を立ち上げで対処することにしました。 そのため、監視 & インフラの構築 & 向き先変更まで自動化できているのが望ましい状態です。
まとめ
似たサービスでもこうして比較してみると細部が異なっていることってあるんですね。