VPC Lambda(node.js v16)のIPアドレスを固定する方法とIPアドレス確認方法
VPC LambdaのIPアドレス固定化する方法です。IPアクセス制限をかけている外部サービスと連携する場合、VPC LambdaのIPアドレスを固定化する必要があります。
方法はすごく簡単です。
- VPC構成はパブリックサブネット1つ以上、プライベートサブネット1つ以上とする
- Lambdaをプライベートサブネット上に配置する
- パブリックサブネットにNATゲートウェイを配置する(接続タイプ:パブリックとし、ENIをアタッチする)
- プライベートサブネットのルートテーブルにルール追加(送信先:0.0.0.0/0、ターゲット:NATゲートウェイ)
以上となります。
Lambda(node.js v16)
上記設定をして、本当にipアドレスがENIのパブリックIPになっているかを確認します。具体的な設定方法は参考サイトがわかりやすいです。
NATゲートウェイのパブリックIPを確認します。
172.32.64.185です。LambdaはVPCのプライベートサブネット上に配置されている前提としてaxiosで、https://checkip.amazonaws.com/にgetしてipアドレス確認します。
index.js
import axios from 'axios' export async function handler() { const url = 'https://checkip.amazonaws.com/'; const result = await axios(url); console.log(`Public IP is: ${result.data.trim()}`); const response = { statusCode: 200, body: 'Hello ' } return response };
実行結果は以下の通りです。
ipアドレスがNATゲートウェイのパブリックIPである172.32.64.185となっていることが確認できます。
※正しくインターネットに出れる設定にされていない場合、タイムアウトエラーとなりますのでご注意ください
参考サイト
LambdaのIPアドレスを固定化する - Qiita
はじめにLambdaとAPIサーバを組み合わせたサービスを開発する際、Lambdaのアクセス制御をしたいケースがあるかと思います。その際、IPアドレスでアクセス制御を行うことが多いと思うのですが…
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント