Коли використовувати Amazon Cloudfront або S3


232

Чи є випадки використання, які краще піддаються Amazon Cloudfront через 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 рік.


10
Дякую, чудова відповідь.
Камо

3
Існує різниця для веб-шрифтів, оскільки CloudFront не повністю підтримує CORS. Він кешує заголовки у відповіді S3, але для повної підтримки CORS деякі заголовки повинні відрізнятися залежно від сервера запиту (джерела). Обхід
Cymen

11
Щоб оновити це оновлення, CloudFront підтримує CORS зараз: aws.amazon.com/about-aws/whats-new/2014/06/26/…
sergiopantoja

Майте на увазі, що Cloudfront вилучає вміст дуже швидко. Якщо встановити максимальний вік більше доби, це не означає, що вміст не буде вилучений, якщо його не торкалися протягом 61 хвилин. Не так багато використання для певного користувача вмісту, оскільки це нечастий доступ.
БобБ

53

CloudFront та S3 Bucket - не те саме . По-простому, CloudFront дозволяє прискорити доставку вмісту веб-вмісту через Мережу доставки вмісту (CDN) у краєзнавчих місцях, тоді як S3 Buckets - це місце, де ви зберігаєте фактичні файли. Вихідні джерела CloudFront можуть не обов'язково мати S3, але для легшої візуалізації інтеграції S3 з CloudFront: введіть тут опис зображення


Дякую! Ця діаграма наочно демонструє різницю.
Раджан Шарма

28

Ще одна основна відмінність полягає в тому, що CloudFront дозволяє дзеркально відображати сайт на вашому сервері. Потім Cloudfront кешує файли, такі як зображення, mp3 чи відео, використовуючи свою мережу доставки вмісту.

Це дозволяє вам дублювати свої активи, як і коли ви використовуєте Amazon S3.

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

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

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

20

Amazon CLOUDFRONT і S3 - це дві різні послуги, що надаються Amazon Web Services.

Amazon S3 - це послуга зберігання даних, в якій ми можемо зберігати статичні файли, такі як:

CSS, зображення, javascripts, відео тощо ...

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

Ви можете зрозуміти це краще на прикладі: -

Наприклад, ваш S3 розташований у регіоні AWS East East (N. Virginia), де знаходиться центр обробки даних для зберігання ваших файлів.

Якщо користувач з Індії намагається отримати доступ до файлу з сервера AWS у штаті Вірджинія, то користувачеві потрібно буде перейти до цього конкретного місця із запитом, і це займе багато часу.

Що CloudFront робить, це те, що він виступає як проміжне програмне забезпечення між користувачем та AWS S3.


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

Якщо вміст уже знаходиться в крайовому місці з найнижчою затримкою, CloudFront доставляє його негайно. Якщо вміст зараз не знаходиться в цьому крайовому розташуванні, CloudFront витягує його з відра Amazon S3 і надає користувачеві якнайшвидше.

Кожному запиту надається новий DNS від CloudFront до S3, тому це призведе до зменшення трафіку, а також більш паралельної обробки запитів.

Далі наведено список поточних місцеположень на липень-2016: -

Сполучені Штати

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

Європа

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

  • Дублін, Ірландія

  • Франкфурт, Німеччина (3)

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

  • Мадрид, Іспанія

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

  • Мілан, Італія

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

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

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

Азії

  • Ченнаї, Індія

  • Гонконг (2)

  • Мумбаї, Індія

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

  • Нью-Делі, Індія

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

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

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

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

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

Австралія

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

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

Південна Америка

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

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

З цього ви можете зробити висновок, що якщо користувачі обмежені з того самого регіону, на якому розміщений ваш S3, вам не потрібно переходити на CloudFront, а якщо кількість користувачів збільшується на глобальному рівні, то вам обов'язково слід використовувати CloudFront для кращої затримки та контролю руху.


1
це найкраща відповідь
Жоао Отеро

14

Інший випадок використання CloudFront над S3 полягає в тому, що ви можете використовувати сертифікат SSL для користувацького домену в CloudFront, тоді як ви не можете в S3. Досить вагома причина imho!


2
А з новим менеджером сертифікатів це навіть просто!
phatmann

7

Amazon S3 - служба простого зберігання, для цього можна використовувати велику кількість інформації, тобто відео, зображення, PDF тощо.

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

Зразок використання зразка - це Video on Demand.

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

Деякі переваги використання CloudFront для правильного використання:

  1. Поліпшена затримка - кращий досвід для кінцевих користувачів.
  2. Можливі зниження вартості передачі даних. Оскільки дані не кожен раз передаються з одного і того ж відра S3 в конкретній області AWS.

Інші можливі випадки використання:

  1. Прямий ефір
  2. Ігрові
  3. Прискорення веб-сайту

4

Тут пропущений один аспект:

Amazon Cloudfront також пропонує нижчі ціни, ніж Amazon S3 при більш високих рівнях використання.

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

  • В той час, як s3 - це більше на одного користувача, зберігається менше використовуваних ресурсів (зображення користувачів, PDF-файли).

Ви можете обслуговувати свої ресурси Cloudfront з відра s3, повністю обходячи веб-сервер.

( Корисно в ситуаціях, коли ваш веб-сервер попередньо збирає та зберігає зображення та java-скрипт. Зберігання їх на s3 означає, що слід пам’яті вашого сервера зменшується )

Напр .: On Heroku Slugs (відповідні розміри додатків можна зменшити за допомогою s3, а загортання їх у хмарний CDN покращить пропускну здатність)


2

В першу чергу я хотів би пояснити, що Amazon S3 - це хмарне зберігання, а Cloud Front - мережа доставки вмісту (CDN).

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



1

Amazon S3 - це чудова платформа для зберігання об'єктів, якщо ви шукаєте глобально розподілену систему зберігання для захисту від регіонів / зон, що спадають. Він також відмінно підходить для статичного / фіксованого контенту, який не є транзакційним і не змінюється, наприклад, зображення, відео, зображення, резервні копії тощо. Сподіваюся, що це допоможе!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.