はじめに
先日来日した Memorystore を軽く調べましたのでまとめたいと思います。
まぁ待ってればそのうち公式が翻訳されると思いますが・・
ところでMemorystoreってなんだっけ?
GCPで提供されているPaaSな Redis です。
Redisが必要なんだけど自分でメンテしたくない人向け。
RedisLabs が類似のサービスになると思います。
Memorystoreの特徴
Redisバージョン
公式によると現時点では3.2.11 固定です。
Currently running Redis version 3.2.11
Redisプロトコル
公式によると完全な互換性があり、既存のライブラリが使える とのこと。
Redis Protocol Compatible. Cloud Memorystore for Redis is fully Redis protocol compliant. You can move your applications using open source Redis to use Cloud Memorystore for Redis without any code changes. There is no need to learn new tools: all existing tools and client libraries just work.
可用性
可用性はBasic Tier(基本 Tier)とStandard Tier(標準 Tier) のどちらを選択するかで変わります。
Basic Tierはレプリカが無く、googleによるメンテナンス他のいくつかの
操作で中身が消える ので、開発やテスト環境向けになります。
Standard Tierを選択するとレプリカが作成され、メンテやフェイルオーバーなど
でのデータ消失を防ぎます。
性能
ウェブUIによると次の通りです。
公式による解説はこちら。
参考まで基本Tierの月額は標準Tierの半分強程度。
容量のリサイズ操作とその際の挙動
容量のリサイズ操作は 公式のこちらに記載 されています。
またリサイズを行った際の挙動は 公式のこちらに記載 されています。
Basic Tierの場合、リサイズ中の読み書きはブロックされます。
またリサイズ後はデータはフラッシュされます。
Standard Tierの場合、最初にレプリカのリサイズが行われその後フェイルオーバーで
マスターとレプリカが入れ替わります。 このためほとんど停止時間がありません。
ただし、フェイルオーバー時にRedisへの接続は切断されます。
またレプリケーションは非同期で行われるため、不整合データが発生する可能性もあります。
Redisに接続するアプリケーションは、これらへの耐性が必要です。
Standard Tierのフェイルオーバー時のアプリケーションへの影響
フェイルオーバー時の影響は 公式のこちらに記載 されています。
フェイルオーバー発生時にアプリケーションからRedisへの接続は切断されます。
ただしアプリケーションはフェイルオーバー前のマスターと同じ接続先に
再接続しさえすればよいです。
Redisのフェイルオーバーは約30秒かかります。(ゾーンの障害の場合はさらにかかるかもしれません)
googleによるMemorystoreのメンテナンス
googleによるMemorystoreのメンテナンスは 公式のこちらに記載 されています。
メンテナンスはだいたい四半期に一度のペースで行われるようです。
挙動はリサイズと似た感じになるようです。
Memorystoreが提供されているリージョン
Memorystoreが提供されているリージョンはこちらに記載されています。
接続元
接続元については 公式のこちらに記載 されています。
Memorystoreと同一プロジェクト、リージョン、ネットワークのGCE、GKE、GAE/FEから接続可能です。
同一リージョン内の別ゾーンからも接続できますが、ネットワークパフォーマンス的には
同一ゾーンの方が良いとのこと。
Resources in different zones within the same region can connect, however provisioning resources in the same zone improves network performance.
Memorystoreを立ち上げてGCEから接続してみる
公式を参考にMemorystoreを立ち上げてGCEから接続してみます。
Memorystoreを準備
ウェブUIなのでざっくりですがインスタンス作成に7分程度かかりました。
出来上がったインスタンスは次の通り。
GCEを準備
同一プロジェクト、同一リージョンで適当に用意してtelnetも入れます。
接続テスト
現場からは以上です。