

# Lambda マネージドインスタンスのネットワーク
<a name="lambda-managed-instances-networking"></a>

Lambda マネージドインスタンス関数を実行する際には、関数が VPC 外のリソースにアクセスできるようにネットワーク接続を設定する必要があります。これには、Amazon S3、Amazon DynamoDB などの AWS サービスが含まれます。また、テレメトリデータを CloudWatch Logs や X-Ray に送信する際にも接続が必要になります。

## 接続オプション
<a name="lambda-managed-instances-connectivity-options"></a>

VPC 接続の設定には主に 3 つの方法があり、それぞれにコスト、セキュリティ、複雑さの面でトレードオフがあります。

## インターネットゲートウェイを持つパブリックサブネット
<a name="lambda-managed-instances-public-subnet-igw"></a>

このオプションでは、インターネットゲートウェイを介してインターネットに直接アクセスできるパブリックサブネットを使用します。IPv4 設定と IPv6 設定のいずれかを選択できます。

### IPv4 のインターネットゲートウェイ
<a name="lambda-managed-instances-ipv4-igw"></a>

**インターネットゲートウェイで IPv4 接続を設定するには**

1. IPv4 CIDR ブロックを使用して既存のパブリックサブネットを作成または使用する。

1. VPC にインターネットゲートウェイをアタッチする。

1. ルートテーブルを更新して、`0.0.0.0/0` トラフィックをインターネットゲートウェイにルーティングする。

1. リソースにパブリック IPv4 アドレスまたは Elastic IP アドレスが割り当てられていることを確認する。

1. セキュリティグループを設定して、必要なポートでアウトバウンドトラフィックを許可する。

この設定により双方向接続が可能になり、関数からのアウトバウンド接続とインターネットからのインバウンド接続の両方を実行できます。

### IPv6 のインターネットゲートウェイ
<a name="lambda-managed-instances-ipv6-igw"></a>

**インターネットゲートウェイで IPv6 接続を設定するには**

1. VPC で IPv6 を有効にする。

1. IPv6 CIDR ブロックが割り当てられた既存のパブリックサブネットを作成または使用する。

1. インターネットゲートウェイを VPC にアタッチする (同じインターネットゲートウェイで IPv4 と IPv6 の両方を処理可能)。

1. ルートテーブルを更新して、`::/0` トラフィックをインターネットゲートウェイにルーティングする。

1. アクセスする必要がある AWS サービスが、ユーザーのリージョンで IPv6 をサポートしていることを確認します。

1. セキュリティグループを設定して、必要なポートでアウトバウンドトラフィックを許可する。

この設定により、IPv6 アドレス指定を使用した双方向接続が可能になります。

### Egress-Only インターネットゲートウェイが指定された IPv6
<a name="lambda-managed-instances-ipv6-egress-only"></a>

**Egress-Only インターネットゲートウェイが指定された IPv6 接続を設定するには**

1. VPC で IPv6 を有効にする。

1. IPv6 CIDR ブロックが割り当てられた既存のパブリックサブネットを作成または使用する。

1. Egress-Only インターネットゲートウェイを VPC にアタッチする。

1. ルートテーブルを更新して、Egress-Only インターネットゲートウェイに `::/0` トラフィックをルーティングする。

1. アクセスする必要がある AWS サービスが、ユーザーのリージョンで IPv6 をサポートしていることを確認します。

1. セキュリティグループを設定して、必要なポートでアウトバウンドトラフィックを許可する。

この設定によりアウトバウンドのみの接続が可能になり、関数にアウトバウンド接続の開始を許可しながら、インターネットからのインバウンド接続を防止します。

## VPC エンドポイント
<a name="lambda-managed-instances-vpc-endpoints"></a>

VPC エンドポイントを使用することで、インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続なしで、サポートされている AWS サービスに VPC をプライベートに接続できます。VPC と AWS サービス間のトラフィックは、Amazon ネットワークを離れません。

**VPC エンドポイントを設定するには**

1. Amazon VPC コンソールを [console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)) で開きます。

1. ナビゲーションペインで、**[エンドポイント]** を選択します。

1. **[エンドポイントの作成]** を選択します。

1. **[Service category]** (サービスカテゴリ) で、**[AWS services]** (のサービス) を選択します。

1. **[サービス名]** で、使用するサービスエンドポイント (Amazon S3 の `com.amazonaws.region.s3` など) を選択します。

1. [**VPC**] で、自分の VPC を選択します。

1. **[サブネット]** には、エンドポイントネットワークインターフェイスの作成先となるサブネットを選択します。可用性を高めるには、複数のアベイラビリティーゾーンにサブネットを選択します。

1. **[Security groups]** (セキュリティグループ) で、エンドポイントネットワークインターフェイスに関連付けるセキュリティグループを選択します。セキュリティグループは、必要なポートで関数のセキュリティグループから発信されるインバウンドトラフィックを許可する必要があります。

1. **[エンドポイントの作成]** を選択します。

関数がアクセスする必要がある AWS サービスごとに、これらのステップを繰り返します。

## NAT ゲートウェイを使用するプライベートサブネット
<a name="lambda-managed-instances-private-subnet-nat"></a>

このオプションは、NAT ゲートウェイを使用して、リソースをプライベートに保ちながらプライベートサブネット内のリソースにインターネットアクセスを提供します。

**NAT ゲートウェイを使用したプライベートサブネットを設定するには**

1. CIDR ブロックを使用してパブリックサブネットを作成する (まだ作成していない場合)。

1. VPC にインターネットゲートウェイをアタッチする。

1. パブリックサブネットに NAT ゲートウェイを作成し、Elastic IP アドレスを割り当てる。

1. ルートを追加して、パブリックサブネットのルートテーブルを更新する: `0.0.0.0/0` → インターネットゲートウェイ

1. CIDR ブロックを使用してプライベートサブネットを作成または既存のものを使用する。

1. ルートを追加して、プライベートサブネットのルートテーブルを更新する: `0.0.0.0/0` → NAT ゲートウェイ

1. セキュリティグループを設定して、必要なポートでアウトバウンドトラフィックを許可する。

高可用性を実現するには、各アベイラビリティーゾーンに NAT ゲートウェイを 1 つデプロイし、ローカル NAT ゲートウェイを使用するように各アベイラビリティーゾーンにルートテーブルを設定します。これにより、クロス AZ のデータ転送料金がかかるのを防ぎ、レジリエンスが向上します。

## 接続オプションの選択
<a name="lambda-managed-instances-choosing-connectivity"></a>

接続オプションを選択する際には、次の要素を考慮してください。

**インターネットゲートウェイを使用したパブリックサブネット**
+ 最もシンプルな設定かつ最小限のコスト
+ 開発環境とテスト環境に最適
+ リソースがインターネットからインバウンド接続を受信できる (セキュリティ上の考慮事項)
+ IPv4 と IPv6 の両方をサポートしている

**VPC エンドポイント**
+ 最高のセキュリティが確保され、トラフィックが AWS ネットワーク内に維持される
+ インターネットルーティングと比較してレイテンシーが低い
+ セキュリティ要件が厳しい本番環境に最適
+ エンドポイント、アベイラビリティーゾーン、処理される GB あたりのコストが最も高い
+ 高可用性を実現するには、各アベイラビリティーゾーンにエンドポイントが必要

**NAT ゲートウェイを使用するプライベートサブネット**
+ リソースはプライベートのままで、インバウンドのインターネットアクセスがない
+ 標準のエンタープライズアーキテクチャ
+ すべての IPv4 インターネットトラフィックをサポート
+ NAT ゲートウェイの時間単位およびデータ処理料金のコストは中程度
+ IPv4 のみをサポート

## 次のステップ
<a name="lambda-managed-instances-networking-next-steps"></a>
+ 「[Lambda マネージドインスタンスのキャパシティプロバイダー](lambda-managed-instances-capacity-providers.md)」について説明する
+ 「[Lambda マネージドインスタンスのスケーリング](lambda-managed-instances-scaling.md)」を理解する
+ [Java](lambda-managed-instances-java-runtime.md)、[Node.js](lambda-managed-instances-nodejs-runtime.md)、[Python](lambda-managed-instances-python-runtime.md) のランタイム固有のガイドを確認する
+ 「[Lambda マネージドインスタンスのセキュリティとアクセス許可](lambda-managed-instances-security.md)」を理解する