はじめに
この記事ではAmazon CodeCatalystのDev Environmentで作成した環境を使って、RedisからフォークされたValkeyを起動して触る話を書きます。主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば修正していく想定です。
Valkeyとはなんぞや
簡単に言うと、RedisのようなキャッシュのOSSです。公式サイト
Redisのような
と表現しましたが、実態はRedisのフォークです。
※フォーク:リポジトリの引用、コピーのこと。みんながよく知るフォークのように取り出すような意味がありますが、元のリポジトリがなくなるわけではないです。
以下、公式リポジトリより引用
Valkey is a high-performance data structure server that primarily serves key/value workloads. It supports a wide range of native structures and an extensible plugin system for adding new data structures and access patterns.
訳:Valkeyは、主にキー/バリューのワークロードに対応する高性能なデータ構造サーバーです。幅広いネイティブ構造をサポートし、新しいデータ構造やアクセスパターンを追加するための拡張可能なプラグインシステムを備えています。
検証環境について
検証環境は以下の記事を参考に作成するため、一部省略します。なお、今回はAWS Builder IDを使ってセットアップします。
- 検証!AWS Builder IDを使ってAmazon CodeCatalystをセットアップする
- 検証!Amazon CodeCatalystのDev EnvironmentでVisual Studio Codeを起動してみる
- 【AWS】検証!Amazon CodeCatalystのDev Environmentで作成したコンピューティングリソースって中身どうなっているん?
検証環境の作成
では、実際に環境を構築してやっていきたいと思います。
Dev EnvironmentsでVisual Studio Codeの開発環境を構築する
以下のURLにアクセスしてsource-repositoriesを開きます。
※{スペース名}
と{プロジェクト名}
は任意の名前
https://codecatalyst.aws/spaces/{スペース名}/projects/{プロジェクト名}/source-repositories
Create Dev Environment
の右にある逆三角形をクリックします。
いくつか環境が選択できますが、ここではVisual Studio Code
を選択します。
開発環境の設定と起動
開発環境を選択すると設定画面に遷移します。ブランチ、エイリアス、VPCコネクションなどの設定がありますが、ここではブランチのみ設定してCreate
をクリックします。
Dev Environment Configuration
の設定はデフォルトのSmall 2vCPU, 4GB RAM
で進めます。
Create
を実行するとローカルにインストールされているVisual Studio Codeから通知が届きます。Open Visual Studio Code.app
をクリックします。
Visual StudioCodeの画面でポップアップが表示されるのでOpen
をクリックします。
これでAWS上にVisual Studio Codeを起動してローカルのVisual Studio Codeから接続できました。
接続確認
ターミナルを起動してuname -a
を実行してみましょう。
まずはターミナルを起動します。Terminal
をクリックしてNew Terminal
を選択します。
新しいターミナルで以下のコマンドを実行します。
uname -a
実行結果
Linux ip-10-136-119-155.us-west-2.compute.internal 6.1.90-99.173.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 7 11:11:31 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
AWS上で起動しているターミナルであることが確認できました。
Dev EnvironmentでValkeyをセットアップする
今回はDockerコンテナを使って検証します。公式リポジトリ
とりあえず、イメージをプルして実行してみましょう。
docker run --name valkey -d valkey/valkey:7.2.5
実行結果
[mde-user@ip-10-136-119-155 CodeCatalystNodeDev]$ docker run --name valkey -d valkey/valkey:7.2.5
Unable to find image 'valkey/valkey:7.2.5' locally
7.2.5: Pulling from valkey/valkey
09f376ebb190: Pull complete
05595428be8a: Pull complete
6c1cd24899a3: Pull complete
5e249683c8ca: Pull complete
fd565303d364: Pull complete
b736e8ddbf87: Pull complete
4f4fb700ef54: Pull complete
92c9201ad3df: Pull complete
Digest: sha256:372e508417aaaad888e5cbfa03def1d6026b012ed4c91266ff41001c38da3b0c
Status: Downloaded newer image for valkey/valkey:7.2.5
f6a565b6a9ff72ff352306577e4dbdecbc1b87270c9eac596efd89b754b8b95a
※イメージをプルする場合は以下のコマンドです。
docker pull valkey/valkey:7.2.5
Valkeyを操作してみる
コンテナが正常に起動しているかを確認するために以下のコマンドを実行します。
docker ps -a
実行結果
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f6a565b6a9ff valkey/valkey:7.2.5 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 6379/tcp valkey
tcpの6379で実行されていることがわかります。6379というとRedisと同じポート番号ですね。
では、実際にコンテナの中に入ってみましょう。
docker exec -it valkey valkey-cli
実行結果
[mde-user@ip-10-136-119-155 CodeCatalystNodeDev]$ docker exec -it valkey valkey-cli
127.0.0.1:6379>
簡単な操作をしてみる
key test
に数値1をセットします。
set test 1
key test
が存在するかを確認します。
EXISTS test
key test
からバリューを取得します。
get test
key test
からバリューを削除します。
DEL test 1
key test
からバリューが削除されたかします。
get test
ここまでの実行結果
127.0.0.1:6379> set test 1
OK
127.0.0.1:6379> EXISTS test
(integer) 1
127.0.0.1:6379> get test
"1"
127.0.0.1:6379> DEL test 1
(integer) 1
127.0.0.1:6379> get test
(nil)
セット操作をしてみます。
SADD settest1 1
SADD settest1 2
SMEMBERS settest1
実行結果
127.0.0.1:6379> SADD settest1 1
(integer) 1
127.0.0.1:6379> SADD settest1 2
(integer) 1
127.0.0.1:6379> SMEMBERS settest1
1) "1"
2) "2"
127.0.0.1:6379>
ハッシュ操作を操作してみます。
HSET hasht field 0
HSET hasht field1 1
HSET hasht field2 2
HGETALL hasht
実行結果
127.0.0.1:6379> HSET hasht field 0
(integer) 1
127.0.0.1:6379> HSET hasht field1 1
(integer) 1
127.0.0.1:6379> HSET hasht field2 2
(integer) 1
127.0.0.1:6379> HGETALL hasht
1) "field"
2) "0"
3) "field1"
4) "1"
5) "field2"
6) "2"
127.0.0.1:6379>
最後にquitして終了しましょう。
quit
まとめ
Amazon CodeCatalystのDev EnvironmentでValkeyを使ってみました。
実際にRedisを使ったことのある筆者が触ってみてもとくに違和感なく触れたので安心しました。
他、気になるところというと、RedisのSDKからデータを引用できるのか
Redisに対応しているOSSと併用したらどうなるのかなど気になることは多いです。
たとえば、Redashを使っている場合はElasticache for redisを使っていると思いますが
Redashとの相性?はどんな感じなのかなと気になりました。今後も注目していきたいと思います。