結論から申し上げると下記のドキュメントがとても参考になりました。
https://aws.amazon.com/jp/blogs/news/amazon-elasticache-serverless-for-redis-and-memcached-now-generally-available/
はじめに
ElastiCacheに初めて触るとなると、過去のElastiCacheのハンズオン動画などから見始めて理解を進めていくのが一つの定石だと思いますが、つい半年前にElastiCacheのUIと機能が大々的に変更されたことで、新規でElastiCacheを使おうとする方は逆に導入が大変な時期なのではないかと思います。
たとえば以前ElastiCacheのクラスター作成と呼ばれていたものが、現在だとRedis OSS キャッシュを作成というものに変わっていたり、以前はノード数なるものを設定していたのが、現在だとノードの指定項目がそもそもRedisOSSキャッシュでは見つかりません。
Redisへの接続も(最新verなら)以前使っていたコマンドが使用できなくなっています。
今回はElastiCacheを使ったRedisにFargateのコンテナからRedisに接続する方法をまとめます。
セキュリティグループ周りはあまり説明しないのでご容赦ください。
ElastiCacheとは?
ElastiCacheについてそもそもまだよくわからないという方は「イラストで理解するElastiCache」という下記のZenn記事が数ある中でとてもわかりやすいためおすすめです。
https://zenn.dev/fdnsy/articles/6dd98ba5318bb6
ズバリ新ElastiCacheの注意点
注意点であり僕が沼ったところなのですが、「redis-cliを使ったRedisに接続する際のコマンド」が気をつけるポイントです。
普通は作成したElastiCacheのRedisエンドポイントを使って接続テストを実施しますが、新ElastiCacheでは--tlsオプションをつけなければ正常にログインできません。
redis-cli -h Redisエンドポイント -p 6379
redis-cli -h Redisエンドポイント --tls -p 6379
え?これだけ?と思われるかもしれませんが、ここでミスると基本的にセキュリティグループが間違っているのかとか、エンドポイントが間違っているのかとか、ネットワーク周りのミスだと思って確認にかなり時間が取られちゃうんですよね。
ElastiCacheの作成
- サービス検索欄から「ElastiCache」を検索
- リソースのRedis OSS キャッシュをクリック
- Redis OSS キャッシュを作成をクリック
- 設定のデプロイオプションはサーバーレス
- 作成方法は新しいキャッシュ
- 任意の名前を作成(ElastiCache-Redisなど)
- デフォルト設定タブを開きデフォルト設定をカスタマイズ
- VPCを選択
- AZからプライベートサブネットのものを全て選択
- セキュリティ設定をカスタマイズ
- 管理ボタンをクリックして作成しておいたSGを選択。これはインバウンドルールが接続したいECSコンテナのSGをソースとしておきます。
- その他はデフォルトの設定で大丈夫です。
Redisへの接続手順
1.作成したコンテナにコンソールからログインします。(その前にAWSへのログインは済ませておいてください。)
$ aws ecs execute-command --region [リージョン名] --cluster [クラスタ名] --task [タスクID] --container [コンテナ名] --interactive --command "/bin/sh"
2.次にredis-cliをインストールします。
# apt-get update
# apt-get install -y redis-tools
3.バージョンを出力して正しくインストールされていることを確認します。
# redis-cli --version
redis-cli 7.0.15
4.redis-cliを使ってRedisに接続
# redis-cli -h Redisエンドポイント --tls -p 6379
以上です。
さいごに
いかがでしたでしょうか。ElastiCacheの作成はめちゃめちゃ簡単なのですが 、ドキュメントが少なく僕はここでハマってしまいました...。
もっと詳しく知りたい方は冒頭で示したドキュメントが本当にわかりやすいので、ぜひ読んでみてください。