Когда использовать Amazon Cloudfront или S3 - PullRequest
198 голосов
/ 25 июля 2010

Существуют ли варианты использования, которые лучше подходят для облачного фронта Amazon по сравнению с s3 или наоборот? Я пытаюсь понять разницу между двумя примерами.

Ответы [ 10 ]

331 голосов
/ 25 июля 2010

Amazon S3 предназначен для недорогого хранилища файлов большой емкости в одном конкретном географическом регионе. * Затраты на хранение и пропускную способность довольно низкие.

Amazon CloudFront - это сеть доставки контента (CDN), которая проксирует и кэширует веб-данные в крайних местах, максимально приближенных к пользователям.

Когда конечные пользователи запрашивают объект, использующий это доменное имя, они автоматически направляются в ближайший крайний пункт для высокопроизводительной доставки вашего контента. ( Amazon )

Данные, обслуживаемые CloudFront, могут поступать или не поступать с S3. Поскольку она более оптимизирована для скорости доставки, пропускная способность стоит немного больше.

Если ваша пользовательская база локализована , вы не увидите большой разницы при работе с S3 или CloudFront (но вам нужно выбрать правильное местоположение для вашего сегмента S3: США, ЕС, APAC). Если ваша пользовательская база распространяется по всему миру и скорость важна, CloudFront может быть лучшим вариантом.

И S3, и CloudFront допускают псевдонимы доменов, однако CloudFront позволяет несколько псевдонимов , так что d1.mystatics.com, d2.mystatics.com и d3.mystatics.com могут указывать на одно и то же местоположение, увеличивая емкость для параллельных загрузок (это раньше рекомендовались Google , но с появлением SPDY и HTTP / 2 имеет меньшее значение).

CloudFront также поддерживает CORS с 2014 года (спасибо sergiopantoja).

* Примечание: S3 теперь может автоматически реплицироваться в дополнительные регионы с 2015 года.

36 голосов
/ 31 января 2017

CloudFront и S3 Bucket - это не одно и то же .С точки зрения непрофессионала: CloudFront позволяет ускорить доставку контента вашего веб-контента через сеть доставки контента (CDN) в периферийные местоположения, тогда как S3 Buckets - это место, где вы храните ваши фактические файлы.Источники CloudFront не обязательно должны быть из S3, но для упрощения визуализации интеграции S3 с CloudFront: enter image description here

25 голосов
/ 18 августа 2011

Еще одно важное отличие состоит в том, что CloudFront позволяет зеркалировать сайт на вашем сервере.Cloudfront затем кэширует файлы, такие как изображения, mp3 или видео, используя свою сеть доставки контента.

Это избавляет вас от необходимости дублировать свои ресурсы, как при использовании Amazon S3.

Однако после истечения срока действия файла CloudFront снова получит его с вашего действующего сайта (по цене).Таким образом, облачный фронт лучше всего подходит для часто используемых файлов, а для редких - меньше.

Один из способов установить срок действия файлов для apache - это .htaccess.Например

<filesMatch "\\.(mp3|mp4)$">
Header set Cache-Control "max-age=648000, private"
</filesMatch>
14 голосов
/ 22 июля 2016

Amazon CLOUDFRONT и S3 - это две разные службы, предоставляемые Amazon Web Services.

Amazon S3 - это сервис хранения, в котором мы можем хранить статические файлы, такие как:

CSS, изображения, JavaScript, видео и т. Д. *

Amazon CloudFront - это промежуточное ПО, которое находится между пользователем, запрашивающим файл у AWS, и центром обработки данных S3 в определенном регионе. CloudFront используется для ускорения распространения статических и динамических данных. веб-контент от S3 для пользователя.

Вы можете лучше понять это на примере: -

Например, ваш S3 находится в регионе AWS США Восток (Северная Вирджиния), где расположен центр обработки данных для хранения ваших файлов.

Если пользователь из Индии попытается получить доступ к файлу с сервера AWS в Вирджинии, ему потребуется запросить это конкретное местоположение, и это займет много времени.

Что делает CloudFront, так это то, что он выступает в качестве промежуточного программного обеспечения между пользователем и AWS S3.


Наиболее часто используемые файлы могут кэшироваться в CloudFront, и для этого они реплицируют эти файлы в периферийные местоположения (для доставки контента конечным пользователям с меньшей задержкой Amazon CloudFront использует глобальную сеть периферийных местоположений для доставки контента) ,

Если контент уже находится в крайнем местоположении с минимальной задержкой, CloudFront доставляет его немедленно. Если содержимое в данный момент находится не в этом пограничном местоположении, CloudFront извлекает его из корзины Amazon S3 и предоставляет пользователю как можно быстрее.

Каждый запрос получает новый DNS от CloudFront на S3, так что это приведет к снижению трафика и параллельной обработке запросов.

Ниже приведен список текущих краевых местоположений по состоянию на июль 2016 года: -

США

  • Ашберн, Вирджиния (3)
  • Атланта, Джорджия
  • Чикаго, Иллинойс
  • Даллас / Форт-Уэрт, Техас (2)
  • Хейворд, Калифорния
  • Джексонвилл, Флорида
  • Лос-Анджелес, Калифорния (2)
  • Майами, Флорида
  • Нью-Йорк, Нью-Йорк (3)
  • Ньюарк, Нью-Джерси
  • Пало-Альто, Калифорния
  • Сан-Хосе, Калифорния
  • Сиэтл, Вашингтон
  • Саут-Бенд, IN
  • St. Луи, Миссури

Европа

  • Амстердам, Нидерланды (2)

  • Дублин, Ирландия

  • Франкфурт, Германия (3)

  • Лондон, Англия (3)

  • Мадрид, Испания

  • Марсель, Франция

  • Милан, Италия

  • Париж, Франция (2)

  • Стокгольм, Швеция

  • Варшава, Польша

Азия

  • Ченнаи, Индия

  • Гонконг (2)

  • Мумбаи, Индия

  • Манила, Филиппины

  • Нью-Дели, Индия

  • Осака, Япония

  • Сеул, Корея (3)

  • Сингапур (2)

  • Тайбэй, Тайвань

  • Токио, Япония (2)

Австралия

  • Мельбурн, Австралия

  • Сидней, Австралия

Южная Америка

  • Сан-Паулу, Бразилия

  • Рио-де-Жанейро, Бразилия

Исходя из этого, вы можете сделать вывод, что если пользователи ограничены из того же региона, в котором находится ваш S3, вам не нужно переходить на CloudFront, и если количество пользователей увеличивается на глобальном уровне, то вам следует Обязательно используйте CloudFront для лучшей задержки и контроля трафика.

11 голосов
/ 17 декабря 2015

Другим примером использования CloudFront поверх S3 является то, что вы можете использовать сертификат SSL для настраиваемого домена в CloudFront, тогда как в S3 это невозможно. Довольно веская причина imho!

7 голосов
/ 07 апреля 2014

Amazon S3 - это простая служба хранения, в которой может использоваться большое количество информации, например, видео, изображения, PDF и т. Д.

CloudFront - это сеть доставки контента, которая ближе к конечному пользователю и используется для того, чтобы сделать информацию доступной на Amazon S3 в кратчайшие сроки.

Примером использования является видео по запросу.

  1. Вы храните ваши видео в одном месте. S3 хранит все предварительно записанные видео в разных форматах.
  2. У вас глобальный пользовательский случай
  3. CloudFront используется для кэширования видео в крайних местоположениях. Это может быть использовано для доставки контента конечному пользователю. Местоположение выбирается автоматически в зависимости от ближайшего физического края. В настоящее время существует около 51 краевых локаций.

Некоторые преимущества использования CloudFront для правильного варианта использования:

  1. Улучшенная задержка - лучший опыт для конечного пользователя.
  2. Возможна сниженная стоимость передачи данных. Поскольку данные не всегда передаются из одного сегмента S3 в конкретном регионе AWS.

Другие возможные варианты использования:

  1. Прямая трансляция
  2. Игры
  3. Ускорение сайта
4 голосов
/ 15 октября 2014

Здесь пропущен один аспект:

Amazon Cloudfront также предлагает более низкие цены, чем Amazon S3 на более высоких уровнях использования.

  • Cloudfront CDN предназначен для распределения контента по нескольким серверам, географически распределенным (CSS, JS)

  • Принимая во внимание, что s3 - это больше хранилища ресурсов на пользователя, меньше используемого (изображения пользователей, PDF).

Вы можете обслуживать ресурсы Cloudfront из корзины s3, полностью минуя ваш веб-сервер.

( Полезно в ситуациях, когда ваш веб-сервер предварительно компилирует и сохраняет изображения и java-скрипт. Хранение их на s3 означает, что объем используемой памяти вашего сервера уменьшается )

Пример: на Heroku Slugs (с помощью s3 можно уменьшить размеры согласованного приложения, а обертывание его с CDN на стороне облака увеличит пропускную способность)

2 голосов
/ 18 марта 2013

Сравнение между Amazon S3 и Amazon Cloudfront можно посмотреть здесь: http://www.bucketexplorer.com/documentation/cloudfront--amazon-s3-vs-amazon-cloudfront.html

[Раскрытие информации: Bucket Explorer]

1 голос
/ 03 ноября 2017

Сначала я хотел бы объяснить, что Amazon S3 - это облачное хранилище, а Cloud Front - сеть доставки контента (CDN).

Таким образом, вы можете использовать файлы для хранения на S3 и создать дистрибутив для обслуживания контента через Интернет. А также вы можете создать дистрибутив для конкретных регионов.

1 голос
/ 17 февраля 2016

Amazon S3 - это отличная платформа для хранения объектов, если вы ищете глобально распределенную систему хранения для защиты от сбоев областей / зон.Он также отлично подходит для статического / фиксированного контента, который не является транзакционным и изменяющимся, например фотографии, видео, изображения, резервные копии и т. Д.

...