VPCにパブリックサブネットとPvtサブネットがあります。 PvtサブネットのEC2で実行されているサービスがいくつかあり、外部/モバイルリソースからアクセスする必要があります。これを行うにはどうすればよいですか?VPCLinkとNLBはそれを行う方法、または他の方法で、パブリックサブネット(??)にアクセスポイントを作成します。 Lambdaが答えのようです(現在AWSのほとんどすべてについて)-PvtSubnetのリソースに対してそのアクセスがどのように機能するかさえわかりません。
また、同じPvtサブネットが(AWSの外部の)外部リソースにアクセスできます-API Gatewayを使用してこれを行うにはどうすればよいですか?
API-Gateway(およびLambda)がVPCとサブネットに対してどのように配置されているか、およびネットワークアクセス制御がどのように機能するかを完全には理解していません。Pvtサブネットに直接アクセスできるかどうか。ドキュメントはこれについていくらか沈黙しており、IAMについてのみ話します-誰かがこれを説明できる場合。 Lambdaでこれを見つけました: AWS Lambda:NAT VPCアクセスを持つラムダ関数のゲートウェイ をセットアップする方法。
documentation は、「API Gatewayを使用すると、AWSの内外でホストされている...パブリックアドレス可能なWebサービスに安全に接続できます」と述べています。 。 Pvtサブネット内の私のリソースは公開アドレス指定できません-私は推測します。
ありがとう
EC2で実行しているサービスはAPIを提供していますか? API Gatewayは、APIリクエストをプロキシすることを目的としています。これは通常、Lambda関数がHTTPリクエストを処理できるようにするためにLambdaと組み合わせて使用されます。 APIGatewayはサービスに必要ありません。 Application Load Balancer(ALB)またはElastic Load Balancer(ELB)を使用するだけです。サービスがプライベートサブネットに残っている間、パブリックサブネットに常駐できます。セキュリティグループとVPCルーティングテーブルを使用して、パブリックALB/ELBからプライベートEC2サービスへの通信を許可できます。
ベンの助けを借りて、ここに答えがあります Amazon API Gatewayプライベートエンドポイントの紹介
インバウンド: APIゲートウェイを介してプライベートサブネットでホストされているサービスにアクセスする
プライベートVPC内のエンドポイント統合 。この機能により、EC2で実行されているバックエンドを、パブリックにアクセス可能なIPアドレスやロードバランサーを必要とせずに、VPC内でプライベートにすることができます。
したがって、基本的にAPIGatewayは公開されたエンドポイントにアクセスできますプライベートサブネットでも
OutBound: APIGatewayを介してプライベートサブネットから外部でホストされているサービスにアクセスする
API Gatewayプライベートエンドポイントは、 AWS PrivateLink インターフェイスVPCエンドポイントを介して可能になります。インターフェイスエンドポイントは、VPC内で定義したサブネットにエラスティックネットワークインターフェイスを作成することで機能します。これらのネットワークインターフェースは、他のVPCで実行されているサービス、またはAPIGatewayなどのAWSサービスへのアクセスを提供します。インターフェイスエンドポイントを設定するときは、それらを通過するサービストラフィックを指定します。プライベートDNSを使用する場合、そのサービスへのすべてのトラフィックは、NATゲートウェイまたはパブリックIPアドレスなどのデフォルトルートではなく、インターフェイスエンドポイントに送信されます。