Kapan harus menggunakan Amazon Cloudfront atau S3

232

Apakah ada kasus penggunaan yang cocok untuk Amazon cloudfront lebih dari s3 atau sebaliknya? Saya mencoba memahami perbedaan antara 2 melalui contoh.

Kamo
sumber
1
Jika Anda menyajikan file, hanya CloudFront yang memungkinkan Anda memiliki HTTPS di domain khusus. Itu menyegelnya untuk kita.
mlissner

Jawaban:

373

Amazon S3 dirancang untuk penyimpanan file berkapasitas besar dan murah di satu wilayah geografis tertentu. * Biaya penyimpanan dan bandwidth cukup rendah.

Amazon CloudFront adalah Content Delivery Network (CDN) yang proksi dan cache data web di lokasi tepi sedekat mungkin dengan pengguna.

Ketika pengguna akhir meminta objek menggunakan nama domain ini, mereka secara otomatis diarahkan ke lokasi tepi terdekat untuk pengiriman konten Anda yang berkinerja tinggi. ( Amazon )

Data yang dilayani oleh CloudFront mungkin atau mungkin tidak berasal dari S3. Karena lebih optimal untuk kecepatan pengiriman, biaya bandwidth sedikit lebih banyak.

Jika basis pengguna Anda dilokalkan , Anda tidak akan melihat terlalu banyak perbedaan bekerja dengan S3 atau CloudFront (tetapi Anda harus memilih lokasi yang tepat untuk bucket S3 Anda: AS, UE, APAC). Jika basis pengguna Anda tersebar secara global dan kecepatan penting, CloudFront mungkin merupakan opsi yang lebih baik.

S3 dan CloudFront memungkinkan alias domain, namun CloudFront memungkinkan banyak alias sehingga d1.mystatics.com, d2.mystatics.comdan d3.mystatics.comsemuanya bisa menunjuk ke lokasi yang sama meningkatkan kapasitas untuk unduhan paralel (ini dulunya direkomendasikan oleh Google tetapi dengan diperkenalkannya SPDY dan HTTP / 2 adalah dari kurang penting).

CloudFront juga mendukung CORS pada 2014 (terima kasih sergiopantoja).

* Catatan: S3 sekarang dapat mereplikasi secara otomatis ke wilayah tambahan pada 2015.

eillarra
sumber
10
Terima kasih, jawaban yang bagus.
Kamo
3
Ada perbedaan untuk font web karena CloudFront tidak sepenuhnya mendukung CORS. Itu cache header dalam respons S3 tetapi untuk dukungan penuh CORS, beberapa header harus bervariasi tergantung pada server yang meminta (asal). Bekerja di sekitar: forums.aws.amazon.com/message.jspa?messageID=422504#422532
Cymen
11
Untuk terus memperbarui ini, CloudFront mendukung CORS sekarang: aws.amazon.com/about-aws/whats-new/2014/06/26/…
sergiopantoja
Sadarilah bahwa Cloudfront mengusir konten dengan sangat cepat. Mengatur usia maks ke lebih dari sehari tidak berarti konten Anda tidak akan digusur jika belum disentuh selama 61 menit. Tidak banyak digunakan untuk konten khusus pengguna karena jumlahnya jarang.
BobB
53

CloudFront dan S3 Bucket tidak sama . Dalam istilah awam: CloudFront memungkinkan Anda untuk mempercepat pengiriman konten konten web Anda melalui Content Delivery Network (CDN) di lokasi tepi, sedangkan S3 Bucket adalah tempat Anda menyimpan file Anda yang sebenarnya. Sumber-sumber CloudFront mungkin tidak harus dari S3 tetapi untuk visualisasi integrasi S3 yang lebih mudah dengan CloudFront: masukkan deskripsi gambar di sini

mel3kings
sumber
Terima kasih! diagram ini menunjukkan perbedaannya dengan jelas.
Rajan Sharma
28

Perbedaan utama lainnya adalah bahwa CloudFront memungkinkan Anda untuk mencerminkan situs di server Anda. Cloudfront kemudian melakukan cache file seperti gambar, mp3 atau video menggunakan jaringan pengiriman kontennya.

Ini menghemat Anda harus menduplikasi aset Anda seperti yang Anda lakukan ketika Anda menggunakan Amazon S3.

Namun, setelah file berakhir, CloudFront akan mengambilnya lagi dari situs langsung Anda (dengan biaya). Jadi cloud front adalah yang terbaik untuk file yang sering diakses, dan lebih jarang untuk yang jarang diakses.

Salah satu cara untuk mengatur kadaluwarsa file untuk apache adalah dalam .htaccess. Sebagai contoh

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

Amazon CLOUDFRONT dan S3 adalah dua layanan berbeda yang disediakan oleh Amazon Web Services.

Amazon S3 adalah layanan penyimpanan di mana kita dapat menyimpan file statis seperti:

css, gambar, javascript, video, dll ...

Amazon CloudFront adalah perangkat tengah yang berada di antara pengguna yang meminta file dari AWS dan pusat data S3 di wilayah tertentu, CloudFront digunakan untuk mempercepat distribusi konten web statis dan dinamis Anda dari S3 ke Pengguna.

Anda dapat memahaminya dengan lebih baik melalui contoh: -

Misalnya, S3 Anda terletak di wilayah AWS AS Timur (N. Virginia) yang merupakan lokasi pusat data untuk menyimpan file Anda.

Jika pengguna dari India mencoba mengakses file dari server AWS di Virginia, maka pengguna harus pergi ke lokasi tertentu dengan permintaan, dan ini akan memakan banyak waktu.

Apa yang dilakukan CloudFront adalah bahwa ia berdiri sebagai middleware antara pengguna dan AWS S3.


File yang paling sering digunakan dapat di-cache di CloudFront dan apa yang dilakukannya adalah, itu mereplikasi file-file itu di lokasi tepi (Untuk mengirimkan konten kepada pengguna akhir dengan latensi lebih rendah, Amazon CloudFront menggunakan jaringan global lokasi tepi untuk pengiriman konten).

Jika konten sudah di lokasi tepi dengan latensi terendah, CloudFront mengirimkannya segera. Jika konten saat ini tidak berada di lokasi tepi itu, CloudFront mengambilnya dari Amazon S3 bucket dan menyediakannya kepada pengguna secepat mungkin.

Setiap permintaan diberikan DNS baru dari CloudFront ke S3, jadi ini akan menghasilkan lalu lintas yang lebih rendah serta pemrosesan permintaan yang lebih paralel.

Berikut ini adalah daftar lokasi tepi saat ini per Juli-2016: -

Amerika Serikat

  • 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

Eropa

  • Amsterdam, Belanda (2)

  • Dublin, Irlandia

  • Frankfurt, Jerman (3)

  • London, Inggris (3)

  • Madrid, Spanyol

  • Marseille, Prancis

  • Milan, Italia

  • Paris, Perancis (2)

  • Stockholm, Swedia

  • Warsaw, Polandia

Asia

  • Chennai, India

  • Hong Kong (2)

  • Mumbai, India

  • Manila, Filipina

  • New Delhi, India

  • Osaka, Jepang

  • Seoul, Korea (3)

  • Singapura (2)

  • Taipei, Taiwan

  • Tokyo, Jepang (2)

Australia

  • Melbourne, Australia

  • Sydney, Australia

Amerika Selatan

  • São Paulo, Brasil

  • Rio de Janeiro, Brasil

Dari sini Anda dapat menyimpulkan bahwa jika pengguna terbatas berasal dari wilayah yang sama dengan S3 Anda di-host, maka Anda tidak perlu menggunakan CloudFront, dan jika jumlah pengguna meningkat di tingkat global maka Anda harus menggunakan CloudFront. untuk latensi dan kontrol lalu lintas yang lebih baik.

Patrick R
sumber
1
ini adalah jawaban terbaik
João Otero
14

Kasus lain untuk menggunakan CloudFront lebih dari S3 adalah bahwa Anda dapat menggunakan sertifikat SSL ke domain khusus di CloudFront sedangkan Anda tidak bisa dalam S3. Alasan yang cukup bagus imho!

rgubby
sumber
2
Dan dengan Manajer Sertifikat baru itu bahkan mudah!
phatmann
7

Amazon S3 adalah Layanan Penyimpanan Sederhana, ini dapat digunakan sejumlah besar informasi yaitu Video, Gambar, PDF dll.

CloudFront adalah Jaringan Pengiriman Konten, yang lebih dekat ke pengguna akhir dan digunakan untuk membuat informasi tersedia di Amazon S3 dalam waktu sesingkat mungkin.

Kasing penggunaan sampel adalah Video Sesuai Permintaan.

  1. Anda menyimpan video Anda di satu tempat. S3 menyimpan semua video yang direkam sebelumnya dalam berbagai format.
  2. Anda memiliki case pengguna global
  3. CloudFront digunakan untuk melakukan cache video ke lokasi tepi. Ini dapat digunakan untuk mengirimkan konten ke pengguna akhir. Lokasi diambil secara otomatis berdasarkan lokasi tepi fisik terdekat. Saat ini ada sekitar 51 lokasi tepi.

Beberapa keuntungan menggunakan CloudFront untuk penggunaan yang tepat:

  1. Improved Latency - Pengalaman pengguna akhir yang lebih baik.
  2. Kemungkinan mengurangi biaya transfer data. Karena data tidak setiap waktu ditransfer dari bucket S3 yang sama di wilayah AWS tertentu.

Kemungkinan penggunaan lainnya:

  1. Streaming langsung
  2. Game
  3. Akselerasi Situs Web
Gurmeet_BlazeClan
sumber
4

Satu aspek yang terlewatkan di sini adalah:

Amazon Cloudfront juga menawarkan harga yang lebih rendah dari Amazon S3 pada tingkatan penggunaan yang lebih tinggi.

  • Cloudfront CDN adalah untuk distribusi konten di beberapa server yang didistribusikan secara geografis (CSS, JS)

  • Sedangkan s3 lebih dari per pengguna menyimpan sumber daya kurang digunakan (gambar pengguna, PDF).

Anda dapat menayangkan sumber daya Cloudfront Anda dari ember s3 sepenuhnya melewati server web Anda.

( Berguna dalam situasi di mana server web Anda melakukan pra-kompilasi dan menyimpan gambar dan java-script. Menyimpannya di s3 berarti jejak memori server Anda berkurang )

Contoh: On Heroku Slugs (ukuran aplikasi yang dipenuhi dapat dikurangi dengan menggunakan s3 dan membungkusnya dengan CDN depan cloud akan meningkatkan throughput)

Abs
sumber
2

Sebagai pertama saya ingin menjelaskan bahwa Amazon S3 adalah cloud Storage dan Cloud Front adalah jaringan pengiriman konten (CDN).

Jadi Anda bisa menggunakannya untuk menyimpan file pada S3 dan dapat membuat distribusi untuk menyajikan konten melalui internet. Serta Anda dapat membuat distribusi untuk wilayah tertentu.

Kailash Malav
sumber
1

Amazon S3 adalah platform penyimpanan objek yang bagus jika Anda mencari sistem penyimpanan yang didistribusikan secara global untuk melindungi dari wilayah / zona yang turun. Ini juga bagus untuk konten statis / tetap yang tidak transaksional dan berubah seperti gambar, video, gambar, cadangan, dll. Harapan yang membantu!

JStorage
sumber