CloudFront를 이용하여 글로벌 배포 준비하기

tre2man
roubit.me
Published in
3 min readJul 8, 2022

안녕하세요. 어제도 글을 썼는데 오늘도 또 쓰네요. 🙀 오늘은 루빗의 글로벌 진출을 위한 CloudFront 배포에 대해서 정리해 볼까 합니다.

현재 저희 서버의 상황은 다음 포스트에 잘 나와 있습니다.

여기서 문제가 되는 부분은, 현재 시스템은 모두 한국 리전에 있다는 것 입니다. 만약 물리적 거리가 먼 해외에서 루빗을 이용하려면, 어쩔 수 없이 지연 시간이 발생하게 될 것입니다. 그래서 CloudFront를 이용해서 지연 시간을 줄여 볼려고 합니다.

먼저 CloudFront에 대해서 간단히 정리를 하면, 전 세계에 엣지 로케이션을 둔CDN 서비스입니다. CDN 서비스는 중간에 캐시 서버를 두어 실제 서버에 부하가 가지 않게 하는 서비스입니다.

예를 들어 영화를 스트리밍해서 볼려고 하는데, 클라이언트는 한국에 있고 서버가 미국에 있다면 물리적으로 거리가 멀리 있기 때문에 높은 지연 시간으로 영화를 감상할 수 밖에 없을 것입니다. 그래서 미국과 한국 어딘가에 캐시 서버를 두어 (예 : 일본에 캐시 서버가 있다면) 일본 서버에서 영화를 볼 수 있게 하는 것입니다.

여하튼, API서버와 S3 스토리지에 있는 파일들을 출시할 리전에 CloudFront를 이용하여 배포해 보았습니다.

배포 전과 배포 후의 지연 시간은 다음과 같습니다. (API 서버 기준)

간단한 GET(/) 명령을 받는 rest 서버를 제작 후 벤치마크를 돌려 보았습니다. 한국 리전에서 미국 리전(오레곤)에 있는 서버에 ping을 보내니, CloudFront를 적용하지 않은 경우에는 핑이 200ms 안쪽으로 튀는데, CloudFront 적용 후에는 10ms대로 줄어든 것을 알 수 있습니다.

이러한 방식으로 배포를 한 뒤에도 지연 시간이 만족스럽지 않은 결과가 나온다면, 리버스 프록시 같은 방법을 쓰는 것도 좋은 방법일 것 이라고 생각합니다.

--

--