0

CloudFront에서 호스팅되는 정적 웹 사이트가 있습니다.동일한 도메인의 CloudFront 정적 웹 사이트 및 EC2 API

EC2 인스턴스에 API 호출에 대해 동일한 도메인 이름 만 다른 포트를 사용하는 방법이 있나요?

예 : example.com (일명 example.com:443 또는 example.com:80가) CloudFront를 리디렉션해야합니다 동안 example.com:3000는 EC2 인스턴스로 리디렉션해야합니다.

답변

2

포트 번호를 기준으로 대상 호스트를 구분할 수 없습니다. DNS 이름만으로 브라우저가 연결되는 위치를 결정합니다.

그러나 포트 번호가 아닌 원하는 것을 얻을 수 있습니다.

당신은 URL의 경로에 따라 정적 웹 사이트 또는 API에 요청을 전달하도록 CloudFront를 분포를 구성 할 수 있습니다.

이를 위해, 당신은 당신의 CloudFront를 배포 여러 기원과 여러 동작을 구성합니다 :

  • /api/* -> EC2 기원
  • 다른
  • 모든 -> 정적 웹 사이트 기원

을 위해 당신의 브라우저는 단일 웹 사이트로 나타납니다. https://www.example.com/page1.html을 요청하면 CloudFront에서 요청을 정적 webist로 전달합니다. https://www.example.com/api/MyRestMethod을 요청하면 CloudFront에서 요청을 EC2로 전달합니다.

이 또한 당신이 당신의 API 및 정적 웹 사이트 사이에 HTTPS에 대해 같은 ACM 인증서를 사용할 수 있습니다.

+0

요청이 CloudFront 호스트와 EC2 호스트 사이에 2 홉 (hop)이 있으므로 API 성능이 저하됩니까? 그래서 성능을 위해 API (예 :'api.example.com')에 하위 도메인을 사용하는 것이 더 좋으므로 EC2 호스트에 대한 단일 홉일뿐입니다. – Avery235

+0

다릅니다. 그것은 2 홉이 될 것이지만, 첫 번째 홉은 가까운 CloudFront 에지 위치에 열린 인터넷이고, AWS 전용 네트워크의 두 번째 홉일 것입니다. 벤치마킹할만한 가치가 있습니다. –

+0

가장 가까운 에지 위치까지 약 100ms 가량 소요됩니다. 'api.example.com'과 같은 하위 도메인 대신에 동일한 도메인을 사용하는 것이 실용적인 이점이 없다는 것을 고려하면 가치가없는 것 같습니까? – Avery235