CloudFront는 동적 데이터를 어떻게 처리하는가?

mj·2026년 2월 10일
post-thumbnail

“아니 CDN은 캐싱인데, 동적인 걸 어떻게 처리해?”

CloudFront는 정적데이터 동적데이터 모두 처리 가능하다.
CDN이면 '캐시서버'아닌가? 그럼 정적 파일만 해당하는거 아닌가?

로그인 API, 게시글 조회 같은 동적 요청은 캐싱도 못 하는데
그럼 CloudFront를 왜 쓰는 거지?

결론부터 말하자면,

CloudFront는 동적 데이터를 캐싱하지 않는다.
대신 동적 데이터를 가장 빠른 네트워크 경로로 전달해준다.


CloudFront의 두 가지 역할

CloudFront는 단순한 “캐시 서버”가 아니다.
실제로는 두 가지 모드로 동작한다.

구분역할
Cache 모드정적 파일을 Edge Location에 저장
Proxy 모드동적 요청을 가장 빠른 경로로 Origin까지 전달

👉 동적 콘텐츠는 Cache 모드가 아니라 Proxy 모드로 처리된다.


동적 요청은 실제로 어떻게 흐를까?

예를 들어, 사용자가 아래 API를 호출한다고 해보자.

https://www.example.com/api/posts

CloudFront 없이 요청할 경우

한국 → 미국 리전 ALB → EC2 → DB → 다시 한국
  • 요청과 응답이 공용 인터넷을 왕복
  • 물리적 거리 + 네트워크 혼잡
  • 지연 시간(latency) 증가, 변동성 큼

CloudFront를 사용하는 경우 (동적 요청)

사용자
 → 가장 가까운 CloudFront Edge
 → AWS 전용 글로벌 네트워크
 → Origin(ALB)

사용자와 먼 서버 사이를 이미 뚫려있는 전용 고속도로를 이용해 빠르게 접근할 수 있다.

📌 이 방식을 Dynamic Content Acceleration이라고 부른다.


Dynamic Content Acceleration 의 핵심 원리

1️⃣ TCP/IP 핸드셰이크 최적화 : Edge에서 연결을 끝낸다 (Edge Connection Termination)

가장 큰 차이는 TCP/IP 핸드셰이크가 어디서 일어나느냐다.

  • CloudFront 미사용

    사용자 ↔ 멀리 있는 원본 서버
    TCP 핸드셰이크 + TLS 설정을 먼 거리에서 수행

    사용자가 전 세계 어디에 있든 멀리 떨어진 원본 서버(서울, 미국 등)와 직접 "연결할 준비가 됐니?"(TCP Handshake)라며 서너 번의 신호를 주고받아야 합니다. 거리가 멀수록 이 과정에서 시간이 많이 걸립니다.

  • CloudFront 사용

    사용자 ↔ 가장 가까운 Edge Location
    물리적 거리가 짧아 초기 연결이 매우 빠름

    사용자는 가장 가까운 곳에 있는 CloudFront 엣지 로케이션과 즉시 연결을 맺습니다. 엣지까지의 거리는 매우 가깝기 때문에 초기 연결 속도가 압도적으로 빠릅니다. 그 이후 엣지와 원본 서버 사이는 이미 연결이 뚫려 있는 '고속도로'를 이용하게 됩니다.

👉 즉, 사용자는 가까운 엣지 로케이션과 핸드셰이크(연결)하면된다.
엣지 로케이션은 멀리떨어진 원본서버와 미리 연결되어있는 상태다. (이미 뚫려있는 ‘고속도로’)


2️⃣ Edge와 Origin은 이미 연결돼 있다 (Keep-Alive & Connection Pooling)

이 부분이 성능 향상의 숨은 주역이다.

  • 일반적인 서버 통신

    요청마다 연결 생성 → 종료 반복

    일반적으로 서버와 통신할 때는 데이터를 주고받을 때마다 연결을 맺고 끊는 과정이 반복됩니다.

  • CloudFront

    Edge ↔ Origin(ALB/EC2) 사이에
    이미 수많은 연결을 미리 유지

    하지만 CloudFront 엣지 서버는 원본 서버(ALB/EC2)와 이미 수많은 연결을 미리 맺어놓고 유지(Connection Pooling)하고 있습니다.
    사용자의 요청이 들어오면, 새로 연결을 만드는 시간을 낭비하지 않고 이미 열려 있는 통로에 데이터를 바로 실어 보냅니다. 이로 인해 왕복 시간(RTT)이 획기적으로 줄어듭니다.

👉 새로 연결을 만드는 시간이 0이다. 이미 뚫려 있는 통로에 요청을 바로 실어 보낸다


3️⃣ AWS 전용 글로벌 네트워크를 탄다

데이터가 이동하는 “길” 자체가 다르다.

  • 공용 인터넷

    • ISP 여러 곳을 경유
    • 병목, 우회, 품질 변동 발생

    수많은 통신사(ISP)를 거치며 복잡하게 얽혀 있습니다. 트래픽이 몰리는 구간에서 병목 현상이 발생하거나 경로가 길어질 수 있습니다.

  • AWS 전용 네트워크

    • CloudFront Edge → Origin까지
      AWS 글로벌 광섬유 백본망

    CloudFront 엣지에서 원본 서버까지는 전 세계에 깔린 AWS 전용 광섬유 네트워크를 통해 이동합니다. 전용 고속도로를 타는 것과 같아서 지연 시간(Latency)이 일정하고, 공용 인터넷보다 훨씬 안전하고 빠릅니다.

👉 전용 고속도로를 타는 것과 같다.


4️⃣ 실시간 네트워크 경로 최적화

CloudFront는 네트워크 상태를 실시간으로 감시한다.

  • 특정 구간이 느려지면
  • 자동으로 더 빠른 우회 경로 선택

개발자가 직접 제어하기 어려운 영역을
AWS가 인프라 레벨에서 대신 처리해준다.


그래서 동적 데이터에 왜 유리할까?

동적 데이터는 반드시 Origin까지 가야 한다.
캐싱이 안 되기 때문이다.

그럼에도 CloudFront가 효과적인 이유는 명확하다.

✔ 연결 시간 자체를 줄인다

  • TCP 3-way handshake
  • TLS handshake
    → 이 왕복 과정을 Edge에서 끝내버린다

✔ 이미 워밍업된 연결을 재사용한다

  • TCP Slow Start 문제 없음
  • 처음부터 높은 전송 속도 유지

✔ 결과

“동적 데이터라도
체감 응답 속도는 확실히 빨라진다.”

profile
일단 하자.

0개의 댓글