type
status
date
slug
summary
tags
category
icon
password

理論


AWS LambdaとVPC内のインターネットアクセスに関する基本知識

AWS Lambda関数がVPC内で外部リソースにアクセスするには、特定のネットワーク構成が必要です。この構成に関連する重要な知識を以下にまとめます。

1. VPCとサブネットの基本

  • VPC(Virtual Private Cloud): AWS上で仮想的に隔離されたネットワーク環境を提供。
  • サブネット:
    • パブリックサブネット: インターネットゲートウェイを介して直接インターネットにアクセス可能。
    • プライベートサブネット: NATゲートウェイを経由してインターネットにアクセス。

2. AWS LambdaとVPC

  • Lambda関数がVPC内にデプロイされる場合、特定のサブネットとセキュリティグループに関連付けられる。
  • プライベートサブネットに配置されたLambda関数が外部インターネットリソースにアクセスするには、出口トラフィック用の設定が必要。

3. NATゲートウェイの役割

  • NATゲートウェイ: プライベートサブネット内のリソースがインターネットにアクセスするためのサービス。
  • Elastic IP: NATゲートウェイに割り当てる固定パブリックIPアドレス。
  • ルートテーブル設定:
    • プライベートサブネットのルートテーブルでデフォルトルート(0.0.0.0/0)をNATゲートウェイに向ける必要がある。

4. Elastic IPの利用

  • Elastic IPは固定のパブリックIPアドレスを提供し、外部リソースに対して一貫したIPアドレスを使用する場合に便利。
  • 許可リスト(allow list)を使用する外部サービスとの連携に適している。

5. セキュリティの考慮

  • Lambda関数が外部リソースにアクセスする際、セキュリティグループを正しく設定して通信を制限。
  • NATゲートウェイを使用することで、インバウンドトラフィックを防ぎつつ、アウトバウンドトラフィックのみを許可。

6. IPv6の特別なケース

  • Egress-onlyインターネットゲートウェイは、IPv6トラフィックの出口専用。
  • IPv4トラフィックには使用不可。

まとめ

AWS LambdaがVPC内で外部リソースと通信するには、プライベートサブネットにNATゲートウェイを設定し、Elastic IPを使用して固定パブリックIPアドレスを提供することが必要です。これにより、外部サービスとのセキュアかつ安定した通信が可能になります。

実践


目的

  • VPC 内にある Lambda 関数にインターネットアクセスを提供する。
  • 完成構成では、プライベートサブネットに配置した Lambda 関数が NAT ゲートウェイを経由してインターネットに接続します。

構築手順

 
  1. VPC 作成
  1. サブネット作成
      • プライベートサブネット: 10.0.2.0/24
  1. インターネットゲートウェイ作成 & アタッチ
  1. NAT ゲートウェイ作成
      • パブリックサブネットに配置
      • Elastic IP 割り当て
  1. ルートテーブル設定
      • パブリック: 0.0.0.0/0 → インターネットゲートウェイ
      • プライベート: 0.0.0.0/0 → NAT ゲートウェイ

6. IAM ロールの作成

  • 必要なポリシー:
    • AWS 管理ポリシー AWSLambdaVPCAccessExecutionRole
  • ロール名:
    • 任意の名前 (例: lambda_vpc_basic_execution)

7. Lambda 関数の作成

  • VPC に配置する際に、作成した IAM ロールを設定。
  • 動作確認には、https://checkip.amazonaws.com/ を使用するコードを記述。

コードの全体像

以下のコードは、外部API(https://checkip.amazonaws.com/)にアクセスし、レスポンスを取得するLambda関数の例です。

動作確認

  • 作成した Lambda 関数をテスト実行し、インターネットに接続できることを確認。

考慮点

  • 冗長化: 本番環境では、高可用性を確保するため NAT ゲートウェイやサブネットの冗長化を検討。
  • コスト: NAT ゲートウェイや Elastic IP はコストが発生するため、利用状況に応じた設計が必要。

この記事を基に設定を進めれば、VPC Lambda のインターネットアクセスを安全に確保できます。
 

一問道場

質問 #47
ある会社が、VPCに接続されたAWS Lambda関数上で実行されるサーバーレスアプリケーションを構築しています。この会社は、新しい外部プロバイダーのサービスとアプリケーションを統合する必要があります。外部プロバイダーは、許可リストに載っているパブリックIPv4アドレスからのリクエストのみをサポートしています。
アプリケーションが新しいサービスを使用できるようにするために、会社は外部プロバイダーに対して単一のパブリックIPアドレスを提供する必要があります。
どのソリューションがアプリケーションに新しいサービスへのアクセスを提供しますか?
A.
NATゲートウェイをデプロイし、Elastic IPアドレスをNATゲートウェイに関連付け、VPCをNATゲートウェイを使用するように設定します。
B.
egress-onlyインターネットゲートウェイをデプロイし、Elastic IPアドレスをそのインターネットゲートウェイに関連付け、Lambda関数のElasticネットワークインターフェイスをeferess-onlyインターネットゲートウェイを使用するように設定します。
C.
インターネットゲートウェイをデプロイし、Elastic IPアドレスをそのインターネットゲートウェイに関連付け、Lambda関数をインターネットゲートウェイを使用するように設定します。
D.
インターネットゲートウェイをデプロイし、Elastic IPアドレスをそのインターネットゲートウェイに関連付け、パブリックVPCのルートテーブルのデフォルトルートをインターネットゲートウェイを使用するように設定します。
解説
この問題では、AWS Lambda関数がVPC内でインターネットにアクセスする方法を尋ねています。外部サービスは、許可リストに登録されたパブリックIPアドレスからのリクエストのみを受け入れるため、Lambda関数が使用するIPアドレスを提供する必要があります。
  • A. NATゲートウェイを使用する: 正解です。NATゲートウェイを使ってLambda関数がインターネットにアクセスし、Elastic IPを提供することで、外部サービスに必要な単一のIPアドレスを提供できます。
  • B. Egress-onlyインターネットゲートウェイ: 不正解。IPv6専用で、IPv4には適用できません。
  • C. インターネットゲートウェイを使用する: 不正解。Lambdaがプライベートサブネットにある場合、インターネットゲートウェイは直接使用できません。
  • D. インターネットゲートウェイとVPCルートテーブルの設定: 不正解。Lambda関数がプライベートサブネットにある場合、NATゲートウェイを使用する必要があります。
結論として、A. NATゲートウェイを使用するが正しい解答です。
 
相关文章
クラウド技術の共有 | AWS Site-to-Site
Lazy loaded image
EKSでのWordPressデプロイ:KCNA-JP試験対策 (Kubernetes実践編)
Lazy loaded image
初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)
Lazy loaded image
EFSを活用!AWS EC2でDockerを使ったWordPressサイト構築
Lazy loaded image
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
Lazy loaded image
528-AWS SAP AWS 「理論・実践・一問道場」Migration Evaluator
Lazy loaded image
048-AWS SAP AWS 「理論・実践・一問道場」RDS Proxy046-AWS SAP AWS 「理論・実践・一問道場」AWS Migration Hub
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
02-生成AIパスポート試験対策:第2章「生成AI」
2025-2-1
01-生成AIパスポート試験対策:第1章「人口知能」
2025-2-1
究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
2025-1-27
不要再傻傻的直接买NISA啦
2025-1-27
Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
2025-1-24
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
2025-1-22
公告
🎉欢迎访问我的博客🎉
- 感谢您的支持 --
本站点于2024/09/01建立
👏主要分享IT相关主题👏
系统管理:
Redhat…
容器和编排:
Kubernetes、Openshift…
云计算:
AWS、IBM…
AI入门
以及技术笔记和考证经验
定期更新,欢迎互动。
感谢访问!
快速浏览相关标签