Amazon Cloudfront veya S3 ne zaman kullanılır?


232

Amazon bulut cephesine s3 veya daha iyi bir şekilde kendilerini ödünç veren kullanım örnekleri var mı? Örnekler arasındaki 2 arasındaki farkı anlamaya çalışıyorum.


1
Dosya sunuyorsanız, yalnızca CloudFront özel bir etki alanında HTTPS'ye izin verir. Bu bizim için onu mühürledi.
mlissner

Yanıtlar:


373

Amazon S3 , belirli bir coğrafi bölgede yüksek kapasiteli, düşük maliyetli dosya depolama için tasarlanmıştır. * Depolama ve bant genişliği maliyetleri oldukça düşüktür.

Amazon CloudFront , web verilerini mümkün olan en yakın kullanıcılara yakın yerlerde temsil eden ve önbelleğe alan bir İçerik Dağıtım Ağıdır (CDN).

Son kullanıcılar bu etki alanı adını kullanarak bir nesne istediklerinde, içeriğinizin yüksek performanslı yayınlanması için otomatik olarak en yakın uç konuma yönlendirilirler. ( Amazon )

CloudFront tarafından sunulan veriler S3'ten gelebilir veya gelmeyebilir. İletim hızı için daha optimize edildiğinden, bant genişliği biraz daha maliyetlidir.

Kullanıcı tabanınız yerelleştirilmişse , S3 veya CloudFront ile çalışırken çok fazla fark görmezsiniz (ancak S3 grubunuz için doğru konumu seçmeniz gerekir: ABD, AB, APAC). Kullanıcı tabanınız küresel olarak yayılmışsa ve hız önemliyse, CloudFront daha iyi bir seçenek olabilir.

S3 ve CloudFront Hem alan takma adları izin Ancak CloudFront verir çoklu takma adları böylece d1.mystatics.com, d2.mystatics.comve d3.mystatics.comparalel yüklemeler için kapasite (bu kullanılan artan aynı konuma tüm nokta tarafından tavsiye edilmesi olabilir Google'da ancak ve HTTP / 2 boyunca SPDY tanıtımıyla daha az önem).

CloudFront , 2014 itibariyle CORS'i de destekliyor (teşekkürler sergiopantoja).

* Not: S3 artık 2015 itibariyle otomatik olarak ek bölgelere çoğaltılabilir.


10
Teşekkürler, harika cevap.
Kamo

3
CloudFront'un CORS'u tam olarak desteklememesi nedeniyle web yazı tipleri için bir fark vardır. Üstbilgileri S3 yanıtında önbelleğe alır, ancak tam CORS desteği için bazı üstbilgilerin istekte bulunan sunucuya (kökeni) bağlı olarak değişmesi gerekir. Geçici
çözüm

11
Bu güncellenmiş tutmak için, CloudFront şimdi CORS'yi destekler: aws.amazon.com/about-aws/whats-new/2014/06/26/...
sergiopantoja

Cloudfront'un içeriği çok hızlı bir şekilde çıkardığını unutmayın. Maksimum yaşı bir günden fazla olarak ayarlamak, içeriğiniz 61 dakika boyunca dokunulmazsa çıkarılmayacağı anlamına gelmez. Kullanıcıya özgü içerik için çok fazla kullanılmaz, çünkü bu nadiren erişime neden olur.
BobB

53

CloudFront ve S3 Bucket aynı değildir . Layman'ın terimleriyle: CloudFront, uç noktalardaki İçerik Dağıtım Ağı (CDN) aracılığıyla web içeriğinizin içerik dağıtımını hızlandırmanıza olanak sağlarken, S3 Kovaları gerçek dosyalarınızı sakladığınız yerdir. CloudFront kaynakları mutlaka S3'ten olmayabilir, ancak S3'ün CloudFront ile entegrasyonunun daha kolay görüntülenmesi için: resim açıklamasını buraya girin


Teşekkürler! bu diyagram farkı açıkça göstermektedir.
Rajan Sharma

28

Bir diğer önemli fark, CloudFront'un siteyi sunucunuzda yansıtmanıza izin vermesidir. Cloudfront daha sonra içerik dağıtım ağını kullanarak resim, mp3 veya video gibi dosyaları önbelleğe alır.

Bu, Amazon S3'ü kullanırken yaptığınız gibi varlıklarınızı çoğaltmanız gerekmesini önler.

Ancak, bir dosyanın süresi dolduktan sonra CloudFront dosyayı canlı sitenizden tekrar alır (ücrete tabi). Bu nedenle bulut önü, sık erişilen dosyalar için en iyisidir ve nadiren erişilen dosyalar için daha azdır.

Apache için dosya geçerliliğini ayarlamanın bir yolu .htaccess'tir. Örneğin

<filesMatch "\\.(mp3|mp4)$">
Header set Cache-Control "max-age=648000, private"
</filesMatch>

20

Amazon CLOUDFRONT ve S3, Amazon Web Services tarafından sağlanan iki farklı hizmettir.

Amazon S3 , aşağıdakiler gibi statik dosyaları depolayabileceğimiz bir depolama hizmetidir:

css, resimler, javascripts, videolar vb.

Amazon CloudFront , AWS'den dosya isteyen bir kullanıcı ile belirli bir bölgedeki S3 veri merkezi arasında duran bir orta eşyadır, CloudFront, statik ve dinamik web içeriğinizin S3'ten Kullanıcıya dağıtımını hızlandırmak için kullanılır.

Bir örnekle daha iyi anlayabilirsiniz: -

Örneğin, S3'ünüz dosyalarınızı depolamak için bir veri merkezi konumu olan AWS bölgesi ABD Doğu'da (N. Virginia) bulunur.

Hindistan'dan bir kullanıcı Virginia'daki bir AWS sunucusundan bir dosyaya erişmeye çalışırsa, kullanıcının bir istekle o belirli yere gitmesi gerekir ve bu çok zaman alacaktır.

CloudFront'un yaptığı şey, kullanıcı ve AWS S3 arasında bir ara katman yazılımı olarak durmasıdır.


En sık kullanılan dosyalar CloudFront üzerinde önbelleğe alınabilir ve yaptığı şey, bu dosyaları kenar konumlarda çoğaltır (Düşük gecikme süresine sahip son kullanıcılara içerik sunmak için Amazon CloudFront, içerik dağıtımı için global bir uç konum ağı kullanır).

İçerik zaten en düşük gecikme ile kenar konumundaysa, CloudFront bunu hemen teslim eder. İçerik şu anda bu uç konumda değilse, CloudFront onu bir Amazon S3 demetinden alır ve kullanıcıya olabildiğince hızlı sağlar.

Her talebe CloudFront'tan S3'e yeni bir DNS verilir, bu nedenle daha az trafik ve daha paralel istek işleme neden olur.

Temmuz-2016 itibarıyla mevcut kenar konumlarının listesi aşağıdadır: -

Amerika Birleşik Devletleri

  • Ashburn, VA (3)
  • Atlanta, GA
  • Chicago, IL
  • Dallas / Fort Worth, TX (2)
  • Hayward, CA
  • Jacksonville, FL
  • Los Angeles, CA (2)
  • Miami, FL
  • New York, NY (3)
  • Newark, NJ
  • Palo Alto, CA
  • San Jose, CA
  • Seattle, WA
  • South Bend, IN
  • St. Louis, MO

Avrupa

  • Amsterdam, Hollanda (2)

  • Dublin, İrlanda

  • Frankfurt, Almanya (3)

  • Londra, İngiltere (3)

  • Madrid, İspanya

  • Marsilya, Fransa

  • Milan, İtalya

  • Paris, Fransa (2)

  • Stockholm, İsveç

  • Varşova, Polonya

Asya

  • Chennai, Hindistan

  • Hong Kong (2)

  • Mumbai, Hindistan

  • Manila, Filipinler

  • Yeni Delhi, Hindistan

  • Osaka, Japonya

  • Seul, Kore (3)

  • Singapur (2)

  • Taipei Tayvan

  • Tokyo, Japonya (2)

Avustralya

  • Melbourne, Avustralya

  • Sidney, Avustralya

Güney Amerika

  • São Paulo, Brezilya

  • Rio de Janeiro, Brezilya

Bundan, eğer kullanıcılar sınırlıysa S3'ünüz barındırıldığı ile aynı bölgeden ise, CloudFront'a gitmeniz gerekmediği ve kullanıcı sayısının global düzeyde artması durumunda kesinlikle CloudFront'u kullanmanız gerektiği sonucuna varabilirsiniz. daha iyi gecikme ve trafik kontrolü için.


1
En iyi cevap bu
João Otero

14

CloudFront'u S3 üzerinde kullanmak için başka bir durum, CloudFront'daki özel bir etki alanına SSL sertifikası kullanabilmenizdir, oysa S3'te yapamazsınız. Oldukça iyi bir neden imho!


2
Ve yeni Sertifika Yöneticisi ile çok daha kolay!
phatmann

7

Amazon S3 Basit bir Depolama Hizmetidir, bu Video, Görüntü, PDF vb. Gibi büyük miktarda bilgi kullanılabilir.

CloudFront, son kullanıcıya daha yakın olan ve bilgileri Amazon S3'te mümkün olan en kısa sürede kullanıma sunmak için kullanılan bir İçerik Dağıtım Ağıdır.

Örnek bir kullanım örneği İstek Üzerine Video'dur.

  1. Videolarınızı tek bir yerde saklarsınız. S3 önceden kaydedilmiş tüm videoları farklı formatlarda saklar.
  2. Global kullanıcı vakanız var
  3. CloudFront, videoyu uç konumlarda önbelleğe almak için kullanılır. Bu, içeriği son kullanıcıya iletmek için kullanılabilir. Konum, en yakın fiziksel kenar konumuna göre otomatik olarak alınır. Şu anda 51 civarında kenar konumu var.

CloudFront'u doğru kullanım için kullanmanın bazı avantajları:

  1. Gelişmiş Gecikme - Daha iyi son kullanıcı deneyimi.
  2. Olası düşük veri aktarım maliyeti. Veriler belirli bir AWS bölgesindeki aynı S3 kovasından her zaman aktarılmadığından.

Diğer olası kullanım durumları:

  1. Canlı yayın
  2. kumar
  3. Web Sitesi Hızlandırma

4

Burada kaçırılan bir yön:

Amazon Cloudfront, daha yüksek kullanım seviyelerinde Amazon S3'ten daha düşük fiyatlar sunuyor.

  • Cloudfront CDN, coğrafi olarak dağıtılmış birden çok sunucuya içerik dağıtımı içindir (CSS, JS)

  • Oysa s3 kullanıcı başına daha az kullanılan kaynak deposudur (kullanıcı görüntüleri, PDF'ler).

Cloudfront kaynaklarınızı, web sunucunuzu tamamen atlayarak bir s3 demetinden sunabilirsiniz.

( Web sunucunuzun görüntüleri ve java komut dosyasını önceden derlediği ve sakladığı durumlarda yararlıdır. S3'te saklamak, sunucu belleğinizin kapladığı alanı azaltır )

Örn: Heroku Slugs'ta (s3 kullanılarak uyumlu uygulama boyutları azaltılabilir ve bulut ön CDN ile sarılırsa verim artar)


2

İlk olarak Amazon S3'ün bulut Depolama ve Bulut Önü içerik dağıtım ağı (CDN) olduğunu açıklamak istiyorum.

Böylece dosyaları S3'te depolamak için kullanabilir ve içeriği internet üzerinden sunmak için dağıtım oluşturabilirsiniz. Ayrıca belirli bölgeler için dağıtım oluşturabilirsiniz.



1

Amazon S3, aşağıya inen bölgelere / bölgelere karşı korumak için küresel olarak dağıtılmış bir depolama sistemi arıyorsanız harika bir nesne depolama platformudur. Ayrıca işlemsel olmayan ve resim, video, resim, yedekleme vb. Gibi değişmeyen statik / sabit içerik için de harikadır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.