AWS Lambda からプライベートプロキシに到達できない: VPC の経路を確認する
最初の VPC 接続にはプロキシリスナーのアドレスとポートを使い、セキュリティグループの方向と DNS の見え方を正しく設定します。
Requests をフォワードプロキシ向けに設定すると、Lambda はまずそのリスナーに接続します。443 の HTTPS サイトは、3128 で待ち受けるプロキシを最初のホップのポート 443 に変えるものではありません。
Lambda code → configured VPC path → proxy listener → destinationEC2 上のプライベートプロキシでは、関数を想定した VPC サブネットとセキュリティグループに接続します。Lambda はその接続のネットワークインターフェイスを管理します。ルーティングとアクセス制御が許せば、別のサブネットでも動作します。
| 制御 | 同一 VPC 内で直接ルーティングする構成における最初のホップの要件 |
|---|---|
| 関数のセキュリティグループ | プロキシリスナーへの外向き TCP |
| プロキシのセキュリティグループ | 想定した関数の送信元またはセキュリティグループからそのポートへの内向き TCP |
| プロキシプロセス | 到達可能なインターフェイスでクライアントアクセスを許可したリスナー |
関数グループ側の内向きルールだけでは、この外向きのクライアント接続を許可できません。経路の確認にはルートテーブルとサブネットのネットワーク ACL を含めます。
Route 53 のプライベートなプロキシ名では、ホストゾーンの VPC 関連付けと DNS 設定を確認します。enableDnsHostnames と enableDnsSupport も対象です。ノート PC での名前解決の成功は Lambda の DNS の見え方を証明しません。失敗した名前がプロキシかウェブサイトかを記録します。ウェブサイトを数値 IP に変えてもプロキシ名の修正にはなりません。
このホップが通ったら、プロキシ自身の先の経路が必要です。Lambda をパブリックサブネットに接続してもパブリック IP は割り当てられず、直接のインターネットアクセスが自動で得られるわけではありません。2 つの接続それぞれについて外向き通信を別に決めます。