Kiedy używać Amazon Cloudfront lub S3

232

Czy istnieją przypadki użycia, które lepiej nadają się do Amazon Cloudfront na s3 lub na odwrót? Próbuję zrozumieć różnicę między tymi dwoma przykładami.

Kamo
źródło
1
Jeśli udostępniasz pliki, tylko CloudFront pozwala mieć HTTPS w domenie niestandardowej. To przypieczętowało nas.
mlissner

Odpowiedzi:

373

Amazon S3 jest przeznaczony do taniego przechowywania dużych plików w jednym określonym regionie geograficznym. * Koszty przechowywania i przepustowości są dość niskie.

Amazon CloudFront to sieć dostarczania treści (CDN), która proxy i buforuje dane sieciowe w skrajnych lokalizacjach jak najbliżej użytkowników.

Gdy użytkownicy końcowi żądają obiektu używającego tej nazwy domeny, są oni automatycznie kierowani do najbliższej lokalizacji brzegowej w celu zapewnienia wysokiej wydajności dostarczania treści. ( Amazon )

Dane podawane przez CloudFront mogą, ale nie muszą pochodzić z S3. Ponieważ jest bardziej zoptymalizowany pod kątem prędkości dostawy, przepustowość kosztuje nieco więcej.

Jeśli twoja baza użytkowników jest zlokalizowana , nie zobaczysz zbyt dużej różnicy w pracy z S3 lub CloudFront (ale musisz wybrać właściwą lokalizację dla swojego segmentu S3: USA, UE, APAC). Jeśli baza użytkowników jest rozproszona globalnie, a szybkość jest ważna, CloudFront może być lepszym rozwiązaniem.

Zarówno S3 i CloudFront pozwalają aliasy domen, jednak CloudFront umożliwia wielokrotne aliasy , dzięki czemu d1.mystatics.com, d2.mystatics.comi d3.mystatics.comwszystko może punkt w tej samej lokalizacji zwiększenie zdolności do równoległego download (To było zalecane przez Google , ale z wprowadzeniem SPDY i HTTP / 2 jest mniejsze znaczenie).

CloudFront obsługuje również CORS od 2014 roku (dzięki sergiopantoja).

* Uwaga: S3 może teraz automatycznie replikować się do dodatkowych regionów od 2015 roku.

eillarra
źródło
10
Dzięki, świetna odpowiedź.
Kamo
3
Istnieje różnica w czcionkach internetowych, ponieważ CloudFront nie obsługuje w pełni CORS. Buforuje nagłówki w odpowiedzi S3, ale dla pełnej obsługi CORS niektóre nagłówki powinny się różnić w zależności od żądającego serwera (źródła). Obejdź
Cymen
11
Aby utrzymać tę aktualizację, CloudFront obsługuje teraz CORS: aws.amazon.com/about-aws/whats-new/2014/06/26/…
sergiopantoja
Pamiętaj, że Cloudfront bardzo szybko eksmituje treści. Ustawienie maksymalnego wieku na więcej niż jeden dzień nie oznacza, że ​​treść nie zostanie eksmitowana, jeśli nie zostanie dotknięta przez 61 minut. Niewielkie wykorzystanie treści specyficznych dla użytkownika, ponieważ oznacza to rzadki dostęp.
BobB
53

CloudFront i S3 Bucket to nie to samo . Mówiąc najprościej: CloudFront umożliwia przyspieszenie dostarczania treści przez Internet za pośrednictwem Content Delivery Network (CDN) w skrajnych lokalizacjach, natomiast S3 Buckets to miejsce, w którym przechowujesz swoje rzeczywiste pliki. Źródła CloudFront niekoniecznie pochodzą z S3, ale dla łatwiejszej wizualizacji integracji S3 z CloudFront: wprowadź opis zdjęcia tutaj

mel3kings
źródło
dzięki! ten diagram wyraźnie pokazuje różnicę.
Rajan Sharma
28

Inną ważną różnicą jest to, że CloudFront pozwala na dublowanie witryny na serwerze. Cloudfront następnie buforuje pliki, takie jak obrazy, mp3 lub wideo, korzystając z sieci dostarczania treści.

Dzięki temu nie trzeba duplikować zasobów, tak jak w przypadku korzystania z Amazon S3.

Jednak po wygaśnięciu pliku CloudFront pobierze go ponownie z Twojej działającej witryny (za opłatą). Dlatego front w chmurze jest najlepszy dla często używanych plików, a mniej dla plików rzadko używanych.

Jednym ze sposobów ustawienia wygaśnięcia pliku dla Apache jest .htaccess. Na przykład

<filesMatch "\\.(mp3|mp4)$">
Header set Cache-Control "max-age=648000, private"
</filesMatch>
dwenaus
źródło
20

Amazon CLOUDFRONT i S3 to dwie różne usługi świadczone przez Amazon Web Services.

Amazon S3 to usługa pamięci masowej, w której możemy przechowywać pliki statyczne, takie jak:

css, obrazy, javascripts, filmy itp.

Amazon CloudFront to oprogramowanie pośrednie, które stoi pomiędzy użytkownikiem żądającym pliku z AWS a centrum danych S3 w określonym regionie, CloudFront służy do przyspieszenia dystrybucji twojej statycznej i dynamicznej zawartości internetowej z S3 do użytkownika.

Możesz to lepiej zrozumieć na przykładzie: -

Na przykład Twój S3 znajduje się w regionie AWS US East (N. Virginia), w którym znajduje się centrum danych do przechowywania plików.

Jeśli użytkownik z Indii spróbuje uzyskać dostęp do pliku z serwera AWS w Wirginii, użytkownik będzie musiał przejść do tej konkretnej lokalizacji z prośbą, a to zajmie dużo czasu.

CloudFront działa jako pośrednik między użytkownikiem a AWS S3.


Najczęściej używane pliki można buforować w CloudFront, a to, co robi, to replikuje te pliki w skrajnych lokalizacjach (Aby dostarczyć zawartość użytkownikom końcowym z mniejszym opóźnieniem, Amazon CloudFront używa globalnej sieci skrajnych lokalizacji do dostarczania treści).

Jeśli treść znajduje się już w położeniu brzegowym o najniższym opóźnieniu, CloudFront dostarcza ją natychmiast. Jeśli treść nie znajduje się obecnie w tej krawędzi, CloudFront pobiera ją z segmentu Amazon S3 i udostępnia użytkownikowi tak szybko, jak to możliwe.

Każde żądanie otrzymuje nowy DNS z CloudFront do S3, więc spowodowałoby to mniejszy ruch, a także więcej równoległego przetwarzania żądań.

Poniżej znajduje się lista bieżących lokalizacji krawędzi według stanu na lipiec 2016 r .: -

Stany Zjednoczone

  • Ashburn, VA (3)
  • Atlanta, GA
  • Chicago, IL
  • Dallas / Fort Worth, Teksas (2)
  • Hayward, Kalifornia
  • Jacksonville, Floryda
  • Los Angeles, Kalifornia (2)
  • Miami, Floryda
  • Nowy Jork, NY (3)
  • Newark, NJ
  • Palo Alto, Kalifornia
  • San Jose, Kalifornia
  • Seattle, stan Waszyngton
  • South Bend, IN
  • St. Louis, MO

Europa

  • Amsterdam, Holandia (2)

  • Dublin, Irlandia

  • Frankfurt, Niemcy (3)

  • Londyn, Anglia (3)

  • Madryt, Hiszpania

  • Marsylia, Francja

  • Mediolan, Włochy

  • Paryż, Francja (2)

  • Sztokholm, Szwecja

  • Warszawa, Polska

Azja

  • Chennai, India

  • Hongkong (2)

  • Mumbai w Indiach

  • Manila, Filipiny

  • Nowe Delhi Indie

  • Osaka, Japonia

  • Seul, Korea (3)

  • Singapur (2)

  • Tajpej, Tajwan

  • Tokio, Japonia (2)

Australia

  • Melbourne, Australia

  • Sydney w Australii

Ameryka Południowa

  • São Paulo, Brazylia

  • Rio de Janeiro, Brazylia

Z tego można wywnioskować, że jeśli użytkownicy są ograniczeni, pochodzą z tego samego regionu, w którym hostowany jest S3, nie musisz wybierać CloudFront, a jeśli liczba użytkowników wzrośnie na poziomie globalnym, zdecydowanie powinieneś użyć CloudFront dla lepszego opóźnienia i kontroli ruchu.

Patrick R.
źródło
1
to najlepsza odpowiedź
João Otero
14

Innym przykładem użycia CloudFront nad S3 jest to, że możesz użyć certyfikatu SSL do niestandardowej domeny w CloudFront, podczas gdy nie możesz w S3. Całkiem dobry powód, imho!

rgubby
źródło
2
A dzięki nowemu Menedżerowi certyfikatów jest to nawet proste!
phatmann
7

Amazon S3 to prosta usługa przechowywania, w której można wykorzystać dużą ilość informacji, np. Filmy, obrazy, pliki PDF itp.

CloudFront to sieć dostarczania treści, która jest bliższa użytkownikowi końcowemu i służy do udostępniania informacji na Amazon S3 w jak najkrótszym czasie.

Przykładem użycia jest Video on Demand.

  1. Przechowujesz swoje filmy w jednym miejscu. S3 przechowuje wszystkie wcześniej nagrane filmy w różnych formatach.
  2. Masz globalną skrzynkę użytkowników
  3. CloudFront służy do buforowania wideo do skrajnych lokalizacji. Można to wykorzystać do dostarczenia treści do użytkownika końcowego. Lokalizacja jest wybierana automatycznie na podstawie najbliższej fizycznej lokalizacji krawędzi. Obecnie istnieje około 51 lokalizacji na obrzeżach.

Niektóre zalety korzystania z CloudFront we właściwym przypadku użycia:

  1. Lepsze opóźnienie - lepsze wrażenia użytkownika końcowego.
  2. Możliwe obniżone koszty przesyłania danych. Ponieważ dane nie są za każdym razem przesyłane z tego samego segmentu S3 w określonym regionie AWS.

Inne możliwe przypadki użycia:

  1. Przekaz na żywo
  2. Hazard
  3. Przyspieszenie witryny
Gurmeet_BlazeClan
źródło
4

Brakowało tutaj jednego aspektu:

Amazon Cloudfront oferuje również niższe ceny niż Amazon S3 przy wyższych poziomach użytkowania.

  • Cloudfront CDN służy do dystrybucji treści na wielu serwerach rozproszonych geograficznie (CSS, JS)

  • Podczas gdy s3 jest bardziej zasobem na użytkownika, mniej używanym zasobem zasobów (obrazy użytkownika, pliki PDF).

Możesz obsługiwać zasoby Cloudfront z wiadra s3 całkowicie omijając Twój serwer WWW.

( Przydatne w sytuacjach, gdy twój serwer WWW wstępnie kompiluje i przechowuje obrazy i skrypt Java. Przechowywanie ich na s3 oznacza zmniejszenie zajmowanej pamięci serwera )

Np .: w Heroku Slugs (zgodne rozmiary aplikacji można zmniejszyć za pomocą s3 i owijanie go CDN-em w chmurze poprawi przepustowość)

Abs
źródło
2

Na początek chciałbym wyjaśnić, że Amazon S3 to pamięć masowa w chmurze, a Cloud Front to sieć dostarczania treści (CDN).

Możesz więc użyć do przechowywania plików na S3 i stworzyć dystrybucję do obsługi treści przez Internet. Jak również możesz utworzyć dystrybucję dla określonych regionów.

Kailash Malav
źródło
1

Amazon S3 to świetna platforma do przechowywania obiektów, jeśli szukasz globalnie rozproszonego systemu pamięci do ochrony przed upadkiem regionów / stref. Doskonale nadaje się również do treści statycznych / stałych, które nie są transakcyjne i zmieniają się, takie jak zdjęcia, filmy, obrazy, kopie zapasowe itp. Mam nadzieję, że to pomaga!

JStorage
źródło