Search
🕌

웹 워크로드의 CloudFront 전환 (정유진, AWS)

Amazon CloudFront 소개

Amazon CloudFront Global Edge Network

전세계에 분포되어 있는 POP은…
총 13개의 중간 캐시 계층 역할을 하는 Region별 Edge Cache
최종사용자로부터 가까운 위치에서 컨텐츠를 제공할 수 있는 450개 이상의 Edge location으로 구성
국내의 경우 현재 총 6개의 Edge Location과 1개의 Region별 Edge Cache가 구성되어있음.
Cloudfront Edge Location은..
전 세계를 포괄하는 수만 개의 네트워크에 연결되어 완벽한 중복성을 지원
다중화 되어 있는 100Gbit 병렬 네트워크 백본을 통해 AWS 리전들과 연결됨.

웹 워크로드 Amazon CloudFront 전환 시 이점

UDP 공격은 기본적으로 차단됨.
TCP 기반의 SYN Flooding 공격은 별도의 SYN Proxy를 통해 모두 차단
허용할 TLS 버전 제어 가능
기본적으로 SNI 지원
만약 SNI를 지원하지 않는 Client환경도 있을 수 있기 때문에 전용 IP 기반으로 HTTPS 통신을 하도록 설정할 수 있음.
Signed URL/Signed Cookie 기능을 통해서 승인된 최종사용자만 특정 객체 접근할 수 있도록 설정 가능
국가별, 특정 대역, Referer 제어 가능
보안적인 이유로 오리진은 CloudFront외의 접근 차단하는 것이 일반적
오리진이 ALB라면 ALB의 Security Group에 C/F의 Managed Prefix List를 등록하여 손쉽게 접근제어 구현
Layer1
TCP/TLS 연결을 담당
AWS WAF와의 연동 및 일부 hot 컨텐츠에 대한 캐시 역할
Layer3
중간 캐시 계층인 Region별 Edge cache 혹은 오리진과의 연결을 관리하며 컨텐츠 압축 담당
Edge Location - Regional Edge Cache - Origin
Edge Location에서 캐시 미스가 발생한 경우 해당 요청은 바로 오리진으로 전달되지 않고 중간 캐시 계층인 Region별 Edge Cache로 전달이 되어 한번 더 캐시 여부를 확인하여 캐시 히트율을 더욱 개선할 수 있다.
캐시 히트율 개선을 위해 오리지널 실드 사용 고려
예> 일본에서 접속시 일본 리전내 Edge Location에서 찾고 없으면 일본 Edge Cache에서 찾고 여기서도 없으면 Origin에 질의하지 않고 서울 Edge Cache에서 찾고 여기서도 없으면 Origin에 질의
캐시할 수 없는 동적 컨텐츠의 경우는….
C/F는 Edge Location에서 connection termination 지원
User - Edge Location구간만 Public
Origin이 AWS 리전에 존재하는 경우…
Edge Location - Orign 구간은 AWS Global Network를 이용하여 성능 가속화
Origina이 AWS 리전 외부에 존재하는 경우…
CloudFront Origin Shield를 오리진에 가장 가깝게 위치시켜 AWS Global Network가속을 최대한으로 활용하는 방법도 고려
C/F는 Origin과 연결된 connection 재사용함으로써 connection이 맺어질 때마다 발생하는 TCP/TLS connection 오버헤드를 최소화할 수 있다.
connection이 처음 맺어지고 TCP 혼잡 제어 알고리즘에 의해 수행되는 slow start 과정을 매번 거칠 필요가 없다.
User - Edge Location 사이 구간을 Last-mile 네트워크라고 부른다.
Edge Location에서 TCP/TLS connection termination을 수행
C/F의 450개 이상의 Edge Location은 최종 사용자에 가깝게 위치하여 TCP/TLS 연결 협상 시에 이동해야 하는 거리를 단축시켜줌.
BBR 알고리즘을 통해 패킷 유실이 빈번하게 발생하는 퍼블릭 인터넷 환경에서 더욱 개선된 성능 제
Gzip,Brotli 압축을 통해 전송해야 하는 사이즈 자체를 줄여서 더욱 빠르게 최종사용자에게 컨텐츠를 제공할 수 있다.

사용 사례

Strict-Transport-Security 헤더
웹 사이트에 강제적으로 HTTPS 프로토콜만 사용하도록…
Server-Timing header
요청을 수신할 때에 컨텐츠가 캐시에서 제공되었는지에 대한 여부, 연결, 응답 프로세스의 각 단계의 경과 시간 등의 세부 성능 정보를 제공 → C/F 동작과 성능 모니터링 가능
CloudFront 함수 vs. Lambda@Edge
실행 위치 차이..
메모리, 패키지 크기를 볼때 CloudFront 함수는 웹 요청의 경량 처리에 이상적으로 보임.
네트워크 액세스 또는 더 긴 실행 시간이 필요하다면 Lambda@Edge 활용

전환 과정