콘텐츠로 이동

CDN과 동적콘텐츠 통합 시 차이점

Notice

Cloudfront + ALB 조합 시 내용 정리

동작 원리

graph LR
    A[사용자] -->|요청| B[CloudFront 엣지 로케이션]
    B -->|캐시 확인| C{캐시 존재?}
    C -->|Yes| D[캐시된 응답 반환]
    C -->|No| E[ALB로 요청 전달]
    E -->|로드 밸런싱| F[EC2 인스턴스]
    F -->|응답| E
    E -->|응답| B
    B -->|캐싱 및 응답| A
    G[AWS WAF] -.->|보안 검사| B

비교표

항목 CloudFront + ALB 사용 시 ALB만 사용 시
성능 전 세계 엣지 로케이션을 통한 지연 시간 감소, HTTP/3 지원, 지능형 경로 라우팅 단일 리전 내 로드 밸런싱, HTTP/2까지 지원, 지연 시간이 상대적으로 길어질 수 있음
보안 엣지 로케이션에서 WAF 통합 가능, CloudFront IP 주소로부터의 트래픽만 허용하도록 보안 그룹 구성 가능 ALB에서도 WAF 통합 가능, 직접 인터넷에 노출됨
가용성 글로벌 엣지 네트워크 활용, 캐시된 콘텐츠는 오리진 장애 시에도 제공 가능 ALB는 99.99% 가용성 제공, 리전 내 여러 가용 영역에 분산 배치 가능
비용 오리진에서 CloudFront로의 데이터 전송 무료, 캐싱으로 ALB LCU 비용 절감 가능 리전 간 데이터 전송 비용 발생, 모든 요청이 ALB를 통과하므로 LCU 비용 증가
캐싱 Cache-Control 헤더를 통한 정적/동적 콘텐츠 캐싱 가능 캐싱 기능 없음, 모든 요청이 백엔드로 전달됨
트래픽 관리 글로벌 네트워크를 통한 트래픽 분산, 오리진 부하 감소 단일 리전 내 트래픽 분산, 자동 대상 가중치 기능으로 성능 저하된 대상의 트래픽 조정 가능

동적 캐싱을 사용할 때 주의해야 할 사항

  1. 캐시 유효성 관리: 동적 콘텐츠는 자주 변경되므로 적절한 Cache-Control 헤더에 ‘max-age’ 값을 짧게 설정하거나 ‘no-cache’ 지시어를 사용하여 최신 상태를 유지해야 함
  2. 개인화된 콘텐츠 주의: 인증된 사용자만 접근 가능한 보안 콘텐츠나 장바구니, 주문 정보와 같은 개인화된 콘텐츠는 HTTP Cache-Control 헤더에 ‘private’ 또는 ‘no-store’ 지시어를 사용하여 공유 캐시에 저장되지 않도록 해야 함