Когда использовать Amazon Cloudfront или S3

232

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

Камо
источник
1
Если вы обслуживаете файлы, только CloudFront позволяет использовать HTTPS в настраиваемом домене. Это запечатало это для нас.
mlissner

Ответы:

373

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

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

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

Данные, обслуживаемые 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 года.

eillarra
источник
10
Спасибо, отличный ответ.
Камо
3
Для веб-шрифтов есть разница, поскольку CloudFront не полностью поддерживает CORS. Он кэширует заголовки в ответе S3, но для полной поддержки CORS некоторые заголовки должны различаться в зависимости от запрашивающего сервера (источника). Обходной
путь
11
Чтобы сохранить это обновление, CloudFront теперь поддерживает CORS: aws.amazon.com/about-aws/whats-new/2014/06/26/…
sergiopantoja
Имейте в виду, что Cloudfront высвобождает контент очень быстро. Установка максимального возраста более одного дня не означает, что ваш контент не будет удален, если он не был затронут в течение 61 минуты. Мало пользы для пользовательского контента, поскольку это равносильно нечастому доступу
BobB
53

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

mel3kings
источник
Спасибо! эта диаграмма наглядно демонстрирует разницу.
Раджан Шарма
28

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

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

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

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

<filesMatch "\\.(mp3|mp4)$">
Header set Cache-Control "max-age=648000, private"
</filesMatch>
dwenaus
источник
20

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)
  • Ньюарк, Нью-Джерси
  • Пало-Альто, Калифорния
  • Сан-Хосе, Калифорния
  • Сиэтл, Вашингтон
  • Саут-Бенд, Индиана
  • Сент-Луис, Миссури

Европа

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

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

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

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

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

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

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

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

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

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

Азия

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

  • Гонконг (2)

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

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

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

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

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

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

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

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

Австралия

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

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

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

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

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

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

Патрик Р
источник
1
это лучший ответ
Жоао Отеро
14

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

rgubby
источник
2
А с новым менеджером сертификатов это даже легко!
phatmann
7

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

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

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

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

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

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

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

  1. Прямая трансляция
  2. азартные игры
  3. Ускорение сайта
Gurmeet_BlazeClan
источник
4

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

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

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

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

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

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

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

Abs
источник
2

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

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

Кайлаш Малав
источник
1

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

JStorage
источник