Closed5
LambdaのアウトバウンドIP固定
公式で紹介されている方法
- プライベートサブネットである必要性がよくわからん
- やりとりしたいのはAPI Gateway, DynamoDBなのでむしろめんどい
- パブリックサブネットに置きながらIP固定することは不可能なのか?
- こんなんあるね👀
裏技を試してみた
結論:確かにIP固定できる
- 懸念点は元記事でも紹介されている通り
- ENIが動的に増える仕様なので、そこにElastic IPを紐付けてしまうのは拡張性に難がある
- 一方NAT Gatewayなら同時接続が最大44万件までサポートされるらしい
https://aws.amazon.com/jp/about-aws/whats-new/2023/02/amazon-nat-gateways-capacity-concurrent-connections-unique-destination/
定石構成でパブリックサブネットにLambdaを置くのは?
結論:そんな構成にはできない
こうなので
- サブネットとルートテーブルは 1 対 1
- "パブリック" = インターネットに出ていける道があるということ
= 送信先0.0.0.0/0
のターゲットがインターネットゲートウェイ(igw)である- ルートテーブルの中に送信先
0.0.0.0/0
のターゲットは1つしか定義できない - igwにElastic IPを関連付けることはできない
- ルートテーブルの中に送信先
こうなる
- VPC内にプライベートサブネットを用意して、
0.0.0.0/0
のターゲットをNATゲートウェイにする - NATゲートウェイにElastic IPを関連付ける
- 当該プライベートサブネット内にあるLambdaから外に向けたリクエストのIPが固定される 👏
感想
- 定石構成の意味は理解したけど、IPを固定したいだけなのにNATゲートウェイを使わないといけないのは無駄な気はする
- NATゲートウェイって本来は「プライベートなネットワークの中からインターネットにアクセスしたい」という要望を叶えるためのものよね?
- プライベートなネットワークに置く必要はないけど、IP固定したいからNAT使わざるを得ないになっていると思ってる
- EC2だったらインスタンス自体にElastic IPを関連付けられるけど、Lambdaはサーバーレスだからそれが無理なんよな
- だからネットワークの道上でIPを固定しないといけないという理解
- なんかもうちょっといい方法ないのかなあ🤔
- 裏技が公式に(prod用途でも)使えるようになってほしい
追記
VPC Lambdaに関する記事
このスクラップは2024/05/10にクローズされました