Question

  1. CloudFront 설정 시 오리진 도메인 설정에 NLB의 DNS 주소를 넣어도 문제 없이 동작하나요?


  1.  CloudFront 오리진 도메인 설정에서 LoadBalancer의 DNS 주소 대신 Route53에 등록된 도메인 주소를 설정해도 속도나 기능에 문제가 없는지 물어봅니다


  1. 현재 서비스중인 CloudFront에 캐싱되어 있던 데이터들을 새로운 CloudFront에 빠르게 캐싱하는 방법이 있는지 궁금합니다. 

또, 원본 데이터의 양이 상당히 많은데 완전히 캐싱되기까지 얼마나 걸릴지 궁금합니다.


  1. CF 배포의 origin 필드에 LB의 DNS 대신 route 53에 등록한 LB의 CNAME을 넣어도 문제가 없을까요?


Answer

  1. CloudFront는 제공된 TCP 포트에서 응답하는 경우 구성된 모든 Origin 도메인을 수락합니다. 

HTTP/s 트래픽은 UDP를 통해 작동하지 않으므로 CloudFront에서도 작동하지 않습니다. 

또한, Origin이 HTTPS를 사용하는 경우 CloudFront Origin에 제공된 도메인 이름은 Origin이 제공하는 인증서와 일치해야 합니다. 

Origin에 대한 HTTPS 연결을 사용할 때 문제가 발생할 수 있으므로 Host 헤더를 Origin으로 전달하지 않으셔야 합니다.


  1. aws에 확인하여 문의 한 결과, 모든 도메인 이름을 사용할 수 있으며 이는 CloudFront의 속도나 기능에 영향을 미치지 않습니다. 

(즉, 레코드를 생성하고 ELB 이름을 가리킨 다음 해당 레코드를 오리진으로 구성할 수 있습니다.)


  1. 서비스 중인 기존의 CF 배포에서 새롭게 생성한 CF 배포로 캐시를 이동할 수 있는 방법은 없습니다.

→ CF는 배포가 아닌 각 객체(object)별로 캐시하며,

일반적으로 뷰어에 대한 지연 시간 측면에서 가장 가까운 CloudFront POP(엣지 로케이션)으로 캐시가 복사됩니다.

따라서 객체에 대한 첫 번째 요청 후 객체가 캐시됩니다.

결론적으로 말씀 드리자면, 원본 데이터의 모든 객체가 캐싱되기 위해서는 모든 객체가 한 번씩 요청되어야 합니다.


  1. CF 오리진 필드에 LB의 CNAME을 넣어서 AWS 엔지니어가 테스트하여 본 결과,

이상 없이 잘 작동하는 것을 확인하였습니다.

            해당 방법으로 사용하셔도 무방할 것으로 보여집니다.