2016-07-30 25 views
0

ElastiCache Redisクラスターを使用するAWS Lambda関数があります。 VPCRedisクラスタが「ロック」されているため、Lambdaファンクションは、VPCに存在する必要があります。何らかの理由でAWS Lambda - VPCでKinesisを使用

LambdaInternet gatewayを持ってpublic subnetIPを割り当てられている場合 - それはまだので、それが不可能Kinesisを使用するようになって、外部(インターネット)への接続を行うことはできません。

このため、Lambdaを外部に接続できるように、NATゲートウェイを使用することをお勧めします。

基本的に、これは私にとっては効果的ですが、私の問題はお金です。 このソリューションは大量のデータ転送には高価ですが、私はそれを安くする方法を探しています。

私が作った小さなPOCの場合、私は~$10を支払った。 enter image description here

私の制作パイプラインはgigabytes /月の数百を実行するように、これは~30GBのためのあまりです。

は、どのように私はLambda機能がNATゲートウェイを使用せずに外(特にKinesis)を接続してみましょうお勧めしますか?

ありがとうございました!

+0

IGWを使用してVPCからインターネットの外部に接続する場合、HTTPトラフィックを許可するためにインバウンドとアウトバウンドの両方のネットワークACLを追加します。 LambdaにアウトバウンドACLを追加してもよろしいですか? – error2007s

+1

@ error2007sは完全には正しくありません。それでもNATゲートウェイが必要です。 –

+0

またはNAT *インスタンス* @ MarkB。 –

答えて

2

NATゲートウェイを使用しないでください。

NAT インスタンスを使用してください。

プライベートIPアドレスからインターネットにアクセスするには、VPCでこれらの2つのいずれかを実行する必要があります。

NATインスタンスは、比較的新しいNATゲートウェイサービスが導入されるまで、これが常にVPCでどのように行われたかを正確に示していました。

NATゲートウェイを使用することもできます。これは、管理されたNATサービスであり、より高い可用性と高い帯域幅を提供し、管理作業を軽減します。よく使用されるケースでは、NATインスタンスではなくNATゲートウェイを使用することをお勧めします。

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html

確かに、それは簡単だが、それはより多くの費用がかかります。もっとたくさん。この場合の最も重要な違いは、NATインスタンスでは、ハードウェアの使用に一定の料金がかかります。これは安価なt2.nano、$ 5/moになります。

NATゲートウェイサービスは、ほぼ無限のスケーリング容量を持つ高性能ソリューションであり、それに応じて料金がかかります。 NATインスタンスは、実行するハードウェアと同じくらい良好ですが、t2.nanoとt2.microは、250Mbit/s以下のインターネット接続を必要とする作業負荷には非常に適しています。

上記のリンクを使用して詳細を確認してください。

+0

NATインスタンスが負荷を処理できない場合はどうなりますか?ピック時には、1200インスタンス/分のラムダを実行して、それぞれが1MBをリトライバックメカニズムで送信しようとしました。 私は250 Mbit/sで十分であるとは確信していませんが、負荷を見積もる方法はわかりません。 – johni

+0

以上のように、1 NATのインスタンスは、シングルポイント障害です。 'NAT'インスタンスのクラスタをどのように管理し、負荷を分散させるのですか? 頭痛のように見えますが、同意しますか?私は 'NAT'ゲートウェイの方が良いと思っています。 – johni

+2

@ johniあなたのユースケースを考えると、NATゲートウェイを使う方が良いでしょう。しかし、NATゲートウェイは高価で、安価なものが必要でした。管理されたNATゲートウェイは、NATよりも優れています。費用以外のあらゆる面で –

1

ラムダファンクションインスタンスには、配置するVPCサブネットのタイプに関係なく、パブリックIPアドレスが割り当てられません。NATゲートウェイは、VPC内のラムダ機能を外部にあるリソースにアクセスする唯一のソリューションですVPC(キネシスのような)。

コストのためにうまくいかない場合は、ラムダ機能がVPC内になくても接続できるように、Elastic IPを使用してEC2インスタンス上でRedisサーバーを実行してみるとよいでしょう。 ElastiCacheの代わりにRedisLabsを使用することも同様の方法です。

+0

私はあなたの要点を見ていますが、それは 'AWS'を使ったことです。クラスタをどのように管理すればいいのか分かりませんが、Redisクラスタを実行できます。高可用性を保証するために、レプリカ数と複数のAZを設定するだけです。 私はそれを自分でやることについて知識がありません。 – johni

+0

@ johniだから、私はRedisLabsもお勧めします。これはElastiCacheだけでなく、あなたのために物事を管理します。あなたはおそらくNATゲートウェイを支払う必要があるか、ラムダからEC2インスタンスにタスクを移す必要があるようです。 –

+0

RedisLabsオプションについて検討します。真実を伝えるために、私は 'ElastiCache'クラスタを' VPC'の中にロックするためにAmazonを嫌うようになっています。あなたはそのようなことをすることの正当性を知っていますか? – johni

関連する問題