Cloudflare R2 czy AWS S3? Brak opłat za transfer ma koszt wydajności

|Autor: Redakcja QUASA|5 min czytania| 1
Cloudflare R2 czy AWS S3? Brak opłat za transfer ma koszt wydajności

Cloudflare R2 jest mocnym wyborem dla plików często pobieranych bezpośrednio przez internet: nie nalicza opłaty za transfer wychodzący. AWS S3 warto rozważyć, gdy ważniejsze są tempo zapisu dużych obiektów i powiązanie magazynu z usługami AWS. W europejskim teście S3 zapisywał duży plik szybciej, choć wynik jednej trasy nie opisuje wydajności każdej aplikacji.

Dla polskiego zespołu rozstrzygające są proporcje między zajętością magazynu, liczbą żądań i wielkością pobrań. Archiwum, publiczna biblioteka plików i usługa przyjmująca wiele zapisów mogą więc prowadzić do różnych decyzji, nawet jeśli każda korzysta z magazynu obiektowego.

Co trafia na rachunek

Cennik Cloudflare R2 podaje dla klasy Standard 0,015 USD za GB miesięcznie, 4,50 USD za milion operacji klasy A oraz 0,36 USD za milion operacji klasy B. Miesięczna pula bez opłaty obejmuje 10 GB przechowywania, milion operacji A i 10 milionów operacji B; bezpośredni transfer z R2 do internetu jest bezpłatny. Zapisy należą do klasy A, a odczyty do klasy B. Po przekroczeniu puli intensywny ruch nadal tworzy rachunek za operacje, a Cloudflare zaokrągla płatne użycie do jednostek rozliczeniowych.

Dla S3 Standard we Frankfurcie zestawienie stawek CloudManiak podaje 0,0245 USD za GB miesięcznie, 0,0054 USD za tysiąc żądań PUT, 0,00043 USD za tysiąc GET oraz 0,09 USD za GB transferu do internetu w pierwszym płatnym progu. Przy publicznych plikach transfer może zatem kosztować więcej niż ich przechowywanie. Przy wielu małych obiektach większe znaczenie zyskuje liczba żądań.

Trasa dostarczenia pliku zmienia porównanie. Cennik Amazon S3 wyłącza z opłaty pierwsze 100 GB miesięcznego transferu do internetu, liczone łącznie dla usług i regionów AWS objętych tą zasadą. Transfer z S3 do usług AWS w tym samym regionie oraz z S3 do CloudFront także nie podlega tej opłacie S3. CloudFront ma jednak własny cennik, więc kosztu bezpośrednich pobrań z S3 nie należy przypisywać dystrybucji przez CDN.

Trzy warunkowe rachunki miesięczne

Poniższe kalkulacje zakładają R2 Standard oraz S3 Standard we Frankfurcie, bezpośrednie pobrania bez CDN i stałą średnią zajętość magazynu przez miesiąc. Zakładają też dostępność całej bezpłatnej puli R2 oraz niewykorzystane przez inne usługi 100 GB transferu AWS. Kwoty są w USD, bez podatku VAT, rabatów i kosztów usług towarzyszących; nie są prognozą faktury w złotych.

  • Archiwum z rzadkim pobieraniem: warunkowo 1000 GB danych, 50 GB pobrań, 10 tys. zapisów i 10 tys. odczytów. R2 kosztuje 14,85 USD za 990 płatnych GB; operacje mieszczą się w bezpłatnej puli. S3 kosztuje około 24,56 USD: 24,50 USD za miejsce oraz około 0,06 USD za żądania. Pobrania mieszczą się w przyjętej bezpłatnej puli AWS. To rachunek dla klas Standard; przy archiwum, które może dłużej czekać na odtworzenie, trzeba osobno uwzględnić opłaty i warunki klas archiwalnych.
  • Publiczne pliki: warunkowo 500 GB danych, 2000 GB pobrań, 100 tys. zapisów i 5 mln odczytów. R2 kosztuje 7,35 USD za 490 płatnych GB, ponieważ żądania mieszczą się w bezpłatnej puli. S3 kosztuje około 185,94 USD: 12,25 USD za miejsce, 2,69 USD za żądania i 171 USD za 1900 GB płatnego transferu. Przy tych proporcjach o różnicy decyduje przede wszystkim bezpośrednie dostarczanie plików odbiorcom.
  • Intensywny zapis: warunkowo 500 GB danych, 50 GB pobrań, 20 mln zapisów i milion odczytów. R2 kosztuje 92,85 USD: 7,35 USD za miejsce i 85,50 USD za zapisy po odjęciu bezpłatnego miliona operacji A. S3 kosztuje około 120,68 USD: 12,25 USD za miejsce, 108 USD za PUT i 0,43 USD za GET. R2 pozostaje tańszy w tym przykładzie, lecz większość jego rachunku tworzą już zapisy, a różnica kosztów jest mniejsza niż przy publicznych plikach.

Wielkość pliku zmienia te proporcje. Milion pobrań drobnych obrazów może wygenerować znacznie mniej transferu niż milion pobrań filmów, mimo podobnej liczby żądań GET. Częste zastępowanie małych obiektów działa odwrotnie: podnosi liczbę operacji zapisu, choć zajętość magazynu może pozostać niemal stała. Dlatego kosztu operacji nie da się wywnioskować wyłącznie z liczby przechowywanych GB.

Europejski pomiar: zapis i pobieranie dużego pliku

Test AIMultiple, wykonany z Europy do europejskich punktów końcowych dostawców, zmierzył przy wysyłaniu pliku 1 GB przepustowość 77,92 MB/s dla AWS S3 i 25,61 MB/s dla Cloudflare R2. Przy pobieraniu pliku tej samej wielkości wyniki wyniosły odpowiednio 94,3 i 63,63 MB/s. To istotna różnica dla aplikacji, która przesyła duże obiekty przez API, nawet gdy miesięczny rachunek za transfer przemawia za R2.

Przepustowość pojedynczej ścieżki nie jest jednak obietnicą czasu zapisu z Polski ani miarą wszystkich równoległych żądań. Na wynik aplikacji wpływają także położenie klienta, wielkość obiektów, współbieżność i sposób przesyłania danych. Szczególnie przy intensywnym zapisie oszczędność na przechowywaniu lub transferze trzeba zestawić z czasem, przez jaki aplikacja czeka na zakończenie wysyłania.

Publiczny odczyt daje inny wynik

W pomiarze Cloudflare R2 osiągnął krótszy czas odpowiedzi dla publicznie pobieranego pliku o wielkości 1 MB. Plik pobierano bez użycia pamięci podręcznej z ponad 400 węzłów pomiarowych, a położenie danych R2 ustalono na potrzeby porównania z S3. Był to test odczytu w określonej konfiguracji, podczas gdy europejski pomiar dużego pliku obejmował transfer przez API. Oba wyniki dotyczą innych czynności i pomagają ocenić inne rodzaje obciążenia.

Dla biblioteki publicznych plików sposób dostarczenia treści jest więc równie ważny jak wybór magazynu. Pobranie bezpośrednio z S3 obciąża inną pozycję rachunku niż pobranie przez CloudFront; podobnie obecność pamięci podręcznej zmienia liczbę odczytów docierających do magazynu. W kalkulacji publicznych plików przyjęto dostęp bez CDN, aby koszt transferu i żądań był widoczny bez dodatkowego cennika dystrybucji.

API i istniejąca infrastruktura

R2 udostępnia interfejs zgodny z S3, co pozwala używać wielu bibliotek i narzędzi znanych zespołom pracującym z Amazon S3. Zgodny interfejs nie oznacza jednak identycznych uprawnień, zdarzeń ani funkcji administracyjnych. Dla aplikacji zależnej od konkretnych wywołań API lub automatyzacji wokół AWS zakres potrzebnych zmian może ważyć więcej niż różnica ceny za GB.

S3 ma szczególną wartość wtedy, gdy aplikacja zapisująca obiekty i usługi, które je później przetwarzają, działają już w tym samym regionie AWS. R2 jest atrakcyjne, gdy głównym zadaniem magazynu jest udostępnianie plików odbiorcom przez internet, a ilość pobieranych danych rośnie szybciej niż zajętość magazynu. Dla archiwum kluczowy staje się czas odzyskania danych i koszt właściwej klasy przechowywania; dla intensywnego zapisu — połączenie ceny operacji z przepustowością ścieżki wysyłania.

Przeczytaj także:

Udostępnij:

Zapisz się do naszego newslettera

Otrzymuj najnowsze wiadomości o Web3, AI i kryptowalutach prosto na swoją skrzynkę.

0