type
status
date
slug
summary
tags
category
icon
password
理論
1. VPC内でのリソース配置と通信
- AWS Lambda と Amazon Neptune などのデータベースを連携させるには、Lambda 関数と Neptune DB クラスターが 同じ VPC 内 に配置されている必要があります。これにより、Lambda 関数がプライベート IP アドレスを使用して Neptune へアクセスできます。
2. VPC内でのLambdaのアクセス方法
- Lambda 関数は VPC 内のサブネットにホストされることで、VPC 内の他のリソース(例えば Neptune DB)と通信できます。これには、Lambda 関数がサブネット内に配置され、必要な セキュリティグループ が設定されていることが前提となります。
3. セキュリティグループとネットワーク設定
- Neptune DB クラスターや Lambda 関数にアクセスするためには、それぞれに適切な セキュリティグループ を設定する必要があります。セキュリティグループで インバウンド/アウトバウンドのルール を設定することで、特定の IP アドレスやポートに対するアクセスを許可します。
4. VPC エンドポイント
- VPC エンドポイントを使用することで、VPC 内のリソースがインターネットを介さずに他の AWS サービス(例:DynamoDB)と通信することができます。これにより、プライベートな通信経路を確保することができます。
5. サブネットの選択
- Lambda 関数を配置するサブネットは、プライベートサブネットである必要があります。これにより、Lambda 関数がインターネットにアクセスしない場合でも、VPC 内のリソース(Neptune DB)に安全にアクセスできます。
6. NAT ゲートウェイ
- Lambda 関数が プライベートサブネットにホストされている場合、外部のリソース(インターネットなど)へのアクセスが必要な場合は、NAT ゲートウェイを使用します。これにより、プライベートサブネットからインターネット経由でアクセスできるようになります。
まとめ
- Lambda 関数と Neptune DB は同じ VPC 内で配置し、適切なセキュリティグループとサブネット設定を行うことで、安全かつ効率的にデータベースにアクセスできます。
実践
略
一問道場
問題 #400
ある企業が、いくつかの AWS Lambda 関数と Amazon DynamoDB テーブルから構成されるサーバーレスアプリケーションを運用しています。企業は、新しい機能を作成し、その機能では Lambda 関数が Amazon Neptune DB クラスターにアクセスする必要があります。Neptune DB クラスターは VPC 内の 3 つのサブネットに配置されています。
どのソリューションが Lambda 関数が Neptune DB クラスターと DynamoDB テーブルにアクセスできるようにしますか?(2つ選択してください。)
A. Neptune VPC 内に 3 つのパブリックサブネットを作成し、インターネットゲートウェイを介してトラフィックをルーティングします。Lambda 関数を 3 つの新しいパブリックサブネットにホストします。
B. Neptune VPC 内に 3 つのプライベートサブネットを作成し、インターネットトラフィックを NAT ゲートウェイを介してルーティングします。Lambda 関数を 3 つの新しいプライベートサブネットにホストします。
C. Lambda 関数を VPC 外にホストします。Neptune のセキュリティグループを更新し、Lambda 関数の IP 範囲からのアクセスを許可します。
D. Lambda 関数を VPC 外にホストします。Neptune データベースの VPC エンドポイントを作成し、Lambda 関数が VPC エンドポイント経由で Neptune にアクセスできるようにします。
E. Neptune VPC 内に 3 つのプライベートサブネットを作成します。Lambda 関数を 3 つの新しい隔離されたサブネットにホストします。DynamoDB の VPC エンドポイントを作成し、DynamoDB トラフィックを VPC エンドポイントにルーティングします。
解説
この問題では、AWS Lambda 関数が Amazon Neptune DB クラスターと DynamoDB テーブルにアクセスできるようにするための最適なソリューションを選択する必要があります。以下は、選択肢ごとの解説です。
A. Neptune VPC 内に 3 つのパブリックサブネットを作成し、インターネットゲートウェイを介してトラフィックをルーティングします。Lambda 関数を 3 つの新しいパブリックサブネットにホストします。
- 不正解: パブリックサブネットを作成することでインターネットアクセスが可能になりますが、Lambda 関数をインターネットに直接公開することは推奨されません。セキュリティ上の理由で、Lambda 関数は通常プライベートサブネット内で実行され、必要なリソースには VPC エンドポイントや NAT ゲートウェイを通じてアクセスします。
B. Neptune VPC 内に 3 つのプライベートサブネットを作成し、インターネットトラフィックを NAT ゲートウェイを介してルーティングします。Lambda 関数を 3 つの新しいプライベートサブネットにホストします。
- 正解: このアプローチは、Lambda 関数を VPC 内のプライベートサブネットでホストし、必要なリソースにアクセスするために NAT ゲートウェイを使用します。これにより、Lambda 関数はインターネットにアクセスすることなく Neptune DB クラスターにアクセスできます。プライベートサブネット内で実行されるため、セキュリティが強化されます。
C. Lambda 関数を VPC 外にホストします。Neptune のセキュリティグループを更新し、Lambda 関数の IP 範囲からのアクセスを許可します。
- 不正解: Lambda 関数を VPC 外にホストすることはできません。Lambda 関数は、VPC 内のリソースにアクセスするために VPC に接続する必要があります。セキュリティグループでアクセスを制限することはできますが、Lambda 関数が VPC 外にある場合、Neptune クラスターには接続できません。
D. Lambda 関数を VPC 外にホストします。Neptune データベースの VPC エンドポイントを作成し、Lambda 関数が VPC エンドポイント経由で Neptune にアクセスできるようにします。
- 不正解: VPC エンドポイントは、VPC 内からのリソースへのアクセスを提供しますが、Lambda 関数を VPC 外にホストする場合、VPC エンドポイントを使用してもアクセスできません。Lambda 関数が VPC に接続されている必要があります。
E. Neptune VPC 内に 3 つのプライベートサブネットを作成します。Lambda 関数を 3 つの新しい隔離されたサブネットにホストします。DynamoDB の VPC エンドポイントを作成し、DynamoDB トラフィックを VPC エンドポイントにルーティングします。
- 正解: Lambda 関数を VPC 内のプライベートサブネットでホストし、DynamoDB の VPC エンドポイントを作成することで、Lambda 関数がセキュアに Neptune と DynamoDB にアクセスできます。このソリューションは、セキュリティと可用性を確保しつつ、リソースに効率的にアクセスする方法です。
結論
最適な解決策は B と E です。両者は、Lambda 関数をプライベートサブネットにホストし、セキュアなアクセスを提供するために VPC エンドポイントを使用する方法です。これにより、Lambda 関数が Neptune と DynamoDB にアクセスでき、セキュリティとスケーラビリティが確保されます。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/179d7ae8-88e2-800e-b5fc-d8f556e7e0fd
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章