Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Amazon ElastiCacheにEC2から接続できない → 送信中の暗号化が原因だった

More than 1 year has passed since last update.

やりたいこと

  • 毎アクセス実行され、かつ同じ結果を返すクエリを発見
  • 結果をredisでキャッシュしたろ
  • FuelPHPのアプリケーションだから、Redis_Db クラスを使ってredisを操作しよ
  • redisはElastiCacheで用意しよ

問題発生

  1. ElastiCacheの設定完了
  2. アプリから接続してみる→エラーになる:bomb:
  3. 原因究明のためアプリを動かしているEC2からredis-cliで接続してみる
$ redis-cli -h (ElastiCacheエンドポイント) -p 6379
(ElastiCacheエンドポイント)> ping
Error: Connection reset by peer

:question::question:接続はできるけど、コマンド実行しようとするとエラーになる:confused::question::question:  
(当たり前だけど、VPC違いなどで接続できない場合は最初の redis-cli -h -p 時点でエラーになる。)

原因判明

ElastiCacheクラスター作成時のオプション「送信中の暗号化」にチェックを入れている場合は、SDKからじゃないと操作できないらしい。
▼参考
https://forums.aws.amazon.com/thread.jspa?threadID=160851#jive-message-832075

Please could you confirm if redis encryption in-transit is not enabled for your cluster. If it is enabled, then you would be unable to connect using redis-cli as it does not support SSL encryption. The only way to connect in redis with in-transit encyption enabled is using a SDK.

「送信中の暗号化」チェックを外したクラスターを作成したら接続できました :thumbsup:

2019/12/03 更新:
redis-cli経由で接続したい場合はstunnelを経由すれば良い。
▼参考
https://aws.amazon.com/jp/premiumsupport/knowledge-center/elasticache-connect-redis-node/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away