Post

Хостинг з AWS S3 та CloudFront

Задача: зробити цю сторінку доступною у інтернеті.

Умови нескладні:

  • сайт статичний лише HTML та CSS - тож на цьому етапі відсутня потреба в базі даних чи у підтримці мов програмування;
  • сайт поки що складається всього із двох файликів сумарним розміром у три кілобайти;
  • відвідувачів зазвичай до трьох: я, також я але із іншої айпі-адреси, ще періодично заходить бот якоїсь з пошукових систем

Реалізувати рішення звісно можливо різними способами, але я вже довгий час хотів поглянути що Амазон пропонує для нових клієнтів у умовно безкоштовному пробному періоді терміном в шість місяців

Записаний по пам’яті перелік кроків:

  1. Придбав домен. AWS не продає доменні імена у зоні cv.ua, тож обирав серед українських реєстраторів. У липні 2025 найліпшу ціну знайшов у cityhost.ua.
  2. Зареєстрував акаунт в AWS. В процесі знадобиться картка - про всяк випадок завів для експериментів окрему.
  3. Через консоль керування S3 створив новий бакет.
    1. Регіон обрав територіально найближчий - прогнозовані навантаження мінімальні, тож різниця у ціні між різними регіонами в даному випадку несуттєва.
    2. Із запропонованих по замовчуванню налаштувань при створенні нового бакету змінив лише одне - увімкнув “Block all public access”.
    3. Інші типові опції залишив без змін - у тому числі вимкнений прапорець версіонуванням, оскільки сайтик зберігається в локальному гіт-репозиторії.
  4. Спробував додати новий distribution для CloudFront На першій же сторінці налаштувань CloudFront запропонував опублікувати сайт із індивідуальним, а не автоматично згенерованим доменним іменем - а також безкоштовно згенерувати сертифікат для HTTPS з’єднання. Втім, для цього необхідно зараз чи пізніше організувати керування цим доменом через Route53. Тимчасово перервав налаштування, повернусь до цього кроку пізніше.
  5. Створив зону anykey.cv.ua на Route53. В липні 2025 хостинг зони коштує пів-долара на місяць - поглянемо, по ідеї перших пів-року безкоштовно. Небезкоштовно - доменна зона була зареєстрована 13 липня, а 2 серпня прийшов рахунок про 60 центів оплати за Route53 (з них 10 центів податок).
  6. У новій зоні автоматично було створено запис типу NS, який вказує на чотири DNS-сервери Амазону - занотував їх, адреси знадобляться в наступному кроці
  7. Домен був придбаний через cityhost.ua - тож в налаштуваннях домену на сайті реєстратора, у розділі “NS сервери” змінив адреси серверів CityHost на DNS-сервери Амазону
  8. Додав новий CloudFront distribution:
    1. Вказав Custom domain створений у Route53.
    2. У якості origin вказав раніше створений S3 бакет.
    3. У цьому ж майстрі налаштувань додав новий TLS сертифікат.
  9. Після створення distribution:
    1. Встановив Default root object у index.html.
    2. Змінив Price class із “Default root object” на “Use only North America and Europe”.
    3. Переглянув geographic restrictions.
    4. На вкладці Behaviors змінив Cache policy на “disabled” -втім, цей крок звісно не є обов’язковим
  10. Все. Лишилось перевірити результати у бравзері. Щось може не працювати через затримки в поширенні інформації DNS (до речі, DNS клієнти та сервери можуть на декілька хвилин кешувати також і негативні відповіді).
This post is licensed under CC BY 4.0 by the author.