Nowość – Obsługa HTTP/3 dla Amazon CloudFront

30 sierpnia 2022

Amazon CloudFront to usługa sieci dostarczania zawartości (CDN).

Sieć połączonych serwerów, która jest geograficznie bliżej użytkowników i znacznie szybciej dociera do ich komputerów. Amazon CloudFront zmniejsza opóźnienia, dostarczając dane przez ponad 410 globalnie rozproszonych punktów obecności (PoP) z automatycznym mapowaniem sieci i inteligentnym routingiem.

Dzięki Amazon CloudFront zawartość, żądania i odpowiedzi API lub aplikacje mogą być dostarczane za pośrednictwem protokołu Hypertext Transfer Protocol (HTTP) w wersji 1.1 i 2.0 za pośrednictwem najnowszej wersji Transport Layer Security (TLS) w celu szyfrowania i zabezpieczania komunikacji między klientem użytkownika a CloudFront.

Dzisiaj twórcy dodają obsługę protokołu HTTP w wersji 3.0 (HTTP/3) dla Amazon CloudFront. HTTP/3 wykorzystuje QUIC, oparty na protokole datagramów użytkownika, zwielokrotniony strumieniowo i bezpieczny protokół transportowy, który łączy i ulepsza możliwości istniejącego protokołu sterowania transmisją (TCP), TLS i HTTP/2. Teraz możesz włączyć HTTP/3 dla połączeń użytkowników końcowych we wszystkich nowych i istniejących dystrybucjach CloudFront we wszystkich lokalizacjach brzegowych na całym świecie. Co ważne, nie ma żadnych dodatkowych opłat za korzystanie z tej funkcji.

Czym jest HTTP/3?

HTTP/3 używa QUIC i pokonuje wiele ograniczeń TCP gwarantując te korzyści HTTP. W przypadku korzystania z istniejącego protokołu HTTP/2 przez TCP i TLS, protokół TCP wymaga uzgadniania, aby ustanowić sesję między klientem a serwerem, a protokół TLS również potrzebuje własnego uzgadniania, aby zagwarantować bezpieczeństwo sesji. Każdy handshake musi wykonać pełną podróż w obie strony między klientem a serwerem, co może zająć dużo czasu, gdy klient i serwer znajdują się daleko od siebie pod względem sieciowym. Jednak QUIC potrzebuje tylko jednego handshake, aby ustanowić bezpieczną sesję.

cloudfront-quic

Ponadto protokół TCP jest rozumiany i sterowany przez niezliczoną liczbę różnych elementów pośredniczących, takich jak zapory sieciowe i urządzenia do translacji adresów sieciowych (NAT). QUIC wykorzystuje UDP jako podstawę, aby umożliwić przepływ pakietów w sieci korporacyjnej lub publicznej i jest w pełni zaszyfrowany (włącznie z metadanymi), co uniemożliwia middleboxom sprawdzanie lub manipulowanie jego szczegółowymi danymi.

Strumienie HTTP/3 są multipleksowane niezależnie, aby wyeliminować blokowanie nagłówka między żądaniami i odpowiedziami. Jest to możliwe, ponieważ multipleksowanie strumienia występuje w warstwie transportowej, w przeciwieństwie do warstwy aplikacji, takiej jak HTTP/2 przez TCP. Dzięki temu aplikacje internetowe działają szybciej, zwłaszcza w wolnych sieciach i połączeniach wrażliwych na opóźnienia.

Zalety HTTP/3 w CloudFront

Klienci AWS zawsze chcą zapewniać użytkownikom końcowym szybsze, bardziej responsywne i bezpieczne środowisko internetowe. Protokół HTTP/3 zapewnia korzyści wszystkim klientom CloudFront w postaci krótszych czasów połączenia, multipleksowania strumieniowego, migracji połączeń po stronie klienta i mniejszej liczby obustronnych podróży w procesie uzgadniania w celu zmniejszenia liczby błędów.

Połączenia QUIC przez UDP obsługują ponowne wykorzystanie połączeń z identyfikatorem połączenia niezależnym od krotek adresu IP/portu, dzięki czemu użytkownicy nie doświadczają przerw ani wpływu. Klienci działający w krajach o słabej łączności sieciowej zobaczą lepszą wydajność swoich aplikacji.

Obsługa protokołu HTTP/3 CloudFront zapewnia zwiększone bezpieczeństwo oparte na s2n-quic, implementacji protokołu QUIC typu open source Rust dodanej do zestawu bibliotek open source szyfrowania AWS, z silnym naciskiem na efektywność i wydajność.

Jeśli aktywujesz HTTP/3 w dystrybucjach CloudFront, użytkownicy mogą wysyłać żądania przeglądarki HTTP/3 do lokalizacji brzegowych CloudFront. Poza lokalizacją brzegową występują wysoce niezawodne sieci w chmurze AWS, a CloudFront będzie nadal używać protokołu HTTP/1.1 do pobierania źródeł. Nie musisz więc dokonywać żadnych zmian po stronie serwera, aby udostępnić zawartość przez HTTP/3.

cloudfront-quic

W przypadku niektórych typów aplikacji, na przykład wymagających biblioteki klienta HTTP do wykonywania żądań HTTP, użytkownicy mogą potrzebować zaktualizować swoją bibliotekę klienta HTTP do wersji obsługującej protokół HTTP/3. Ale jeśli z jakiegoś powodu operacyjnego klienci nie mogą nawiązać połączenia QUIC, mogą wrócić do innego obsługiwanego protokołu, takiego jak HTTP/1.1 lub HTTP/2.

W jaki sposób aktywować HTTP/3?

Aby włączyć połączenie HTTP/3, możesz edytować konfigurację dystrybucji za pomocą konsoli CloudFront. Możesz wybrać HTTP/3 w obsługiwanych wersjach HTTP w istniejącej dystrybucji lub utworzyć nową dystrybucję bez żadnych zmian w źródle. Możesz użyć interfejsu API UpdateDistribution lub skorzystać z szablonu CloudFormation.cloudfront-quic

Po wdrożeniu rozmieszczenia możesz połączyć się z przeglądarką obsługującą HTTP/3, taką jak najnowsza wersja Google Chrome, Mozilla Firefox i Microsoft Edge, po ręcznym włączeniu Apple Safari. Aby dowiedzieć się więcej o obsłudze przeglądarek internetowych, zobacz stronę Czy mogę użyć – Obsługa HTTP/3.

Z narzędzi dla programistów internetowych w przeglądarce możesz zobaczyć żądania HTTP/3 wysyłane, gdy strona jest ładowana z CloudFront. Poniższy obrazek prezentuje przykład przeglądarki Mozilla Firefox.

HTTP/3

Możesz także dodać obsługę HTTP/3 do Curl i testować z wiersza poleceń:

$ 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==

Historie użytkowników

Kilku klientów AWS, w tym Snap, Zillow, AC3/Movember, Audible, Skyscanner, aktywowało już HTTP/3 w swoich dystrybucjach CloudFront. Oto niektóre z ich historii:

Snap Inc to firma zajmująca się mediami społecznościowymi, która oferuje Snapchat, aplikację umożliwiającą szybki i przyjemny sposób łączenia się z bliskimi przyjaciółmi ze społecznością na całym świecie. W AWS, Snap obsługuje teraz ponad 306 milionów użytkowników Snapchata wysyłających codziennie ponad 5,4 miliarda Snapów przy o 20% mniejszym opóźnieniu niż jego poprzednia architektura.

Mahmoud Ragab, menedżer ds. inżynierii oprogramowania w Snapchat, powiedział:
„Snapchat pomaga milionom ludzi na całym świecie dzielić się chwilami z przyjaciółmi. W Snapchacie staramy się być najszybszym sposobem komunikacji. Właśnie dlatego nawiązaliśmy współpracę z Amazon Cloudfront w celu szybkiego, wydajnego dostarczania treści z małymi opóźnieniami, wykorzystując QUIC w Cloudfront.
Snapchat oferuje znaczne korzyści podczas wysyłania i odbierania treści, zwłaszcza w sieciach ze stratnymi sygnałami i przerywaną łącznością. Ulepszenia oferowane przez QUIC, takie jak konfiguracja połączenia zerowego czasu podróży w obie strony (0-RTT) i ulepszona kontrola przeciążenia, umożliwiają średnio 10% skrócenie czasu do pierwszego bajtu (TTFB) przy jednoczesnym obniżeniu ogólnego wskaźnika błędów. Mniejsze opóźnienia i błędy w sieci sprawiają, że Snapchat jest lepszy dla ludzi na całym świecie.
Dzięki wczesnemu dostępowi do QUIC byliśmy w stanie eksperymentować i szybko iterować oraz ulepszać implementację po stronie serwera oraz optymalizować integrację między klientem a serwerem. Obie firmy będą nadal współpracować, ponieważ QUIC będzie coraz szerzej dostępny”.

Zillow to firma zajmująca się technologiami nieruchomości, która oferuje swoim klientom doświadczenie na żądanie w zakresie sprzedaży, kupna, wynajmu i finansowania z przejrzystością i niemal bezproblemową, kompleksową obsługą.

Od 2015 roku firma Zillow zwiększyła dostępność swojego systemu obrazowania, korzystając z usług Amazon S3 i Amazon CloudFront.

Craig Link, główny architekt chmury w Zillow, powiedział:
„Jesteśmy podekscytowani uruchomieniem obsługi HTTP/3 dla Amazon CloudFront. Włączenie HTTP/3 w CloudFront było płynnym przejściem, a nasz test syntetyczny i użycie ad-hoc działały bez problemu”.

AC3 jest australijskim partnerem AWS Managed Services i wspiera klienta AWS, Movember Foundation, jedną z wiodących organizacji charytatywnych na rzecz zdrowia mężczyzn. Prowadzenie międzynarodowej organizacji charytatywnej, która zajmuje się darowiznami, danymi, wydarzeniami i zlokalizowanymi witrynami internetowymi w 21 krajach, może stanowić pewne wyzwanie techniczne. Zrodzony w chmurze, Movember wykorzystał technologię AWS do przyjęcia nowych modeli pracy, zapewnienia elastycznej platformy IT i szybszego wprowadzania innowacji.

Greg Cockburn, szef działu Hyperscale Cloud w AC3 powiedział:
„AC3 jest podekscytowany współpracą ze swoim wieloletnim partnerem Movember, który umożliwia aktywację HTTP3 w swoich dystrybucjach CloudFront obsługujących interfejsy internetowe i interfejsy API, i jest zachęcony przez poprawę wydajności widoczną w początkowych wynikach”.

Dostępne już dziś

Obsługa protokołu HTTP/3 dla Amazon CloudFront jest teraz dostępna we wszystkich ponad 410 lokalizacjach brzegowych CloudFront na całym świecie bez dodatkowych opłat za korzystanie z tej funkcji. Aby dowiedzieć się więcej, zapoznaj się z często zadawanymi pytaniami i przewodnikiem dla programistów Amazon CloudFront. Autorzy proszą o przesyłanie opinii do AWS re:Post dla Amazon CloudFront lub za pośrednictwem zwykłych kontaktów pomocy technicznej AWS.

źródło: AWS

Case Studies
Referencje

Hostersi zrealizowali usługi konsultingowe z zakresu doboru odpowiedniej bazy danych w Amazon Web Services oraz pomyślnie przeprowadzili migrację bazy danych MySQL do Amazon Aurora. 

Tomasz Ślązok
CTO Landingi
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.