VPC内のプライベートリソースへのアクセス
AWS Lambda によるサーバーレスアプリケーション
Claudio Canales
Senior DevOps Engineer
VPCとは?
VPCはAWS上のプライベートネットワークです。
アドレス空間、ルーティング、ファイアウォール制御を提供します。
リソースの接続方法はユーザーが決定します。
わかりやすい例:ゲート付き住宅地
サブネットは区画(エリア)です。
セキュリティグループはゲートのルールです。
NATはパブリックインターネットへの共有出口です。
LambdaをVPCで実行する理由
内部サービスやデータベースなどのプライベートリソースにアクセスできます。
セキュリティグループがLambdaの接続先を制御します。
設定する内容
サブネット
を選択します。
セキュリティグループ
を選択します。
LambdaはVPC内のIPアドレスを取得し、プライベートエンドポイントに接続します。
サブネット:関数の実行場所
サブネットはネットワーク上での関数の配置場所を決定します。
プライベートサブネットにはインターネットへの直接ルートがありません。
ハンドラーが必要なリソースに到達できるサブネットを選択します。
セキュリティグループ:ファイアウォールルール
セキュリティグループはネットワークインターフェースのファイアウォールルールです。
インバウンドとアウトバウンドのトラフィックを制御します。
アウトバウンドルールがLambdaのデータベース接続可否を決めることがあります。
ENIとコールドスタート
ENI(Elastic Network Interface)はネットワークインターフェースです。
Lambdaはハンドラーを呼び出す前に、ENIを作成してアタッチする必要があります。
この追加のネットワーク設定がコールドスタートの遅延を引き起こすことがあります。
ENIの例え:ネットワークケーブルを接続する
ENIは関数のネットワーク接続です。
選択したサブネット内に作成されます。
セットアップ作業が多いほど、コールドスタートが遅くなることがあります。
アウトバウンドインターネットアクセス
プライベートサブネットは通常、パブリックインターネットに接続できません。
アウトバウンドルートがなければ、パブリックAPIへの呼び出しはタイムアウトします。
よく使われる方法はNATゲートウェイです。
NATが必要なのはどんなとき?
パブリックインターネットのエンドポイントを呼び出す場合はNATが必要です。
VPCのプライベートリソースのみを使用する場合、NATは不要なことがあります。
ネットワーク設定が誤っている場合のよくある症状
タイムアウトはルートまたはNATの設定漏れを示します。
接続拒否はセキュリティグループのルールが原因です。
推奨される手法
プライベート接続にのみVPCを使用します。
設定はシンプルに保ちます。
コールドスタートの遅延と接続エラーを監視します。
重要なポイント
VPCはLambdaにプライベートネットワークを提供します。
サブネットとセキュリティグループを設定します。
ENIはコールドスタートのオーバーヘッドを増やすことがあります。
プライベートサブネットからインターネットへのアウトバウンドアクセスにはNATが必要です。
練習しましょう!
AWS Lambda によるサーバーレスアプリケーション
Preparing Video For Download...