Lambda 関数が他のリソースにアクセスするためには

B!

 

VPCを指定しないでLambdaを作成した場合

VPCを指定しないで作成した場合、 AWSが管理するインターネット接続が可能なネットワーク環境(AWS管理VPCのような環境)で実行されます。

この状態では以下の仕様となります。

  • Lambda から インターネットの特定のエンドポイントにHTTPアクセスが可能
  • インターネットからLmabda へのHTTPアクセスができない

この状態の時、Lambda へのHTTPリクエストを投げるためには、APIGateway などのサービスを利用する必要があります。

 

 

APIGatewayって何?

WEBフレームワークを触ったことある方にイメージしやすいように一言で表すと、Route みたいな感じです。

APIGatewayの役割:

  • 認証とアクセス制御: API Gatewayには、IAM、Cognito、カスタムオーソライザーによる認証機能があり、ユーザーアクセスを管理できます。
  • 統合オプション: Lambdaや他のAWSサービスとシームレスに統合するための機能があり、APIリクエストを処理できます。例えば、Lambda関数と統合することでサーバーレスアーキテクチャを構築できます。
  • キャッシング: API Gatewayはキャッシュ機能を備えており、キャッシュを有効にするとAPIの応答速度が向上し、バックエンドの負荷が軽減します。
  • カスタムドメインの設定: APIに独自のドメインを割り当てることが可能で、ユーザーエクスペリエンスを向上させるための設定も簡単に行えます。

VPCを指定してLambdaを作成した場合

アプリケーションが稼働しているVPCの中だけで使用するLambdaを作成するといったユースケースも存在するかと思います。

VPCのプライベートサブネットのリソースにアクセス

プライベートサブネット内のリソースは、インターネットに直接アクセスできないように設計されていますが、インターネットへのアクセスが必要なケースもあります。そのため、プライベートサブネット内から外部のリソースやサービスにアクセスする方法として以下の方法が使われます。

  • NAT Gateway: プライベートサブネット内のリソースがインターネットに出ていく際に利用するためのゲートウェイです。NAT Gatewayをパブリックサブネットに配置し、プライベートサブネットからNAT Gateway経由でインターネットにアクセスできます。
  • VPCエンドポイント: 特定のAWSサービス(S3やDynamoDBなど)にアクセスする場合に使われるVPCエンドポイントを設定できます。インターネットに出る必要なく、プライベートネットワーク内でAWSサービスに直接接続できます。

Lambdaからインターネットにアクセス

AWS LambdaがVPCのプライベートサブネット内にデプロイされている場合、直接インターネットにアクセスすることはできません。しかし、Lambdaが外部サービスやAPIにアクセスする必要があるケースも多くあります。その場合、次の方法を用います。

  • NAT Gateway: Lambda関数がプライベートサブネット内にある場合、NAT Gatewayを経由することでインターネットにアクセスできます。LambdaのセキュリティグループやサブネットルートテーブルにNAT Gatewayを設定して、外部との通信を可能にします。
  • VPCエンドポイント: Lambda関数がAWSの内部サービス(S3やDynamoDBなど)と連携する場合、VPCエンドポイントを利用することで、インターネットを経由せずにサービスにアクセスできます。
最新の記事はこちらから