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