1年振りs-oomoriです。
本記事はOracle Cloud Infrastructure Advent Calendar 2023 カレンダー1の Day 5の記事となります。
今回はOCI Gen2を初期の頃から関わっている方であれば分かる方もいらっしゃると思いますが、順調に行けば4年くらい前?にはリリースされていたはずのRedisサービス,,,,,,,,,がまさかの消滅(リリースやLA情報も削除された)〜OCW2022で発表〜今年10月にやっとリリースされました。
本記事ではデプロイするところまでを記載します。
OCI Redis
OCIではRedisクラスターをフルマネージドで提供してくれます。
執筆時点では、Redisバージョン7.0.5のみサポートされており、Redisクラスタに対して新しいパッチ適応もマネージドで対応してくれるようです。
採用を検討する場面は、アプリケーションとデータストア間で「高パフォーマンス」かつ「低レイテンシ(ミリ秒未満)」でデータを取得したり保存するとき等があります。
参考:RedisによるOCI Cache: アプリケーションのパフォーマンスを向上させるための迅速な方法
価格については現時点では下図のとなります。

※最低ノード&メモリである、1ノード&2GBメモリの場合、約4,000円/月前後!!
Redisクラスタ作成
※事前に必要なポリシー設定、または作成可能な管理者権限が付与されていることとします。
OCIコンソール メニューの「データベース」-「Redis(またはRedis内に記載のクラスタ)」を選択します。

任意のコンパートメントを選択し、「クラスタの作成」を選択します。

「クラスタの構成」画面で、「クラスタ名」、「作成先コンパートメント」、「バージョン(現在はv7.0.5固定)」を選択し、「次」を選択します。

「ノードの構成」画面で、「1ノード当たりのメモリー(GB)」、「ノード数」を選択し、「次」を選択します。
※ノード数を増やすと、「合計ノード数」欄にレプリカ数がカウントされていきます。
(プライマリは1ノード固定)
※今回は、1ノード&4GBメモリで作成

「ネットワーキングの構成」画面で、「既存のVCNを指定」 or 「新規VCN(自動生成)」を選択して「次」を選択します。
※サブネットの選択ですが、「パブリックサブネット」を選択するとデプロイエラーとなるバグがありましたが、現在は解消されているようで、どちらのサブネットも選択可能です!!

「確認および作成」画面で、デプロイ内容を確認したら「クラスタの作成」を選択します。


今回の構成は約4分以内でデプロイされました。
※参考までに、3ノード&4GB構成は約7分程度でした。

サイズ変更
「ノードのサイズ変更=ノード数増減」と「メモリーのサイズ変更=メモリ増減」が可能です。
下記の通り変更してみました。(カッコの中は戻した場合)
・ノード変更:1ノード→3ノード=約5分程度 (ノード減少:1ノードに戻す=3分程度)
・メモリ変更:4GB→2GB=約2分程度(メモリ増加:4GBに戻す=2分程度)


変更後の画面です。ノードが0番〜2番まで3つに増えてます。

Redisへの接続
接続するにはredis-cliを使います。
今回はOracle Linuxサーバにインストールしましたが、サイトによって方法がいろいろ記載があり、導入している途中でつまずいたりするかもしれません。
今回は下記サイトを参考に導入しました。
参考:redis-cliだけをインストールする(EC2、Mac) @ajitama様
補足としては、インストール中の「パスを通す(コンパイルパッケージをインストール)」のところで、パス先を「/usr/local/bin/」ではなく「/sbin/」にしました。
sudo install -m 755 src/redis-cli /sbin/
redis-cliが利用可能になったら、Redisに接続してみます。
クラスタ画面に「プライマリ・エンドポイント(図中の赤枠)」が記載されてますので、そこに接続します。もちろん各ノードの「プライベート・エンドポイント(図中の青枠)」にも接続は可能です。

プライマリ・エンドポイントに接続して「PING」してみます。「PONG」になってるので正常に返ってきてます。
◆接続用CLI=「redis-cli --tls -h <ID>-p.redis.us-ashburn-1.oci.oraclecloud.com」
※ポート指定しなくともOKでした。
$ redis-cli --tls -h amaaaaaa7swuj4yaqd7el54wvovjizulysi5e466tr3rb7pszfmplv6qtxxq-p.redis.ap-tokyo-1.oci.oraclecloud.com
↓
amaaaaaa7swuj4yaqd7el54wvovjizulysi5e466tr3rb7pszfmplv6qtxxq-p.redis.ap-tokyo-1.oci.oraclecloud.com:6379> PING
PONG
ストア内のデーターベース個数を確認してみます。(デフォで16個)
amaaaaaa7swuj4yaqd7el54wvovjizulysi5e466tr3rb7pszfmplv6qtxxq-p.redis.ap-tokyo-1.oci.oraclecloud.com:6379> CONFIG GET databases
1) "databases"
2) "16"
まとめ
今回はここまでです。
とても簡単にデプロイ〜各サイズ変更ができます。最低ノード&メモリ数だと利用費も安価ですので、検証等でも低敷居で触ることができると思いますので、是非利用してみてください。
更に利用方法や管理方法を知りたい!!という方には、タイムリーなことに明日12/6(水)19時〜「OCI Cache with Redisでキャッシュ管理」と題して「OCHa Cafe(おちゃかふぇ)」さんがセミナーを開催してくださりますので、こちらも是非参加してみましょう!!
Cloudiiでも実装してみて気がついた事等はX(旧Twitter)をはじめ、当ブログでもアウトプットしていきます。