EC2 インスタンスからVPC 内のElastiCache Redis インスタンスに接続できます。しかし、ローカルの開発セットアップや他のベンダーが提供する VPS インスタンスなど、Amazon EC2 インスタンスの外部にある ElastiCache Redis ノードに接続する方法があるかどうかを知りたいです。
現在、私のローカル設定から試しているとき:
redis-cli -h my-node-endpoint -p 6379
しばらくするとタイムアウトになります。
EC2 インスタンスからVPC 内のElastiCache Redis インスタンスに接続できます。しかし、ローカルの開発セットアップや他のベンダーが提供する VPS インスタンスなど、Amazon EC2 インスタンスの外部にある ElastiCache Redis ノードに接続する方法があるかどうかを知りたいです。
現在、私のローカル設定から試しているとき:
redis-cli -h my-node-endpoint -p 6379
しばらくするとタイムアウトになります。
前の回答は書かれた時点では正確でしたが、 AWS の外部から ElastiCache リソースへのアクセスに従って指示を使用して外部から redis キャッシュにアクセスするための構成が可能になりました。
いいえ、トンネルなどの「トリック」に頼らずにはできません。これは、テストには問題ないかもしれませんが、遅延/オーバーヘッドが追加された超高速キャッシュを使用する本当の利点を台無しにしてしまいます。
VPC 内で Amazon ElastiCache を使用する方法は、外部で使用する場合とどのように異なりますか?の古いFAQ :
VPC の内部または外部にある Amazon ElastiCache クラスターは、インターネットからアクセスすることはできません。
ただし、この言語は現在の FAQでは削除されています
それほど古い質問ではありませんが、私は自分で同じ問題に遭遇して解決しました:
場合によっては、開発上の理由から、外部からアクセスする必要があります (単純なバグ修正のためだけに複数の展開を避けるためですか?)
Amazon は、EC2 を外部のプロキシとして使用する新しいガイドを公開しました。
幸運を!
ところで、Windows EC2 ソリューションが必要な場合は、DOS プロンプトでこれらを試してください (上記の Windows EC2 マシンで):
C:\ユーザー\管理者>netsh interface portproxy add v4tov4 listenport=6379 listenaddress=10.xxx.64.xxx connectport=6379 connectaddress=xxx.xxxxxx.ng.0001.use1.cache.amazonaws.com
C:\ユーザー\管理者>netsh interface portproxy show all
ipv4 でリッスン: ipv4 に接続:
アドレス ポート アドレス ポート
10.xxx.128.xxx 6379 xxx.xxxxx.ng.0001.use1.cache.amazonaws.com 6379
C:\ユーザー\管理者>netsh interface portproxy delete v4tov4 listenport=6379 listenaddress=10.xxx.128.xxx
予約済みプロキシ サーバーとして HAProxy を使用しています。
AWS 外のシステム ---> インターネット --> パブリック IP を使用する HAProxy --> Amazon Redis (Elasticache)
それを行う別の正当な理由があることに注意してください(その時点で)
Amazon DNS フェイルオーバーをサポートしていない node.js クライアントを使用しているため、クライアント ドライバーは dns ルックアップをサポートしていません。redis に障害が発生した場合、クライアント ドライバーは、フェイルオーバー後にスレーブとなる古いマスターに接続し続けます。
HAProxy を使用することで、その問題を解決しました。
現在、最新の ioredis ドライバーを使用して、Amazon dns フェイルオーバーをサポートしています。