105

EC2 インスタンスからVPC 内のElastiCache Redis インスタンスに接続できます。しかし、ローカルの開発セットアップや他のベンダーが提供する VPS インスタンスなど、Amazon EC2 インスタンスの外部にある ElastiCache Redis ノードに接続する方法があるかどうかを知りたいです。

現在、私のローカル設定から試しているとき:

redis-cli -h my-node-endpoint -p 6379

しばらくするとタイムアウトになります。

4

9 に答える 9

78

2018年アップデート

前の回答は書かれた時点では正確でしたが、 AWS の外部から ElastiCache リソースへのアクセスに従って指示を使用して外部から redis キャッシュにアクセスするための構成が可能になりました。


古い回答

いいえ、トンネルなどの「トリック」に頼らずにはできません。これは、テストには問題ないかもしれませんが、遅延/オーバーヘッドが追加された超高速キャッシュを使用する本当の利点を台無しにしてしまいます。

VPC 内で Amazon ElastiCache を使用する方法は、外部で使用する場合とどのように異なりますか?の古いFAQ :

VPC の内部または外部にある Amazon ElastiCache クラスターは、インターネットからアクセスすることはできません。

ただし、この言語は現在の FAQでは削除されています

于 2014-02-21T14:32:05.300 に答える
6

それほど古い質問ではありませんが、私は自分で同じ問題に遭遇して解決しました:

場合によっては、開発上の理由から、外部からアクセスする必要があります (単純なバグ修正のためだけに複数の展開を避けるためですか?)

Amazon は、EC2 を外部のプロキシとして使用する新しいガイドを公開しました。

https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/accessing-elasticache.html#access-from-outside-aws

幸運を!

于 2015-11-23T08:42:51.563 に答える
4

ところで、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

于 2016-07-11T18:41:36.970 に答える
4

予約済みプロキシ サーバーとして HAProxy を使用しています。

AWS 外のシステム ---> インターネット --> パブリック IP を使用する HAProxy --> Amazon Redis (Elasticache)

それを行う別の正当な理由があることに注意してください(その時点で)

Amazon DNS フェイルオーバーをサポートしていない node.js クライアントを使用しているため、クライアント ドライバーは dns ルックアップをサポートしていません。redis に障害が発生した場合、クライアント ドライバーは、フェイルオーバー後にスレーブとなる古いマスターに接続し続けます。

HAProxy を使用することで、その問題を解決しました。

現在、最新の ioredis ドライバーを使用して、Amazon dns フェイルオーバーをサポートしています。

于 2015-10-15T06:53:24.173 に答える