- Создаем свой сайт на Gatsby
- . Подключаем домен к бакету
- . Cоздаем API-шлюз, подключаем домен к шлюзу
- Создаем бакет в объектном хранилище
- Устанавливаем CLI Yandex.Cloud и создаем профиль
- Создаем сервисный аккаунт, назначаем ему роли, проходим аутентификацию от его имени
- Cоздаем статический ключ доступа для сервисного аккаунта в Yandex.Cloud
- Подключаем плагин S3
- Run&Deploy = Enjoy
- Бесплатный dns хостинг от cloudns
- Используемые технологии
- Минусы яндекс.облака
- Плюсы яндекс.облака
- Пошаговая инструкция по деплою статического сайта в облако, прикрутке к нему сертификата let’s encrypt, домена второго уровня и настройке api-шлюза
- Пошаговая инструкция с пояснением
- Преимущества
- Сравнение с обычным vds
- Яндекс и ucoz
- Выводы
- Вывод
Создаем свой сайт на Gatsby
Идем на сайт Gatsby и находим раздел со стартерами. Залипание на стартерах можно оставить на потом. Первым делом устанавливаем генератор статических сайтов.
npm install -g gatsby-cli
Выбираем стартер и клонируем его себе. Под каждым стартером есть команда со ссылкой на репозиторий:
. Подключаем домен к бакету
Наша облачная тренировка подходит к концу, но есть еще несколько упражнений, которые необходимо выполнить, чтобы сайт работал на домене. Подключим домен к бакетам.
Домен второго уровня подключить к Облаку напрямую нельзя — такие домены не направляются на другой хост при помощи изменения записи CNAME. Поэтому мы создавали два бакета и делали сертификат на каждый. Подробнее об этом читайте в документе Common DNS Operational and Configuration Errors, п.2.4.
. Cоздаем API-шлюз, подключаем домен к шлюзу
В Yandex.Cloud можно создать API-шлюз и настроить свой домен третьего уровня для обращения к шлюзу. С технической точки зрения для статического сайта выгоднее и удобнее размещать сайт и прикручивать домен к Object Storage. Это дешевле и требует меньше настроек.
Но сервис API Gateway позволяет более гибко настроить сайт и добавить в него динамику, когда это потребуется. Я подключила домен к API Gateway еще на статике, и потому рассказываю тут, как это делается.
Создаем бакет в объектном хранилище
Заходим на Yandex.Cloud и жмем Подключиться. Если вы обычный, а не федеративный пользователь, то для подключения понадобится аккаунт на Яндексе.
Мы оказываемся в личном кабинете Yandex.Cloud, где создаем свое Облако, а в нем — сервисный каталог, из которого удобно работать со всеми используемыми сервисами Yandex.Cloud.
В консоли управления слева находим сервис Object Storage. В инструкции Как начать работать с Yandex Object Storage описано, как начать с ним работать. Объектное хранилище Yandex.Cloud совместимо с аналогичной технологией Amazon S3. Им тоже можно управлять через CLI и пользоваться для хостинга статических сайтов.
В самом хранилище мы создаем бакет. Делаем один, если у вас домен третьего уровня и два — если у вас домен второго уровня. Второй бакет называем по имени домена, но с приставкой www. Он будет дополнительным.
Называем бакеты в точности, как домены: бакеты не переименовываются, их можно только удалить.
Пройдемся по параметрам бакета.
Объяснение к параметрам бакета я взяла на Хабре, в примере размещения в Object Storage сайта на Angular.
Все, бакет с именем домена готов к тому, чтобы задеплоить в него локальный проект. Но наш проект сделан на Gatsby, он не собран, и просто руками перетащить файлы туда не получится. Я поизучала работу Yandex.Cloud и залила в бакет сырой проект со всеми node_modules весом 500 МБ через командную строку:
Устанавливаем CLI Yandex.Cloud и создаем профиль
Интерфейс командной строки Yandex.Cloud нам понадобится для работы от имени сервисного аккаунта:
Создаем сервисный аккаунт, назначаем ему роли, проходим аутентификацию от его имени
От имени сервисного аккаунта программы могут управлять ресурсами в Yandex.Cloud.
Подробно о том, зачем нужны сервисные аккаунты, написано в документации Yandex.Cloud, в разделеСервисные аккаунты.
Как аутентифицироваться от имени сервисного аккаунта написано в разделеАутентификация от имени сервисного аккаунта.
Как назначить роли сервисному аккаунту и какие они бывают, читайте в разделеНазначение роли сервисному аккаунту.
Cоздаем статический ключ доступа для сервисного аккаунта в Yandex.Cloud
Статические ключи доступа — секретный ключ и идентификатор ключа — используются только в сервисных аккаунтах для аутентификации в сервисах с AWS-совместимым API, например в Object Storage.
Как создать статический ключ доступа, читайте в документации Yandex.Cloud, в разделеСоздание статических ключей доступа.
Дальше, чтобы каждый раз не указывать переменные окружения при деплое, мы создаем файл с расширением env и прописываем в нем секретный ключ и идентификатор ключа, которые мы получили:
AWS_ACCESS_KEY_ID =
AWS_SECRET_ACCESS_KEY =
И добавляем файл в проект.
Подключаем плагин S3
Теперь осталось подключить плагин, добавить несколько строк кода и можно деплоить проект в бакет.
Устанавливаем плагин:
npm i gatsby-plugin-s3
Добавляем код в папку plugins файла gatsby-config.js. Подставляем вместо <bucket-name> имя бакета. Обратите внимание на регион. Оставляем его именно таким, несмотря на то, что в инструкциях можно встретить указание везде прописывать ru-central1.
{
resolve: 'gatsby-plugin-s3',
options: {
bucketName: '<bucket-name>',
region: 'us-east-1',
customAwsEndpointHostname: 'storage.yandexcloud.net'
}
}
В package.json в секцию scripts добавляем «deploy».
{
"scripts": {
"deploy": "gatsby-plugin-s3 deploy --yes"
}
}
Run&Deploy = Enjoy
Запускаем. Проект сбилдится и загрузится в указанный бакет.
npm run build && npm run deploy
Не обращайте внимания на вывод в консоли. Там будет указан адрес для AWS S3 независимо от того, какой хост указан в переменной customAwsEndpointHostname.
Бесплатный dns хостинг от cloudns
Компания ClouDNS предлагает качественный DNS хостинг с развитой сетью по всему миру.
Правда с недавних пор бесплатная версия позволяет разместить данные только для одного доменного имени:
Почты для домена нет, но есть услуга Mail forwards, которая позволяет переадресовывать почту для вашего домена на любой имеющийся у вас почтовый ящик.
Используемые технологии
Для создания и размещения сайта на своем домене в облаке при помощи платформ Gatsby и Yandex.Cloud мне пригодились технологии:
· VSCode
· Git
· Node.js
· NPM
· React
· Python
· Yandex Identity and Access Management
· СLI Yandex.Cloud
· AWS CLI
· Яндекс.OAuth
· Object Storage
· Yandex Certificate Manager
· Yandex API Gateway
А также были полезны официальные чаты Yandex.Cloud без флуда и мусора — Yandex.Cloud и Yandex Serverless Ecosystem. Это скорая помощь №1 при работе с облачной платформой Яндекса.
Минусы яндекс.облака
Одна из главных претензий — тарификация исходящего трафика. Бесплатно можно отправить до 10 ГБ в месяц. Исходящие данные свыше установленного лимита оплачивается отдельно — 0,96 копеек за 1 ГБ.
Нормальная техническая поддержка тоже платная. На бесплатном тарифе «Базовый» можно делать только запрос в консоли и ждать ответа в течение 24 часов. Кроме того, поддержка не даёт общие рекомендации по архитектуре, консультации по настройке, рекомендации по устранению различных проблем.
За «Стандарт» придётся заплатить 900 рублей — здесь уже можно воспользоваться онлайн-чатом и получить ответ за 15 минут. По телефону отвечают только клиентам с тарифом «Бизнес», который стоит 6000 рублей в месяц. Полную же поддержку оказывают на «Премиуме» — его стоимость отдел продаж сообщает отдельно.
Пользователи также жалуются на то, что их виртуальные машины удаляют без предупреждения и объяснения причины.
Плюсы яндекс.облака
Главное достоинство платформы — огромные возможности для масштабирования. Доступно 30 сервисов: от Yandex Compute Cloud для создания виртуальных машин до Yandex SpeechKit для распознавания и синтеза речи. Есть и другие плюсы.
- Гибкая настройка конфигурации под любой уровень нагрузки с удобным и быстрым масштабированием.
- Возможность платить только за использованные ресурсы.
- Подробная документация на русском языке.
- Дата-центры в России, благодаря чему нет проблем с выполнением требований закона о защите персональных данных граждан РФ.
- Высокая отказоустойчивость — инфраструктурой пользуются банки, крупные интернет-магазины.
- Круглосуточный мониторинг, который позволяет быстро обнаруживать нарушения безопасности и своевременно предпринимать соответствующие меры.
- Круглосуточная техническая поддержка через форму обратной связи, электронную почту, онлайн-чат. По телефону специалисты доступны ежедневно с 10:00 до 19:00 по московскому времени.
Рассчитать стоимость помогает специальный калькулятор. В нём можно выбрать сервис и настроить конфигурацию, после чего посмотреть, сколько это будет стоить.
Ещё один позитивный момент — грант на 60 дней. Резиденты РФ получают не менее 4000 рублей, нерезиденты — не менее 50 долларов. При регистрации аккаунта с оплатой банковской картой грант делится на две части: четверть суммы можно потратить на оплату услуг Yandex Compute Cloud, три четверти — на оплату других сервисов.
Пошаговая инструкция по деплою статического сайта в облако, прикрутке к нему сертификата let’s encrypt, домена второго уровня и настройке api-шлюза
Идея познакомиться с serverless на практике меня привлекала так же сильно как и желание потестировать с пользой один из генераторов статических сайтов.
Я присматривалась к скоростному Gatsby c пушечными стартерами — платформе open source, сделанной на React, и к облачной платформе Yandex.Cloud, где есть опция хостинга статических сайтов. К тому же надо было обновить портфолио.
C нуля и до деплоя я реализовала свои идеи: serverless быстрый сайт портфолио. В процессе загрузки своего приложения в облако Яндекса я познакомилась с дружелюбным и быстрорастущим коммьюнити Yandex.Cloud в Telegram и побывала на конференции Gatsby. Это еще пара мощных профитов ко всему полученному опыту.
Хочу поделиться пошаговым процессом деплоя в облако и прикрутки к облаку своего домена разными способами — к бакету и к API Gateway. Пусть мое руководство сэкономит время таким же страстным поклонникам красивых быстрых serverless-технологий и адептам JAM-подхода.
Из текста вы узнаете, как:
Пошаговая инструкция с пояснением
Итак, если зайти на официальную страницу Ukoz, то первым же делом можно «Войти и зарегистрироваться».
Как вариант, можно использовать социальные сети: Вконтакте, Одноклассники, аккаунт Яндекс или Google, а также зарегистрироваться привычным образом, используя почтовый ящик и пароль.
Далее вам предложат придумать свой домен, оканчивающийся на Ukoz. Вы можете подождать пока не организуете работу сайта или уже на этом моменте вы можете привязать свой домен, купленный в стороннем источнике.
Преимущества
Юкоз обладает невероятным преимуществом. Я считаю, что это один из лучших конструкторов для новичка. Благодаря ему вы можете не просто создать сайт, а еще узнать кое-что о коде. На первым порах пользоваться им не обязательно, но со временем у вас будет возможность усовершенствовать свои знания.
В общем, отличный старт к удаче и успеху в интернете. Меня не привлекают сервисы, которыми просто можно пользоваться. Если ресурс предоставляет возможность продвигаться дальше – другое дело.
Сравнение с обычным vds
Пока мы рассмотрели возможности облачной платформы в вакууме. Но для объективности нужно сравнить её с другими решениями — например, со стандартным VDS.
Аналог сервера в облачной инфраструктуре Яндекса — виртуальная машина. При её создании пользователи указывают требуемые вычислительные ресурсы: количество и производительность vCPU (виртуальные ядра процессора), объём RAM и хранилища.
Начнём с экономики. В качестве примера для сравнения создадим на Яндекс.Облаке виртуальную машину со следующими характеристиками:
Несколько пояснений к конфигурации.
- Гарантированная доля vCPU — это часть, которая точно будет выделена виртуальной машине. Если выбрать значение меньше 100 %, то будет обеспечен указанный уровень производительности с вероятностью его повышения до 100 %. ВМ с частичным использованием ядра предназначены для запуска приложений, которые не требуют постоянной высокой производительности.
- Прерываемая ВМ — специальное предложение, которое позволяет сэкономить до 50 % от исходной стоимости. Суть его в том, что Яндекс может в любой момент отозвать ресурсы. Поэтому на прерываемые ВМ не распространяется соглашение об уровне обслуживания, нет гарантий на возможность создания и запуска, в любой момент серверы могут быть остановлены.
Нашему условному проекту подходит гарантированная доля vCPU 50 %. Но его точно нельзя размещать на прерываемой ВМ, поэтому придётся платить полную стоимость — 1413 рублей в месяц. Можно немного сэкономить, отказавшись от SSD в пользу HDD, но это тоже не наш вариант.
Теперь посмотрим, сколько аналогичная конфигурация будет стоить на VDS в Timeweb. Можно взять тариф Whitney: 2 ядра процессора, 2 ГБ RAM, NVMe на 40 ГБ, установленная Ubuntu 18.04, IP-адрес — 589 рублей в месяц. Если нужно 50 ГБ хранилища, то есть тариф Sylvester — на нём ещё и 4 ГБ RAM. Цена — 789 рублей в месяц.
На Таймвебе тоже можно собрать конфигурацию вручную. 2 ядра процессора, 2 ГБ RAM, 50 ГБ SSD — 1295 рублей в месяц. Если заплатить за год, то ещё минус 10 %. При этом трафик безлимитный. Не забываем, что у Яндекса исходящие данные тарифицируются — 96 копеек за каждый гигабайт сверх установленного лимита в 10 ГБ. Экономия получается значительная.
Следующий момент — производительность. Здесь у Timeweb тоже дела обстоят заметно лучше. Сравним результаты тестов производительности двух серверов с примерно одинаковыми ресурсами.
Показатель | Yandex.Cloud (CPU 2.0 x 2, 2 ГБ RAM) | Timeweb (CPU 2.4 x 2, 2 ГБ RAM) |
CPU, расчет хешей, с (ниже — лучше) | 4.8 | 3.0 |
Диск, случ. чтение из 1МБ по 4КБ, k iops | 0.5 | 17.2 |
Диск, послед. чтение из_64МБ по 256КБ, k iops | 0.2 | 5.9 |
По всем параметрам у Timeweb показатели лучше. Да, это не совсем корректное сравнение, потому что могут быть разные задачи, но разница достаточно показательная.
Яндекс и ucoz
Устав придумывать велосипед, то есть очередной конструктор, в 2022 году Яндекс попросил Ucoz забрать все свои сайты. Теперь, когда вы заходите через браузер в этот пресловутый Народ, вам предлагают перейти на Юкоз. Как бы мягко намекая: «Ребята, мы теперь там».
Сколько я не рылся в Википедии, не могу въехать, имеет ли какое-то отношение Яндекс к «Юкоз медиа», холдингу, владеющему одноименным сервисом. По ходу – нет. Если сможете найти достоверную и конкретную информацию – буду признателен оставленным комментариям к этой статье.
В этой публикации я буду говорить о Ucoz: как работать на сервисе, дам пошаговое руководство, расскажу какими преимуществами и недостатками он обладает, какую связь имеет с Яндексом, а также как он может принести реальные деньги. В общем, будет очень полезно.
Выводы
В интернете много бесплатных качественных услуг. В этой статье я рассмотрел бесплатный DNS хостинг. Я считаю, что есть смысл использовать независимый от хостинг-провайдера и регистратора домена DNS хостинг.
Вывод
Главные преимущества Яндекс.Облака — гибкость в настройке и автоматическое увеличение ресурсов при пиковых нагрузках. На нём удобно создавать инфраструктуру для крупных проектов с нестабильным трафиком. Типичный пример — спортивный сайт или новостной портал.
Однако простые веб-проекты с более или менее стабильным трафиком гораздо выгоднее размещать на VDS. Когда появится необходимость увеличить ресурсы, можно будет просто перейти на другой тариф. Яндекс.Облаком же пользоваться в таких проектах невыгодно — слишком дорогое удовольствие по сравнению с VDS.