0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LambdaとVPCの落とし穴に嵌ってた

Posted at

LambdaとVPCの落とし穴

落とし穴と書いていますが、熟達したAWSマスターの方なら当たり前のことかもしれません。

今回は嵌ったのはVPC内でLambdaを使うことによるAWSの課金額の増加です
image.png

この画像ではEC2その他が$92となっています。この期間は全くサービスに触れておらず、外部からのユーザーのアクセスもほぼない状態でこの請求額。クレカの明細を見て、飛び起きて調べました...

構成

今回の高額請求が起きた構成です。
フロントにCloudFrontとS3を使用してバックエンドにLambdaを使っています。
DBはRDSを使用しています。

使用しているAWSサービスをまとめます

  • CloudFornt
  • S3
  • API Gateway
  • Lambda
  • RDS
  • RDS Proxy
  • Route53
  • VPC
  • NAT Gateway

NAT Gatewayは構成図に書いてありませんが、lambdaから外部APIを使用するために使用しています
image.png

Cost Exprolerの"EC2その他"ってなんだ?

今回の構成ではEC2は使っていません。代わりにlambdaを使っています。
最初請求の明細を見た時にEC2その他というジャンルの請求額が多かったのでLambdaのことかなと思っていましたが、どうやらそれだけではないようで、かなりのサービスがEC2その他に分類されるようです。

下記がEC2 その他に分類されるようです

  • Amazon EBS
  • EBSスナップショット
  • Elastic IPアドレス
  • データ転送
  • NATゲートウェイ
  • VPCエンドポイント

この中で使用しているのはNAT Gatewayだけ

Lambdaのログを見たりしてもわからなかったのでAmazon Qと呼ばれるチャットボットに聞いてみました

Q. 9月のEC2 その他(EC2-Other)の請求の内訳を教えて

A.
image.png

100%がNAT Gatewayという結果でした。
NATGatewayはlambdaから外部のAPIを使用するために配置していましたが
Lambdaにはほぼリクエストが来ていないのになぜ課金だけが起きたのか

なぜNAT Gatewayで課金されていたのか

なぜLambdaにリクエストがほぼ来ていないのにNAT Gatewayが使用されて、課金されたのか。

それはLambdaのログ、SSM、メタデータなどなど、たくさんのデータをLambdaとAWSサービス間でやり取りしたいたからでした。

NAT Gatewayは外部ネットワークと一方的な通信をする際に使用されるものだと認識しています。
VPC外のAWSサービスまでもNATgatewayを介して接続するとは知りませんでした。
AWSサービスとの通信は例外でNATGatewayを介さずに通信できるものだと思っていました。

対処法

LambdaをVPC外に置けば他とのサービス間でNatGatewayを介さないので問題ないですね。
VPC外にLambdaを配置するとVPC内のRDSと接続できませんが、RDS Proxyを介して接続すれば今まで通り使用できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?