0

현재 CloudFront 및 Elastic Beanstalk 인 내 사이트를 API 게이트웨이로 전환하려고합니다.중단 시간과 함께 CloudFront 배포판에 이미 사용 된 도메인에 AWS API Gateway 사용자 정의 도메인을 만들려면 어떻게해야합니까?

API 게이트웨이에서 사용자 지정 도메인을 만들려고하면 해당 도메인에 대한 CloudFront 배포가 이미 있다는 메시지가 나타납니다. 하지만 배포판을 제거하면 API 게이트웨이를위한 새로운 배포판이 나올 때까지 사이트가 다운됩니다.

어쨌든 나는 이것들을 바꿀 수 있습니까?

DNS 레코드를 제어 할 수 있습니다.

+0

Beanstalk 기반 구현에서 정적 자산에만 CloudFront를 사용하고 있다고 가정합니다. –

+0

API 게이트웨이에서 사용되는 CloudFront의 글로벌 네임 스페이스로 인해 중단 시간없는 해결책은 없으므로 @jenswalter만의 직접적인 해결책이 있습니다. API 게이트웨이 끝점의 기본 이름을 기존 CloudFront 배포본의 원본으로 추가하십시오 . 그러나 ... 네이 키 도메인 (example.com) 대신 하위 도메인 (foo.example.com)을 사용하는 경우 작동 중지 시간을 최소화하기위한 해결 방법이 있습니다. 너? –

+0

@YeshodhanKulkarni - 아니요 - CloudFront를 전체 사이트 (정적 및 동적)의 캐시 레이어로 사용하고 있습니다. – AvnerSo

답변

1

:이 설명을 사용할 수있는 cloudformation 설정을위한

Processing A Contact Form Using AWS Cloudfront, API Gateway, Lambda and SES

: 당신은 단계별로 필요한 경우

는 다음 링크를 사용할 수 있습니다 마지막으로 작업 한 솔루션 :

  1. 변경 DNS는
  2. 안 & 원래 CloudFront를 배포
  3. APIG에서 '사용자 정의 도메인'을 만들기 삭제 탄성 콩 줄기에서 직접 가리 키도록 (이 또한 CloudFront에서의 DIST를 만듭니다.)
  4. 변경에 가리 키도록 DNS 새로운 CloudFront dist. (사용자 정의 도메인의 APIG 콘솔에서 URL을 얻음)

이러한 각 단계는 약간의 시간이 걸리지 만 작동 중지 시간은 없습니다.

1

API- 게이트웨이를 클라우드 프런트 원본으로 등록한 다음 API 호출에 대해 별도의 동작을 할당 할 수 있습니다.

hosting a Cloudfront site with S3 and API Gateway

+0

시도했지만 API 게이트웨이가 '금지됨'을 반환합니다. 등록되지 않은 도메인에서 액세스하려고하면이 기능이 작동하지 않습니다. 사용자 정의 도메인. 예를 들어 d2dce1w778hsrx.cloudfront.net을 볼 수 있습니다. 감사합니다 – AvnerSo

+0

누락 된 사용자 정의 도메인은 금지 된 오류를 생성하지 않습니다 (꼭 필요한 것은 아니므로). 귀하의 원산지 또는 행동이 올바르게 설정되지 않았을 것입니다. 헤더 필드를 명시 적으로 허용 했습니까? 경로 패턴 일치는 종종 오류의 원인이기도합니다. 출발점에는 경로의 일부로 스테이지가 있지만 동작에는 이미 API의 첫 번째 리소스 요소가 포함되어 있습니다. 안타깝게도 AWS 측에서는 이러한 구성을 디버깅 할 도구가 없으며 오류가 발생합니다. –

+1

이 경우'Host :'헤더를 화이트 리스팅하면이 오류가 발생할 것으로 예상됩니다. –