1. ホーム
  2. redis

[解決済み] エラーです。スタンナルメソッドでElastic cacheに接続中、ピアによって接続がリセットされました。

2022-02-10 09:52:37

質問

elastic cache single node shard redis 4.0 later versionを使用しています。

In-Transit Encryption を有効にして、redis の認証トークンを渡しました。

このリンクを使用して、stunnalで1つのBastionホストを作成しました。

https://aws.amazon.com/premiumsupport/knowledge-center/elasticache-connect-redis-node/

以下の方法でエラスティックキャッシュのredisノードに接続することができます。

redis-cli -h hostname -p 6379 -a mypassword

また、telnetも可能です。 しかし 接続後、redis-cliにpingを打つと(期待される応答は "PONG")、次のようになります。

エラー。相手によって接続がリセットされました。

双方のセキュリティグループを確認しました。 何か心当たりはありますか? Bastion ホスト ubuntu 16.04 マシン

解決方法を教えてください。

質問にあるように、私はこのようにコマンドを実行していました。

redis-cli -h hostname -p 6379 -a mypassword

ElastiCache クラスタに stunnel で接続する場合、ホストアドレスとして "localhost" を使用することが正しい方法です。

redis-cli -h localhost -p 6379 -a mypassword

ローカルホストのアドレスを使用することについての説明があります。

stunnel を使って bastion サーバと ElastiCache ホストの間にトンネルを作ると、 プログラムはローカル TCP ポート (6379) をリッスンするサービスを開始し、 SSL プロトコルを使って通信をカプセル化し、 ローカルサーバとリモートホストの間でデータを転送するようにします。

stunnel を起動し、サービスが localhost アドレス (127.0.0.1) をリッスンしているかどうかを確認し、 "localhost" を宛先アドレスとして使用して接続する必要があります: "

  1. stunnelを起動します。 (このリンクを使ってstunnelをインストールしたことを確認してください。 https://aws.amazon.com/premiumsupport/knowledge-center/elasticache-connect-redis-node/ )

    $ sudo stunnel /etc/stunnel/redis-cli.conf

  2. netstat コマンドを使用して、トンネルが開始されたことを確認します。

    $ netstat -tulnp | grep -i stunnel

  3. これで、redis-cli を使用して、トンネルのローカルエンドポイントを使用して暗号化された Redis ノードに接続することができます。

    $redis-cli -h localhost -p 6379 -a MySecretPassword

    localhost:6379>set foo "bar"

    OK

    localhost:6379>get foo

    "bar"