Amazon Web Services 한국 블로그

Amazon CloudFront, HTTP/3 지원 시작

Amazon CloudFront는 콘텐츠 전송 네트워크(CDN) 서비스로서, 사용자와 지리적으로 더 가깝고 컴퓨터에 훨씬 빠르게 도달하는 상호 연결된 서버 네트워크입니다. Amazon CloudFront는 자동화된 네트워크 매핑 및 지능형 라우팅을 사용하여 전 세계에 분산된 410개 이상의 접속 지점(POP)을 통해 데이터를 전송함으로써 지연 시간을 줄입니다.

Amazon CloudFront를 사용하면 암호화하기 위한 최신 버전의 전송 계층 보안(TLS)의 하이퍼텍스트 전송 프로토콜(HTTP) 버전 1.1 및 2.0을 통해 콘텐츠, API 요청 및 응답 또는 애플리케이션을 전송하고 사용자 클라이언트와 CloudFront 간 통신의 보안을 유지할 수 있습니다.

오늘은 Amazon CloudFront의 HTTP 버전 3.0(HTTP/3) 지원을 추가할 예정입니다. HTTP/3는 기존 TCP(전송 제어 프로토콜), TLS 및 HTTP/2의 기능을 결합하고 개선하는 사용자 데이터그램 프로토콜 기반의 스트림 멀티플렉싱 보안 전송 프로토콜인 QUIC를 사용합니다. 이제 전 세계 모든 엣지 로케이션의 모든 신규 및 기존 CloudFront 배포에서 최종 사용자 연결에 대해 HTTP/3를 사용할 수 있으며, 이 기능 사용에 대한 추가 비용은 없습니다.

HTTP/3란 무엇인가요?
HTTP/3는 QUIC를 사용하며 TCP의 많은 한계를 극복하고 HTTP에 이러한 이점을 제공합니다. TCP 및 TLS를 통해 기존 HTTP/2를 사용하는 경우 TCP는 클라이언트와 서버 간에 세션을 설정하기 위해 핸드셰이크가 필요하며 TLS는 세션이 보호되도록 자체 핸드셰이크도 필요합니다. 각 핸드셰이크는 클라이언트와 서버 사이를 완전히 왕복해야 하며, 클라이언트와 서버가 멀리 떨어져 있을 때 네트워크 측면에서 시간이 오래 걸릴 수 있습니다. 하지만 QUIC은 보안 세션을 설정하기 위해 한 번의 핸드셰이크만 필요합니다.

또한 TCP는 방화벽 및 Network Address Translation(NAT) 디바이스와 같은 수많은 미들박스에 의해 파악되고 조작됩니다. QUIC는 기업 또는 공용 네트워크에서 패킷 흐름을 허용하는 기반으로 UDP를 사용하며 메타데이터를 포함하여 완전히 암호화되어 미들박스가 세부 정보를 검사하거나 조작할 수 없게 만듭니다.

HTTP/3 스트림은 요청과 응답 간의 헤드 오브 라인 차단을 제거하기 위해 독립적으로 다중송신됩니다. 이는 스트림 다중송신이 TCP를 통한 HTTP/2와 같은 애플리케이션 계층과 반대로 전송 계층에서 발생하기 때문에 가능합니다. 이를 통해 웹 애플리케이션은 특히 느린 네트워크와 지연 시간에 민감한 연결에서 더 빠르게 작동할 수 있습니다.

CloudFront에서 HTTP/3의 이점
고객은 항상 최종 사용자에게 더 빠르고 응답성이 뛰어나며 안전한 웹 환경을 제공하기를 원합니다. HTTP/3는 모든 CloudFront 고객에게 더 빠른 연결 시간, 스트림 다중송신, 클라이언트측 연결 마이그레이션, 핸드셰이크 프로세스의 왕복 감소 등의 이점을 제공하여 오류율을 줄입니다.

UDP를 통한 QUIC 연결은 IP 주소/포트 튜플과 독립적인 연결 ID로 연결 재사용을 지원하므로 사용자가 중단되거나 영향을 받지 않습니다. 네트워크 연결성이 낮은 국가에서 운영하는 고객은 애플리케이션의 성능이 향상됩니다.

CloudFront의 HTTP/3 지원은 효율성과 성능에 중점을 두고 AWS 암호화 오픈 소스 라이브러리 세트에 추가된 QUIC 프로토콜의 오픈 소스 Rust 구현인 s2n-quic를 기반으로 구축된 향상된 보안을 제공합니다.

CloudFront 배포에서 HTTP/3를 활성화하면 사용자가 CloudFront 엣지 로케이션에 HTTP/3 최종 사용자 요청을 보낼 수 있습니다. 엣지 로케이션 이후에도 AWS 클라우드 내의 네트워크는 매우 안정적이며 CloudFront는 오리진 가져오기에 HTTP/1.1을 계속 사용할 것입니다. 따라서 HTTP/3를 통해 콘텐츠에 액세스할 수 있도록 하기 위해 서버측을 변경할 필요가 없습니다.

HTTP 요청을 수행하기 위해 HTTP 클라이언트 라이브러리가 필요한 애플리케이션과 같이 일부 애플리케이션 유형의 경우 고객은 HTTP 클라이언트 라이브러리를 HTTP/3 지원 버전으로 업데이트해야 할 수 있습니다. 그러나 운영상의 이유로 클라이언트가 QUIC 연결을 설정할 수 없는 경우 HTTP/1.1 또는 HTTP/2와 같이 지원되는 다른 프로토콜로 폴백할 수 있습니다.

HTTP/3를 활성화하는 방법
HTTP/3 연결을 활성화하기 위해 CloudFront 콘솔을 통해 배포 구성을 편집할 수 있습니다. 기존 배포의 지원되는 HTTP 버전에서 HTTP/3를 선택하거나 오리진을 변경하지 않고 새 배포를 생성할 수 있습니다. UpdateDistribution API를 사용하거나 CloudFormation 템플릿을 사용할 수 있습니다.

배포를 배포한 후 HTTP/3를 지원하는 브라우저(예: 최신 버전의 Google Chrome, Mozilla Firefox, Microsoft Edge)와 Apple Safari를 수동으로 켠 후 연결할 수 있습니다. 웹 브라우저 지원에 대한 자세한 내용은 사용 가능 – HTTP/3 지원 페이지를 참조하세요.

브라우저의 웹 개발자 도구에서, CloudFront에서 페이지가 로드될 때 수행된 HTTP/3 요청을 볼 수 있습니다. 아래 이미지는 Mozilla Firefox의 예입니다.

Curl에 HTTP/3 지원을 추가하고 명령줄에서 테스트할 수도 있습니다.

$ curl --http3 -i https://d1e0fmnut9xxxxx.cloudfront.net/speed.html
HTTP/3 200
content-type: text/html
content-length: 9286
date: Fri, 05 Aug 2022 15:49:52 GMT
last-modified: Thu, 28 Jul 2022 00:50:38 GMT
etag: "d928997023f6479537940324aeddabb3"
x-amz-version-id: mdUmFuUfVaSHPseoVPRoOKGuUkzWeUhK
accept-ranges: bytes
server: AmazonS3
vary: Origin
x-cache: Miss from cloudfront
via: 1.1 6e4f43c5af08f740d02d21f990dfbe80.cloudfront.net (CloudFront)
x-amz-cf-pop: ICN54-C2
alt-svc: h3=":443"; ma=86400
x-amz-cf-id: 6fy8rrUrtqDMrgoc7iJ73kzzXzHz7LQDg73R0lez7_nEXa3h9uAlCQ==

고객 사례
Snap, Zillow, AC3/Movember, Audible, Skyscanner를 비롯한 몇몇 AWS 고객은 이미 CloudFront 배포에서 HTTP/3를 활성화했습니다. 그들의 의견은 다음과 같습니다.

Snap Inc는 Snapchat을 제공하는 소셜 미디어 회사입니다. 이 Snapchat 앱은 전 세계 커뮤니티의 가까운 친구들과 빠르고 재미있게 연결할 수 있는 방법을 제공합니다. AWS에서 Snap은 현재 3억 6백만 명 이상의 Snapchat 사용자가 이전 아키텍처보다 20% 적은 지연 시간으로 매일 54억 개 이상의 Snap을 전송할 수 있도록 지원합니다.

Snapchat의 소프트웨어 엔지니어링 관리자 Mahmoud Ragab는 다음과 같이 말했습니다.

“Snapchat은 전 세계 수백만 명의 사람들이 친구들과 지금 이 순간을 공유할 수 있도록 도와줍니다. Snapchat은 가장 빠른 의사소통 수단이 되기 위해 노력하고 있습니다. 이것이 바로 우리가 Cloudfront에서 QUIC을 활용하여 빠르고, 고성능이며, 지연 시간이 짧은 콘텐츠 전송을 위해 Amazon Cloudfront와 파트너십을 맺고 있는 이유입니다.

특히 손실 신호와 간헐적 연결이 있는 네트워크에서 콘텐츠를 보내고 받을 때 상당한 이점을 제공합니다. 제로 왕복 시간(0-RTT) 연결 설정 및 개선된 혼잡 제어와 같은 QUIC의 개선 사항을 통해 전반적인 오류율을 낮추면서 첫 번째 바이트까지의 시간(TTFB)을 평균 10% 단축할 수 있습니다. 네트워크 지연 시간과 오류가 줄어들어 Snapchat은 전 세계 사람들에게 더 나은 서비스를 제공합니다.

QUIC에 대한 초기 액세스를 통해 서버측 구현을 실험하고 빠르게 반복하고 개선하며 클라이언트와 서버 간의 통합을 최적화할 수 있었습니다. QUIC가 더 널리 보급됨에 따라 두 회사는 계속 협력할 것입니다.”

Zillow는 투명성과 매우 원활한 엔드 투 엔드 서비스로 고객에게 판매, 구매, 임대 및 자금 조달에 대한 온디맨드 환경을 제공하는 부동산 테크 회사입니다. Zillow는 2015년부터 Amazon S3와 Amazon CloudFront를 사용하여 이미징 시스템의 가용성을 높였습니다.

Zillow의 수석 클라우드 아키텍트인 Craig Link는 다음과 같이 말했습니다.

“Amazon CloudFront에 대한 HTTP/3 지원이 시작되어 매우 기쁩니다. CloudFront에서 HTTP/3를 활성화하는 것은 원활한 전환이었으며 합성 테스트 및 임시 사용은 문제 없이 계속 작동했습니다.”

AC3는 호주에 기반을 둔 AWS 관리형 서비스 파트너로서, 남성 건강을 위한 선도적인 자선 단체 중 하나인 Movember Foundation을 고객으로 지원하고 있습니다. 21개국에서 기부, 데이터, 이벤트 및 현지화된 웹사이트를 취급하는 국제 자선 단체를 운영하는 것은 기술적 문제를 야기할 수 있습니다. 클라우드에서 태어난 Movember는 AWS 기술을 활용하여 새로운 작업 모델을 채택하고 유연한 IT 플랫폼을 보장하며 혁신을 가속화했습니다.

AC3의 하이퍼스케일 클라우드 책임자인 Greg Cockburn은 다음과 같이 말했습니다.

“AC3는 오랜 파트너인 Movember와 협력하여 웹 및 API 프론트엔드를 지원하는 CloudFront 배포에서 HTTP3를 사용할 수 있게 되어 기쁘게 생각하며 초기 결과에서 볼 수 있는 성능 개선에 고무되어 있습니다.”

정식 출시
Amazon CloudFront에 대한 HTTP/3 지원은 이제 전 세계 400개 이상의 모든 CloudFront 엣지 로케이션에서 이 기능 사용에 대한 추가 비용 없이 사용할 수 있습니다. 자세한 내용은 Amazon CloudFront 개발자 안내서를 참조하세요. 일반 AWS Support 문의처 또는 AWS re:Post for Amazon CloudFront로 피드백을 보내주세요.

Channy