AWS Lambdaから他システムにアクセスしたいが、相手側がホワイトリストやACLをかける場合、AWS LambdaのIPを固定しないといけません。ここではその設定方法をまとめてみます。
概要
完成図は以下になります。
用語
-
VPC(Virtual Private Cloud)
AWS専用の仮想ネットワーク。 -
インターネットゲートウェイ
VPCをインターネット接続できるようにする機能です。 -
ルートテーブル
サブネット内の通信がどの宛先のネットワークに対して、どのコンポーネント(IGWとかEC2とか)に転送されて欲しいかを設定します。 - Elastic IP(固定IP)
-
NATゲートウェイ
アドレス変換を行うためのコンポーネントです。
パブリックサブネットに設置し、プライベートサブネットから外部への通信ができるようにNATする時に使用します。
前提
Lambdaが作成されていること
手順
- VPC作成
- インターネットゲートウェイ作成
- public/privateサブネット作成
- ルートテーブル作成(publicとprivate)
- publicルートテーブル編集
- NATゲートウェイ作成(固定IPを割り当て)
- privateルートテーブル編集
- セキュリティーグループ作成
- Lambda CloudFormationの編集
VPCの作成
インターネットゲートウェイ作成
Console画面からインターネットゲートウェイを作成する
先ほど作ったVPCにアタッチ
public/privateサブネット作成
ルートテーブル作成(publicとprivate)
publicルートテーブル編集
対象ルートテーブルを選択し、「ルートを編集」ボタンを押して編集し、インターネットゲートウェイのルートを追加する
NATゲートウェイ作成(固定IPを割り当て)
privateルートテーブル編集
先ほど作ったNATゲートウェイをprivateルートテーブルに追加
セキュリティーグループ作成
Console画面から対象VPCのセキュリティーグループを作成する。
インバウンドルールは作成した後に追加(セキュリティグループID必要ため)
Lambda CloudFormationの編集
対象LambdaのCloudFormationにVpcConfigの属性を追加
VpcConfig: {
"SubnetIds": [
"subnet-000000000" // private subnet
],
"SecurityGroupIds": [
"sg-00000000000"
]
},