0

CloudFrontでホストされている静的なウェブサイトを持っています。CloudFrontの静的なウェブサイトと同じドメインのEC2 API

EC2インスタンスへのAPI呼び出しで同じドメイン名を使用する方法はありますか、別のポートを使用する方法はありますか?

例: example.com:3000はEC2インスタンスにリダイレクトし、example.com(別名example.com:443またはexample.com:80)はCloudFrontにリダイレクトする必要があります。

答えて

2

ポート番号に基づいてターゲットホストを識別することはできません。 DNS名だけで、ブラウザの接続先が決まります。

ただし、ポート番号ではなく、必要なものを達成することはできます。

URL内のパスに応じて、CloudFrontディストリビューションを静的なWebサイトやAPIに転送するように設定できます。これを実現するために

、あなたはCloudFrontの分布の複数の起源と複数の動作を設定します:

  • /api/* - > EC2の起源
  • 他のすべて - >静的Webサイトオリジン

あなたへブラウザでは、1つのWebサイトとして表示されます。 https://www.example.com/page1.htmlをリクエストすると、CloudFrontはリクエストを静的webisteに転送します。 https://www.example.com/api/MyRestMethodをリクエストすると、CloudFrontはリクエストをEC2に転送します。

これにより、APIと静的Webサイトの間でHTTPSに同じACM証明書を使用することもできます。

+0

リクエストに2ホップ、最初にCloudFrontホスト、次にEC2ホストがあるため、APIのパフォーマンスが低下しますか?だから私はパフォーマンスのために、それはそれが単なるEC2ホストへのシングルホップなので、API(例えば 'api.example.com')のためのサブドメインを使用する方が良いと思いますか? – Avery235

+0

それは異なります。これは2ホップになりますが、最初のホップは近くのCloudFrontエッジロケーションにインターネットで接続し、次にAWS専用ネットワーク上で2番目のホップになります。間違いなくベンチマークの価値があります:) –

+0

それでも、最も近いエッジ位置まで約100msかかるでしょう。同じドメイン( 'api.example.com'のようなサブドメインではなく)を使用することは実用上の利点がないと考えてもそれほど価値はないと思われますか? – Avery235

関連する問題