Як размясціць сайт на S3, не губляючыся ў моры

У гэтым паведамленні вы даведаецеся больш пра вэб-сэрвісы Amazon (AWS), выкарыстоўваючы практычны прыклад размяшчэння статычнага вэб-сайта ў службе Amazon Simple Storage Service (S3). Вы можаце стварыць статычны сайт, размешчаны на S3, у пяць простых крокаў.

Хоць існуе мноства хмарных правайдэраў, я выкарыстоўваю AWS па наступных прычынах:

  • У іх ёсць "бясплатны ярус", які з'яўляецца вялікай перавагай у спалучэнні з і без таго нізкімі выдаткамі.
  • Іх паслугі прапануюць неперасягненую маштабаванасць, эластычнасць, прадукцыйнасць і бяспеку.
  • Гэта адзін з самых простых у вывучэнні, калі вы выкарыстоўваеце яго для практычных прыкладаў.

Ёсць і іншыя хмарныя платформы, такія як Microsoft Azure, Google Cloud Platform і IBM Cloud Computing. У кожнага з іх ёсць паслуга, падобная да S3, таму паняцці ў гэтым артыкуле датычацца і астатніх пастаўшчыкоў.

Большасць вэб-сайтаў становяцца статычнымі сайтамі, гэта азначае, што яны не запускаюць ні аднаго сервернага кода, а проста HTML, CSS і JavaScript. Без кода на серверы для запуску, няма ніякіх прычын размяшчаць яго на традыцыйным серверы.

Выкарыстоўваючы статычную функцыю хостынгу вэб-сайтаў у вядры S3, мы размяшчаем статычныя сайты за $ 1-2 у месяц і маштабуюцца мільёнамі карыстальнікаў.

Я цвёрда веру, што гэтаму можна навучыцца. Першы сэрвіс, які я даведаўся ад AWS, быў S3. Я даведаўся пра гэта, размесціўшы на сваім асабістым сайце. З гэтага скачка пачалося маё захапленне ўсім, што звязана з паслугамі Amazon Web Services. Гэта прымусіла мяне стаць сертыфікаваным архітэктарам AWS Solutions.

Улічваючы перадумовы, вы хочаце даведацца больш пра AWS, запоўніўшы практычны прыклад? Тады давайце ўвойдзем.

Трохі гісторыі

У лістападзе 2004 года Amazon абвясціла аб сваім першым сэрвісе для AWS, простай службы па чарзе (SQS). Гэта было першае ўяўленне пра тое, што мы часта называем воблакам, але гэта не ўспрымалася як сур'ёзнае парушэнне статусу.

Увесну 2006 года Amazon прадставіла службу простага захоўвання (S3). У адрозненне ад SQS, S3 не толькі парушыць статус-кво, але і надалей будзе асноўным сэрвісам AWS.

S3 складаецца з вёдраў, якія захоўваюць кантэйнеры для файлаў. Вядро - гэта плоская крама аб'ектаў з высокай даступнасцю і доўгім тэрмінам службы без іерархіі.

Паслуга істотна развівалася з 2006 года. S3 - гэта фундаментальны будаўнічы блок для іншых паслуг AWS у экасістэме. Не верыце мне Праверце часопіс падзей, калі S3 перайшоў у аўтаномны рэжым у Вірджыніі ў пачатку гэтага года.

Як вы можаце бачыць з гэтага графіка, многія з сэрвісаў AWS пацярпелі ад адключэння. Гэта таму, што некалькі службаў AWS таксама ўнутрана разлічваюць на S3.

Крыніца: https://regmedia.co.uk/2017/02/28/awsoutageboard.jpg

На самай справе, прыборная панэль AWS Health размешчана на базе S3. Гэй, які налёт, так?

1. Назавіце сваё вядро S3

Перш чым размясціць свой фантастычны статычны сайт на S3, спачатку вам трэба вядро. Для гэтага паведамлення ў блогу важна, каб ваша вядро мела тое ж імя, што і ваша даменнае імя.

Калі даменам вашага сайта з'яўляецца www.my-awesome-site.com, імя вашага вядра павінна быць www.my-awesome-site.com.

Прычына звязана з тым, як запыты накіроўваюцца на S3. Запыт ідзе ў вядро, а S3 затым выкарыстоўвае загаловак хаста ў запыце, каб дабрацца да адпаведнага вядра.

Вядучы: www.my-awesome-site.com

2. Наладзьце вядро S3 для статычнага хостынгу

Добра, у цябе вядро. Ён мае тое ж імя, што і ваша даменнае імя, так? Час наладзіць вядро для статычнага хостынгу.

Здагадайцеся, што? Актывацыя статычнага хостынгу вэб-сайтаў для вашага вядра ажыццяўляецца ў некалькі клікаў на кансолі AWS.

  • Перайдзіце да S3 у кансолі AWS.
  • Націсніце на сваё вядро.
  • Націсніце раздзел «Уласцівасці».
  • Націсніце "Статычны хостынг сайта".
  • Абярыце "Выкарыстоўваць гэтае вядро для размяшчэння вэб-сайта".
  • Калі ласка, увядзіце "index.html" у якасці дакумента-паказальніка.

Калі вы маеце справу толькі з каманднымі радкамі і не хочаце мець графічны інтэрфейс карыстальніка (GUI), вы можаце выкарыстоўваць гэтую каманду AWS CLI, каб уключыць хостынг сайта для вашага вядра.

Сайт aws s3 s3: //www.my-awesome-site.com/ --index-document index.html - дакумент пра памылку error.html

Ваша вядро настроена для статычнага хостынгу вэб-сайтаў, і зараз у вас ёсць такі URL-адрас сайта S3, як гэты http://www.my-awesome-site.com.s3-website-us-east-1.amazonaws.com/.

Ваша вядро служыць вашаму статычнаму сайту, каб любы чалавек у свеце мог атрымаць доступ да яго. Гэта вядома як ананімны доступ да вядра.

Па змаўчанні вы не можаце дадаць палітыку адкрытага доступу для любога новага вядра, створанага ў ўліковым запісе AWS. Гэта ў адказ на нядаўнія дзіравыя вёдры, дзе прыватная інфармацыя падвяргалася дрэнным акцёрам. Для нашага выпадку выкарыстання, аднак, нам патрэбна палітыка вядра для доступу грамадскасці. Каб дазволіць гэта, вы павінны зрабіць наступныя дзеянні, перш чым дадаць палітыку вядра.

  1. Націсніце на сваё вядро.
  2. Абярыце ўкладку «Дазволы» вышэй.
  3. У раздзеле "Налады грамадскага доступу" мы хацелі б націснуць на "Рэдагаваць".
  4. Змяніце «Блакіраваць новыя палітыкі для грамадскага вядра», «Заблакуйце доступ да агульнадаступных і міжплатных уліковых запісаў, калі ў кодзе ёсць дзяржаўныя палітыкі» і «Заблакуйце новыя агульнадаступныя ACL-праграмы і загрузіце грамадскія аб'екты» на «Ілжывае» і «Захаваць».

Вы павінны прайсці гэты крок, перш чым дадаць палітыку вядра да статычнага вядра сайта.

Зараз вам неабходна абнавіць палітыку вядра вашай вёдры, каб мець доступ для чытання для ўсіх у свеце. Наступныя дзеянні для абнаўлення палітыкі вядра на кансолі AWS:

  • Перайдзіце да S3 у кансолі AWS.
  • Націсніце на сваё вядро.
  • Націсніце раздзел «Дазволы».
  • Абярыце "Палітыка вядра".
  • Дадайце наступную палітыку вядра і націсніце Захаваць
{"Версія": "2008-10-17", "Id": "PolicyForPublicWebsiteContent", "Statement": [{"Sid": "PublicReadGetObject", "Effect": "Дазволіць", "Headmaster": {"AWS ":" * "}," Дзеянне ":" s3: getObject "," рэсурс ":" arn: aws: s3 ::: www.my-awesome-site.com/* "}]}

Або для вентылятараў каманднага радка, калі policy.json - гэта палітыка вядра вышэй, выкарыстоўвайце:

aws s3api put-bucket-policy --bucket www.my-awesome-site.com - файл палітыкі: //policy.json

Важна адзначыць "Галоўны": {"AWS": "*"} раздзел палітыкі вядра. Гэтая частка палітыкі адкрывае вядро для ўсіх у свеце. Кожны элемент у гэтым вядры даступны насельніцтву праз URL сайта S3. Не кладзіце ў гэтае вядро нічога, якім вы не хочаце дзяліцца з усім светам.

3. Дадайце запіс CNAME для URL вашага вядра

У вас настроена вядро для статычнага хостынгу вэб-сайтаў. Ён мае URL сайта S3. Ці разумееце вы, што гэтае вядро даступна свету? Вы зараз там.

Для таго, каб карыстальнік мог загрузіць ваш вэб-сайт S3, вам трэба даць адлюстраванне ад вашага даменнага імя www.my-awesome-site.com да URL вашага сайта S3 www.my-awesome-site.com.s3-website-. us-east-1.amazonaws.com. Такое адлюстраванне часта называюць запісам CNAME у запісах сервера даменных імёнаў (DNS).

www.my-awesome-site.com CNAME www.my-awesome-site.com.s3-website-us-east-1.amazonaws.com

Працэс выканання гэтага кроку залежыць ад таго, хто ваш пастаўшчык DNS. Звычайна гэта тое, што вы шукаеце ад пастаўшчыка DNS:

  • Стварыце запіс для такога гаспадара, як www
  • Тып запісу павінен быць CNAME (кананічнае імя).
  • Значэнне павінна быць URL вашага сайта S3: www.my-awesome-site.com.s3-website-us-east-1.amazonaws.com

4. Загрузіце свой статычны сайт

Ваша вядро настроена для статычнага хостынгу сайта. Ці ёсць у вас запіс CNAME у запісах DNS, якая рассылаецца да URL сайта S3? Дзіўна, значыць, гэта Showtime.

Памятайце, што S3 - гэта плоская крама аб'ектаў, гэта значыць, што кожны аб'ект у вядры - гэта ключ без іерархіі. Кансоль AWS S3 прымушае вас верыць, што структура каталога існуе, але гэта не так. Усё, што захоўваецца ў S3, - гэта ключы з прэфіксамі.

Гэта важна адзначыць, таму што калі ў вас ёсць такая структура сайта:

Аб / index.html кантакце / index.html CSS / styles.min.css ... ... index.html

Лёгка выказаць здагадку, што гэта традыцыйная структура каталогаў. Кансоль AWS S3 прымушае вас таксама верыць.

Кансоль AWS S3

Але на самой справе гэта не каталог. Гэта прэфікс для ключа index.html.

Загрузіце статычны сайт у нядаўна наладжанае вядро сайта S3 зараз!

Калі вы знаходзіцеся ў графічным інтэрфейсе, загрузіце статычны сайт у S3 з кансолі AWS, выканаўшы наступнае:

  • Перайдзіце да S3 у кансолі AWS.
  • Націсніце на сваё вядро.
  • Націсніце кнопку «Загрузіць».
  • Перацягнуць альбо выбраць «Дадаць файлы» і дадаць увесь статычны каталог сайта.
  • Націсніце Далей ".
  • Захоўвайце дазволы па змаўчанні ад S3.
  • Націсніце Далей ".
  • Захоўвайце дазволы па змаўчанні для Уласцівасці ўстаноўкі.
  • Націсніце Далей ".
  • Націсніце «Загрузіць».

Для гуру каманднага радка там гэтыя 10 крокаў зводзяцца да адной аперацыі каманднага радка.

aws s3 cp personal-blog / src / _site / s3: //www.my-awesome-site.com/ --recursive

5. Праверце, ці спрацавала яна

Ваш статычны вэб-сайт загружаны ў вядро вашага сайта S3. Вы можаце перайсці на www.my-awesome-site.com і ваш статычны сайт будзе загружаны з вашага вядра S3.

Дасягненні

У пяці простых кроках вы даведаліся, як размясціць статычны вэб-сайт ад AWS S3. Не кажучы ўжо пра тое, што перамяшчэнне вашага статычнага сайта на S3 прынесла вам некаторыя перавагі.

Невысокі кошт - Няма дадатковых выдаткаў на хостынг сайта ў S3. Вы плаціце стандартныя цэны S3 за GET-запыты і перадачу дадзеных з вядра, калі карыстальнік наведвае ваш сайт.

  • GET-запыты каштуюць 0,004 долара за 10000 запытаў
  • Перадача дадзеных каштуе 0,090 долараў за ГБ (да 10 ТБ у месяц).

Прыклад раскладання выдаткаў: давайце выкажам здагадку, што www.my-awesome-site.com загружае 20 рэсурсаў. Агульны памер гэтых рэсурсаў за наведванне складае 1 МБ. Сярэдняя агульная колькасць наведванняў складае 20 000. Тады мы ацэньваем агульную штомесячную кошт ад S3 да прыблізна 1,96 долара ў месяц.

Не так даўно вы плацілі 10 долараў у месяц, так што гэта каштуе 2 долары.

Абслугоўванне - Ваш статычны сайт зараз знаходзіцца ў S3. Больш не трэба кіраваць кодам на баку сервера, і ніякіх вэб-сервераў не трэба наладжваць і абнаўляць.

Маштаб - S3 - гэта шырока даступны і пастаянны сэрвіс, які падтрымлівае AWS. Калі ваш сайт вырастае з 10 карыстальнікаў у дзень да 10 мільёнаў карыстальнікаў, S3 аўтаматычна маштабуе ваш сайт.

Бяспека - Няма запушчанага сервера. Гэта дазволіць пазбегнуць памылак канфігурацыі, якія робяць вас уразлівымі да нападаў. Вы па-ранейшаму адказваеце за бяспеку свайго вядра. Памятайце, што вядро вашага сайта з'яўляецца агульнадаступным!

Гэта некалькі сур'ёзных перамог. Пры наладзе вэб-сайта S3 у вас ёсць аснова, на якой вы можаце зрабіць далей, каб зрабіць AWS яшчэ лепш.

Выснова

Ёсць шмат інфармацыі пра AWS і шырокі спектр прапанаваных паслуг. Цяжка знайсці неабходную інфармацыю для хуткага прасоўвання.

Спадзяюся, гэты пост дапамог вам прарэзаць усю інфармацыю і выканаць нешта практычнае. На маю сумленную думку, найлепшы спосаб навучання AWS - гэта вучыцца, дзейнічаючы. Такім чынам, вы можаце даведацца, як размясціць статычны сайт з AWS S3 у пяць простых і простых у разуменні крокаў.

Ці падаецца вам гэты пост карысным, каб даведацца больш пра AWS? Калі ў вас ёсць якія-небудзь пытанні ці заблакаваныя дзе-небудзь на маршруце, звяжыцеся са мной. Я рады вам дапамагчы.

Паспрабуйце AWS, выкарыстоўваючы яго

Калі вам спадабаўся гэты пост і хочаце даведацца больш пра вэб-сэрвісы Amazon, я стварыў новы курс па хостынгу, бяспецы і хостынгу статычных сайтаў у AWS. Гэта кніга і відэа-курс, які прарэзае акіян інфармацыі, каб паскорыць навучанне AWS. Дайце вам аснову, якую вы можаце выкарыстоўваць, каб даведацца складаныя рэчы, фактычна выкарыстоўваючы іх.

Перайдзіце на мэтавую старонку і атрымайце копію!

Хочаце дадаць бясплатны SSL на статычны сайт і аптымізаваць затрымку дастаўкі? Затым у маім наступным паведамленні прачытайце, як выкарыстоўваць AWS CloudFront для бяспечнай дастаўкі вашага сайта S3 з нізкай затрымкай.

Калі вам гэта спадабалася, не забудзьцеся націснуць гэтую зялёную, каб паказаць сваю падтрымку!