Lambda 関数、Amazon 、VPCサーバーレスアーキテクチャを使用して静的アウトバウンド IP アドレスを生成する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lambda 関数、Amazon 、VPCサーバーレスアーキテクチャを使用して静的アウトバウンド IP アドレスを生成する

作成者: Thomas Scott (AWS)

概要

このパターンでは、サーバーレスアーキテクチャを使用して Amazon Web Services (AWS) クラウドで静的アウトバウンド IP アドレスを生成する方法について説明します。Secure File Transfer Protocol () を使用してファイルを別のビジネスエンティティに送信する場合、組織はこのアプローチからメリットを得ることができますSFTP。つまり、事業体は、ファイアウォールを通過するファイルを許可する IP アドレスにアクセスできる必要があります。 

このパターンのアプローチは、Elastic IP アドレスをアウトバウンド IP アドレスとして使用する AWS Lambda 関数を作成するのに役立ちます。このパターンのステップに従うことで、静的 IP アドレスを持つインターネットゲートウェイを介してアウトバウンドトラフィックをルーティングする Lambda 関数と仮想プライベートクラウド (VPC) を作成できます。静的 IP アドレスを使用するには、Lambda 関数を VPCとそのサブネットにアタッチします。 

前提条件と制限

前提条件

  • アクティブ AWS アカウント。 

  • AWS Lambda 関数を作成およびデプロイし、 とそのVPCサブネットを作成するための Identity and Access Management (IAM) アクセス許可。詳細については、AWSLambda ドキュメントの「実行ロールとユーザーアクセス許可」を参照してください。

  • このパターンのアプローチを実装するために Infrastructure as Code (IaC) を使用する場合は、AWSCloud9 などの統合開発環境 (IDE) が必要です。詳細については、AWSCloud9 ドキュメントの「Cloud9 とは」を参照してください。 AWS Cloud9

アーキテクチャ

このパターンのサーバーレスアーキテクチャを次の図に示します。

AWS クラウド VPC architecture with two availability zones, public and private subnets, and Lambda function.

この図表は、次のワークフローを示しています:

  1. アウトバウンドトラフィックは NAT gateway 1Public subnet 1 から離れます。

  2. アウトバウンドトラフィックは NAT gateway 2Public subnet 2 から離れます。

  3. Lambda 関数は Private subnet 1 または Private subnet 2 で実行できます。

  4. Private subnet 1 および は、パブリックサブネットのNATゲートウェイにトラフィックをPrivate subnet 2ルーティングします。

  5. NAT ゲートウェイは、パブリックサブネットからインターネットゲートウェイにアウトバウンドトラフィックを送信します。

  6. アウトバウンドデータは、インターネットゲートウェイから外部サーバーに転送されます。

テクノロジースタック

  • Lambda

  • Amazon Virtual Private Cloud (Amazon VPC)

 

自動化とスケール

異なるアベイラビリティーゾーンにある 2 つのパブリックサブネットと 2 つのプライベートサブネットを使用することで、高可用性 (HA) を確保できます。1 つのアベイラビリティーゾーンが使用できなくなった場合でも、パターンのソリューションは引き続き機能します。

ツール

  • AWS Lambda – AWS Lambda は、サーバーのプロビジョニングや管理を行わずにコードの実行をサポートするコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。課金は実際に消費したコンピューティング時間に対してのみ発生します。コードが実行されていない場合、料金は発生しません。

  • Amazon VPC – Amazon Virtual Private Cloud (Amazon VPC) は、 AWS クラウドの論理的に隔離されたセクションをプロビジョニングし、定義した仮想ネットワークでAWSリソースを起動できるようにします。仮想ネットワークは、お客様自身のデータセンターで運用されていた従来のネットワークによく似ていますが、AWS のスケーラブルなインフラストラクチャを使用できるというメリットがあります。

エピック

タスク説明必要なスキル
新しい VPC を作成します。

AWS マネジメントコンソールにサインインし、Amazon VPCコンソールを開き、 をIPv4CIDR範囲Lambda VPC10.0.0.0/25とする VPC という名前の を作成します。

の作成の詳細についてはVPC、Amazon ドキュメントの「Amazon の開始方法VPC」を参照してください。 VPC 

AWS 管理者
タスク説明必要なスキル
最初のパブリックサブネットを作成します。
  1. Amazon VPCコンソールで、サブネットを選択し、サブネットの作成を選択します。 

  2. 名前タグ に「public-one」を入力します。

  3. [VPC] で、[Lambda VPC] を選択します。

  4. アベイラビリティーゾーンを選択して記録します。 

  5. IPv4 CIDR ブロック10.0.0.0/28「」と入力し、「サブネットの作成」を選択します。

AWS 管理者
2 番目のパブリックサブネットを作成します。
  1. Amazon VPCコンソールで、サブネットを選択し、サブネットの作成を選択します。 

  2. 名前タグ に「public-two」を入力します。

  3. [VPC] で、[Lambda VPC] を選択します。

  4. 重要

    アベイラビリティーゾーンを選択して記録します。: public-oneサブネットを含むアベイラビリティーゾーンを使用することはできません。 

  5. IPv4 CIDR ブロック10.0.0.16/28「」と入力し、「サブネットの作成」を選択します。

AWS 管理者
タスク説明必要なスキル
最初のプライベートサブネットを作成します。
  1. Amazon VPCコンソールで、サブネットを選択し、サブネットの作成を選択します。 

  2. 名前タグ に「private-one」を入力します。

  3. [VPC] で、[Lambda VPC] を選択します。

  4. 前に作成した public-one サブネットを含むアベイラビリティーゾーンを選択します。 

  5. IPv4 CIDR ブロック10.0.0.32/28「」と入力し、「サブネットの作成」を選択します。

AWS 管理者
2 番目のプライベートサブネットを作成する
  1. Amazon VPCコンソールで、サブネットを選択し、サブネットの作成を選択します。 

  2. 名前タグ に「private-two」を入力します。

  3. [VPC] で、[Lambda VPC] を選択します。

  4. 前に作成した public-two サブネットを含む同じアベイラビリティーゾーンを選択します。 

  5. IPv4 CIDR ブロックには、「サブネットの作成10.0.0.64/28」と入力し、「サブネットの作成」を選択します。

AWS 管理者
タスク説明必要なスキル
最初の Elastic IP アドレスを作成します。
  1. Amazon VPCコンソールで、Elastic IPs を選択し、新しいアドレスの割り当てを選択します。

  2. [割り当て] を選択し、新しく作成した Elastic IP アドレスの [割り当て ID] を記録します。

注記

この Elastic IP アドレスは、最初のNATゲートウェイに使用されます。 

AWS 管理者
2 番目の Elastic IP アドレスを作成します。
  1. Amazon VPCコンソールで、Elastic IPs を選択し、新しいアドレスの割り当てを選択します。

  2. [割り当て] を選択し、この 2 番目の Elastic IP アドレスの [割り当て ID] を記録します。

注記

この Elastic IP アドレスは、2 番目のNATゲートウェイに使用されます。

AWS 管理者
タスク説明必要なスキル
インターネットゲートウェイを作成します。
  1. Amazon VPCコンソールで、インターネットゲートウェイを選択し、インターネットゲートウェイの作成を選択します。

  2. 名前として Lambda internet gateway を入力し、[インターネットゲートウェイの作成] を選択します。インターネットゲートウェイ ID を記録しておくことを確認してください。 

AWS 管理者
インターネットゲートウェイを にアタッチしますVPC。

先ほど作成したインターネットゲートウェイを選択し、アクション、 にアタッチを選択しますVPC

AWS 管理者
タスク説明必要なスキル
最初のNATゲートウェイを作成します。
  1. Amazon VPCコンソールで、NATゲートウェイを選択し、NATゲートウェイの作成を選択します。

  2. NAT ゲートウェイ名nat-oneとして を入力します。

  3. NAT ゲートウェイを作成するサブネットpublic-oneとして を選択します。

  4. [接続タイプ] には [パブリック] を選択します。

  5. Elastic IP 割り当て ID で、前に作成した最初の Elastic IP アドレスを選択し、NATゲートウェイに関連付けます。

  6. NAT ゲートウェイの作成を選択します。

AWS 管理者
2 番目のNATゲートウェイを作成します。
  1. Amazon VPCコンソールで、NATゲートウェイを選択し、NATゲートウェイの作成を選択します。

  2. NAT ゲートウェイ名nat-twoとして を入力します。

  3. NAT ゲートウェイを作成するサブネットpublic-twoとして を選択します。

  4. [接続タイプ] には [パブリック] を選択します。

  5. Elastic IP 割り当て ID で、前に作成した 2 番目の Elastic IP アドレスを選択し、NATゲートウェイに関連付けます。

  6. NAT ゲートウェイの作成 を選択します。

AWS 管理者
タスク説明必要なスキル
パブリックワンサブネット用のルートテーブルを作成します。
  1. Amazon VPCコンソールで、ルートテーブルを選択し、ルートテーブルの作成を選択します。

  2. ルートテーブル名として「public-one-subnet」を入力し、[ルートテーブルの作成] を選択します。

  3. [public-one-subnet ルートテーブル]、[ルートの編集]、[ルートの追加] の順に選択します。

  4. [送信先] ボックスで 0.0.0.0 を指定し、[ターゲット] リストでインターネットゲートウェイ ID を選択します。

  5. 「サブネットの関連付け」タブで「サブネットの関連付けの編集」を選択し、 10.0.0.0/28CIDR範囲public-oneサブネットを選択し、「関連付けの保存」を選択します。

  6. [Save Changes] を選択します。

AWS 管理者
パブリック2 サブネットのルートテーブルを作成します。
  1. Amazon VPCコンソールで、ルートテーブルを選択し、ルートテーブルの作成を選択します。

  2. ルートテーブル名として「public-two-subnet」を入力し、[ルートテーブルの作成] を選択します。

  3. [public-two-subnet ルートテーブル]、[ルートの編集]、[ルートの追加] の順に選択します。

  4. [送信先] ボックスで 0.0.0.0 を指定し、[ターゲット] リストでインターネットゲートウェイ ID を選択します。

  5. 「サブネットの関連付け」タブで、「サブネットの関連付けの編集」を選択し、 10.0.0.16/28CIDR範囲のpublic-twoサブネットを選択し、「関連付けの保存」を選択します。

  6. [Save Changes] を選択します。

AWS 管理者
プライベートワンサブネットのルートテーブルを作成します。
  1. Amazon VPCコンソールで、ルートテーブルを選択し、ルートテーブルの作成を選択します。

  2. ルートテーブル名として「private-one-subnet」を入力し、[ルートテーブルの作成] を選択します。

  3. [private-one-subnet ルートテーブル]、[ルートの編集]、[ルートの追加] の順に選択します。

  4. 送信先ボックス0.0.0.0で を指定し、ターゲットリストのpublic-oneサブネットでNATゲートウェイを選択します。

  5. 「サブネットの関連付け」タブで、「サブネットの関連付けの編集」を選択し、 10.0.0.32/28CIDR範囲のprivate-oneサブネットを選択し、「関連付けの保存」を選択します。

  6. [Save Changes] を選択します。

AWS 管理者
プライベートツーサブネットのルートテーブルを作成します。
  1. Amazon VPCコンソールで、ルートテーブルを選択し、ルートテーブルの作成を選択します。

  2. ルートテーブル名として「private-two-subnet」を入力し、[ルートテーブルの作成] を選択します。

  3. [private-two-subnet ルートテーブル]、[ルートの編集]、[ルートの追加] の順に選択します。

  4. 送信先ボックス0.0.0.0で を指定し、ターゲットリストのpublic-twoサブネットでNATゲートウェイを選択します。

  5. サブネットの関連付け タブで、サブネットの関連付けの編集 を選択し、 10.0.0.64/28CIDR範囲のprivate-twoサブネットを選択し、関連付けの保存 を選択します。

  6. [Save Changes] を選択します。

AWS 管理者
タスク説明必要なスキル
新しい Lambda 関数の作成
  1. AWS Lambda コンソールを開き、関数の作成を選択します。

  2. [基本情報]の [関数名] に Lambda test を入力し、[ランタイム] で目的の言語を選択します。

  3. [Create function (関数の作成)] を選択します。

AWS 管理者
Lambda 関数を に追加しますVPC。
  1. AWS Lambda コンソールで、関数を選択し、前に作成した関数を選択します。 

  2. 設定 を選択し、 を選択しますVPC

  3. [編集] を選択し、Lambda VPC と両方のプライベートサブネットを選択します。

  4. テスト用に [既定のセキュリティグループ] を選択し、[保存] を選択します。

AWS 管理者
外部サービスを呼び出すコードを記述します。
  1. 選択したプログラミング言語で、IP アドレスを返す外部サービスを呼び出すコードを記述します。

  2. 返された IP アドレスが Elastic IP アドレスのいずれかと一致することを確認します。

AWS 管理者

関連リソース