web-dev-qa-db-ja.com

AWS Lambda関数からElastiCacheクラスターに接続する

AWS Lambda関数からRedis ElastiCacheクラスターに接続できますか?

構成の問題なのか、単に不可能なのかはわかりません。

PS:EC2インスタンスからテストを行い、Redisノードに接続できます。また、Lambda関数とRedisノードは同じリージョンにあります。


更新(2015年10月9日):

AmazonはAWS Lambda関数のVPCを発表しました。 詳細はこちら

これは、ElastiCacheやRDSマシンなど、VPCセキュリティグループの背後にあるAWSのリソースにアクセスできることを意味します。

UPDATE(2016年2月11日):AmazonはAWS Lambda用のVPCを開始しました。

https://aws.Amazon.com/about-aws/whats-new/2016/02/access-resources-within-a-vpc-using-aws-lambda/

42
Mircea Soaica

2016年2月現在、AWSではラムダ関数を使用してElasticacheに接続できます。 AWS Lambdaを使用したVPC内のリソースへのアクセス を参照してください。リンクは次のとおりです- チュートリアル:Amazon VPCでAmazon ElastiCacheにアクセスするためのLambda関数の設定

16
greg_diesel

HTTPプロキシまたはiptablesのセットアップは、次の理由で機能しません。

Redis呼び出しはHTTPではなく、HTTPプロキシによって処理されません。 iptables(またはそれに関するポート転送)は、宛先としてドメイン名を受け入れないか、毎回必要なDNS解決のために非常に非効率的です。

最良かつ便利な方法は、EC2マシンに twemproxy をインストールし、リクエストをルーティングすることです。おまけとして、突然素晴らしいシャーディング戦略も展開しました。

3
Nirmal

同じ問題が発生していました。直接的な解決策は見つかりませんでしたが、代わりにLambda関数を使用して、socket.ioを使用してEC2サーバーに接続しました。これは非常に簡単で、そのEC2サーバーにイベントを発行します。

EC2サーバーがイベントを受信すると、必要なRedisタスク(画像のサムネイル生成後のデータベースのクリーンアップ)を実行しました。

お役に立てれば!誰かがLambdaからElastiCacheに直接接続する方法を見つけたとしても、私はまだ知りたいです!

1
R.V.d.M

Lambdaをmemcached elasticacheに接続しようとしましたが、うまく機能します。 Redisも実行可能でなければなりません。

留意すべき点:

  1. LambdaとElasticacheは同じVPCに存在する必要があります。
  2. LambdaがVPCで実行されると、インターネットにアクセスできなくなります(そのため、パブリックAPIへのアクセスは機能しません)。これにはNATGatewayが必要です。
0
Rssr