Выбор DNS-хостинга после 10 лет с Яндексом / Хабр

Выбор DNS-хостинга после 10 лет с Яндексом / Хабр Хостинг

Создаем свой сайт на 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 hosting yandex стоит ли?

Добрый день, уважаемые коллеги кто нибудь держит домены на Yandex?

Интересует отказоустойчивость их DNS серверов, имхо необходимо убирать домены с RackSpase.

Стоит ли выбрать Яндекс в этом вопросе.

Бесплатный 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 рублей в месяц. Полную же поддержку оказывают на «Премиуме» — его стоимость отдел продаж сообщает отдельно.

Пользователи также жалуются на то, что их виртуальные машины удаляют без предупреждения и объяснения причины.

О себе

Недавно, я разрабатывал SaaS сервис, подобие маркетплейса, где люди находят спортивных тренеров для персональных тренировок. Использовал стек Amazon Web Services (далее AWS). Но чем глубже погружался в проект — тем больше нюансов узнавал о разных процессах организации стартапа.

Я столкнулся с следующими проблемами:

  • AWS потреблял много денег. Поработав 3 года в Enterprise компаниях, я привык к таким радостям, как Docker, Kubernetes, CI/CD, blue green deployment, и, как начинающий программист-стартапер, захотел реализовать тоже самое. В итоге пришел к тому, что ежемесячно AWS потреблял по 300-400 баксов. Самым дорогим оказался Kubernetes, около 100 баксов, при минималке с одним кластером и одной нодой.
    P.S. На старте не нужно так делать.
  • Далее, задумавшись о юридической стороне, я узнал про закон 152-ФЗ, в котором говорилось примерно следующее: «Персональные данные граждан РФ должны храниться на территории РФ», иначе штрафы, чего мне не хотелось. Я решил заняться этими вопросами, пока «сверху» мне не прилетело :).

Вдохновленный статьей о мигрировании инфраструктуры из Amazon Web Services в Яндекс.Облако, я решил изучить стек Яндекса подробнее.

Для меня ключевыми особенностями Яндекс.Облака было следующее:

Я изучал других конкурентов этого сервиса, но на тот момент Яндекс выигрывал.

О себе рассказал, можно и перейти к делу.

Плюсы яндекс.облака

Главное достоинство платформы — огромные возможности для масштабирования. Доступно 30 сервисов: от Yandex Compute Cloud для создания виртуальных машин до Yandex SpeechKit для распознавания и синтеза речи. Есть и другие плюсы.

  • Гибкая настройка конфигурации под любой уровень нагрузки с удобным и быстрым масштабированием.
  • Возможность платить только за использованные ресурсы.
  • Подробная документация на русском языке.
  • Дата-центры в России, благодаря чему нет проблем с выполнением требований закона о защите персональных данных граждан РФ.
  • Высокая отказоустойчивость — инфраструктурой пользуются банки, крупные интернет-магазины.
  • Круглосуточный мониторинг, который позволяет быстро обнаруживать нарушения безопасности и своевременно предпринимать соответствующие меры.
  • Круглосуточная техническая поддержка через форму обратной связи, электронную почту, онлайн-чат. По телефону специалисты доступны ежедневно с 10:00 до 19:00 по московскому времени.

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

Плюсы и минусы VDS от Яндекс

Ещё один позитивный момент — грант на 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-подхода.

Из текста вы узнаете, как: 

Привет, хабр!

В этой статье, я расскажу как легко и просто разместить статический сайт с помощью технологий Яндекса, а именно Object Storage.

В конце у вас будет размещенный в сети сайт, который будет доступен по внешней ссылке.

Сравнение dns-сервисов и выбор

Какими допущениями я руководствовался:

  1. В эпоху «суверенного чебурнета» хочется иметь Primary DNS в РФ. Вдруг опятьзабанят Cloudflare?

  2. Самостоятельно поднимать, администрировать и защищать DNS-сервер не хочется. Но и от возможностей сервиса ожидается большее, чем указать IP для A-записи.

  3. DNS-хостинг может (должен?) быть платный. Если ты не платишь за услугу, то либо она некачественная, либо ты переплатил в другом месте.

  4. Основная аудитория сайта находится в РФ. Но идеально – иметь возможность трансфера зоны, используя альтернативный (зарубежный?) Secondary.

  5. Возможность выставить минимальный TTL.

  6. Хорошо, если публичный «track record» без глобальных падений за последние 5 лет.

  7. Если DNS ляжет – импакт должен быть на существенную долю сайтов рунета. Бизнесу не так обидно, когда о падении пишут на всех новостных ресурсах.

Исходя из этих вводных я протестировал шорт-лист из 13 популярных сервисов и собрал в сравнительную таблицу со следующими критериями: наличие бесплатного тарифа, наличие и стоимость платного тарифа, возможность трансфера зоны и использования как Secondary, минимальный TTL, возможность импорта и экспорта зоны, наличие API, наличие защиты от DDoS и использование Anycast, наличие поддержки и дата последнего падения.

Что хотелось отметить отдельно:

Сравнение с обычным vds

Пока мы рассмотрели возможности облачной платформы в вакууме. Но для объективности нужно сравнить её с другими решениями — например, со стандартным VDS.

Аналог сервера в облачной инфраструктуре Яндекса — виртуальная машина. При её создании пользователи указывают требуемые вычислительные ресурсы: количество и производительность vCPU (виртуальные ядра процессора), объём RAM и хранилища.

Начнём с экономики. В качестве примера для сравнения создадим на Яндекс.Облаке виртуальную машину со следующими характеристиками:

Плюсы и минусы VDS от Яндекс

Несколько пояснений к конфигурации.

  • Гарантированная доля 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 ГБ. Экономия получается значительная.

Плюсы и минусы VDS от Яндекс

Следующий момент — производительность. Здесь у Timeweb тоже дела обстоят заметно лучше. Сравним результаты тестов производительности двух серверов с примерно одинаковыми ресурсами.

ПоказательYandex.Cloud (CPU 2.0 x 2, 2 ГБ RAM)Timeweb (CPU 2.4 x 2, 2 ГБ RAM)
CPU, расчет хешей, с (ниже — лучше)4.83.0
Диск, случ. чтение из 1МБ по 4КБ, k iops0.517.2
Диск, послед. чтение из_64МБ по 256КБ, k iops0.25.9

По всем параметрам у Timeweb показатели лучше. Да, это не совсем корректное сравнение, потому что могут быть разные задачи, но разница достаточно показательная.

Шаг 0. подготовим сайт

Для начала нам понадобится сайт, который мы хотим разместить в интернете. Так как я Angular разработчик, я сделаю простой шаблон SPA приложения, который далее размещу в интернете.

Вывод

Главные преимущества Яндекс.Облака — гибкость в настройке и автоматическое увеличение ресурсов при пиковых нагрузках. На нём удобно создавать инфраструктуру для крупных проектов с нестабильным трафиком. Типичный пример — спортивный сайт или новостной портал.

Однако простые веб-проекты с более или менее стабильным трафиком гораздо выгоднее размещать на VDS. Когда появится необходимость увеличить ресурсы, можно будет просто перейти на другой тариф. Яндекс.Облаком же пользоваться в таких проектах невыгодно — слишком дорогое удовольствие по сравнению с VDS.

Выводы

Все данные и исходники выложены, чтобы каждый мог добавить свои критерии или методологию и выбрать сам. Для себя же я сделал следующий вывод с учётом вводных выше:

Оцените статью
Хостинги