С февраля 2022 года многие жители России потеряли возможность использовать зарубежные сервисы: в том числе облачный провайдер DigitalOcean, которым пользовались наши студенты. Рассказываем про Yandex Cloud – альтернативу DigitalOcean, которую мы рекомендуем для прохождения наших курсов, и сравниваем оба сервиса.
- Как создать аккаунт
- Как создать серверы
- Как создать базы данных
- Как создать балансировщик
- Как создать хранилище файлов
- Чем еще можно заменить DigitalOcean
- Выводы
Статью подготовил Михаил Краев — наставник Хекслета по DevOps, инженер в крупном российском банке. Михаил проектирует инфраструктуру в облаках для больших и маленьких проектов, работает как с приватными облаками, так и с публичными: AWS, Yandex.Cloud, Selectel.В свободное время помогает волонтерским проектам.
Облачный провайдер DigitalOcean был стандартом для Хекслета, с его помощью студенты выполняли задания на курсах. В нем просто и удобно регистрироваться и создавать сервисы, что позволяет без проблем взаимодействовать с облаком даже тем пользователям, которые прежде не работали с подобными хостингами.
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки
Сейчас наши ученики из РФ не могут привязать к платформе российскую банковскую карту, чтобы подтвердить платежеспособность, и завести аккаунт в DigitalOcean. В качестве альтернативы мы рекомендуем использовать Yandex Cloud — облачный провайдер от Яндекса. В этой статье мы сравниваем, как на этих двух платформах создавать базовые сервисы:
- Серверы
- Базы данных
- Балансировщик
- Хранилище файлов.
Как создать аккаунт
DigitalOcean
Чтобы создать аккаунт в DigitalOcean, нужно указать полное имя, почту и пароль. При регистрации по реферальной ссылке https://m.do.co/c/e702f9a99145 вам начислят $100. Затем необходимо подтвердить аккаунт — письмо со ссылкой приходит на почту.
Дальше добавьте способ оплаты: банковскую карту или PayPal. После этого вы попадете в проект, где можно создавать необходимые ресурсы. Реферальный бонус будет зачислен на счет, когда регистрация завершена. Их можно использовать в течение 60 дней с момента регистрации.
Yandex Cloud
Здесь создание аккаунта несколько отличается. Вам потребуется Яндекс ID — единый сервис для аутентификации во всех продуктах Яндекса.
Пройдя форму логина, вы попадете в консоль, где нужно создать платежный аккаунт. Во время регистрации платежного аккаунта с вас могут списать небольшую сумму. Не волнуйтесь, Яндекс тут же вернет ее. Это нужно для проверки вашей карты. Когда зарегистрируете аккаунт, вам начислят вступительную квоту, о ней немного позже.
Разберем каждый этап создания платежного аккаунта.
1) Укажите страну, резидентом которой являетесь. Зарегистрироваться в Yandex Cloud могут резиденты и нерезиденты РФ. При этом нерезиденты могут зарегистрироваться только как юридические лица. Подробные условия читайте в документации сервиса Биллинг.
Заполните название аккаунта. Никаких специальных требований к нему нет, но ресурсам лучше давать осмысленные названия, особенно если речь идет о деньгах. В примере ниже мы выбрали название hexlet-student-account, чтобы обозначить, что этот аккаунт — именно для студентов:
2) Выберите плательщика или создайте нового. Чтобы добавить физическое лицо, укажите ФИО, почту и банковскую карту:
3) Укажите контактные данные: почта и телефон. Нажмите кнопку «Создать»:
Аккаунт готов к работе. Теперь вы можете создавать серверы.
Если вы заводите аккаунт на Yandex Cloud впервые, вам начислят стартовый грант на ознакомление с платформой. Гранты для резидентов разных стран отличаются. Актуальные условия есть на официальном сайте сервиса в разделе «Документация» — «Начало работы».
Грант делится на две части:
- На использование Compute Cloud — виртуальные машины и облачные серверы
- На использование остальных сервисов.
Если вы захотите потратить весь грант только на серверы, у вас это не получится.
Как создать серверы
Облачный сервер — самый часто используемый сервис в работе с облачными провайдерами. Иногда серверы создаются без вашего участия при заказе других продуктов. А когда вы будете учиться, вам потребуется создавать их самостоятельно.
DigitalOcean
В DigitalOcean облачный сервер называется Droplet. Он создается через кнопку Get Started with a Droplet:
1) Выберите образ операционной системы для сервера. Например, можно установить чистую ОС, выбрав из списка нужную нам. Еще можно развернуть сервер из docker-образа, выбрать один из готовых образов из магазина, подключить загрузочный диск или развернуть систему из бэкапа:
2) Определитесь с мощностью облачного сервера. Есть варианты для разных задач, но чтобы пройти курс на Хекслете, достаточно пакета Standard. Минимальная цена за сервер — $5 в месяц:
3) Выберите регион, в котором создается сервер, — от этого зависит скорость обмена данными. Лучше создавать сервер в том регионе, к которому вы ближе:
4) Настройте способ подключения к серверу. SSH-ключ — более безопасный и правильный подход, мы предпочитаем ссылаться на него в наших курсах.
DigitalOcean позволяет сохранять ключ, чтобы не копировать его каждый раз, когда вы создаете новый сервер:
5) В конце нужно нажать на кнопку Create и ждать. На создание сервера уходит пара минут. После этого можно подключиться к удаленному серверу, используя логин и SSH-ключ.
Yandex Cloud
В Yandex Cloud облачный сервер называется Compute Cloud. Чтобы создать его, необходимо перейти во вкладку Compute Cloud — «Виртуальные машины» — «Создать ВМ»:
Как создать сервер:
1) Задайте имя сервера. По желанию можно добавить ему описание и указать зону доступности — географическое расположение дата-центра, в котором будет находиться виртуальная машина:
После создания виртуальной машины, переместить ее в другую зону доступности не получится.
2) Выберите образ операционной системы. Здесь доступны те же варианты, что и у DigitalOcean, за исключением бэкапа: чистый образ ОС, docker-образ, готовые образы из магазина и загрузочный диск:
3) Настройте вычислительные мощности виртуальной машины. Можно выбрать минимальную гарантированную долю процессора. Если выбрать 50%, то половина мощностей процессора всегда будет использоваться только для вашей машины (удаленного рабочего места). Также можно сделать машину прерываемой – рабочее место можно будет отключить, тогда вам не придется платить за простой рабочего места. Это полезно в процессе обучения, когда не хочется платить много за машины:
4) Настройте доступ. Здесь можно загрузить SSH-ключ и задать имя пользователя. Ключ расположится в домашней директории пользователя, которого мы укажем в поле «Логин».
Если вы создавали пользователя вручную, необходимо скопировать ключ самостоятельно.
Как создать базы данных
Базы данных — важная часть работы с облачными провайдерами. Вы можете развернуть базу данных и на виртуальной машине. Но такой подход требует более глубокого понимания для грамотной поддержки.
Managed Database позволяет не задумываться о нюансах и сразу использовать нашу базу данных. Рассмотрим процесс создания базы данных PostgreSQL:
DigitalOcean
1) В DigitalOcean на странице проекта нажмите Create и выберите Database:
2) Выберите, какую базу данных хотим создать. Здесь же можно указать нужную нам версию:
3) Выберите мощность кластера с базой. Здесь же можно выбрать Standby nodes — это разные инстансы одной базы. В случае падения каких-то запросов они автоматически перенаправляются на другие ноды:
4) Выберите дата-центр, в котором разворачиваете базу данных, как с дроплетом — отталкивайтесь от ближайшего дата-центра:
5) Укажите название базы и нажмите кнопку «Create a Database Cluster». Далее DigitalOcean начинает разворачивать кластер, а вы продолжите его настраивать:
6) Выберите, откуда будет доступ к базе данных — от вашего IP или от других серверов:
На следующем шаге система показывает данные для подключения к базе данных. Сохранять их на этом этапе не обязательно, эти данные всегда можно получить на вкладке с продуктом.
Здесь создание базы данных со стороны пользователя заканчивается. На создание кластера у системы уходит еще немного времени:
Yandex Cloud
В облаке от Яндекса разные типы управления базами данных доступны во вкладке «Платформа данных». Рассмотрим пример получения сервиса Managed Service for PostgreSQL:
1) На странице сервиса выберите опцию «Создать кластер»:
2) Задайте имя для вашего кластера. По желанию можно заполнить описание.
Также выберите окружение:
- PRESTABLE позволяет получать обновления, в которых могут появляться новые функции и исправляться баги.
- PRODUCTION — для стабильных версий сервисов.
Еще на этом этапе выбираем версию:
3) Настройте класс хоста — это вычислительная мощность базы. Здесь есть готовые варианты. С их помощью можно гибко регулировать мощность базы данных.
Также здесь есть настройка гарантированной доли CPU. Она находится под вкладкой burstable:
4) Настройте размер базы. Здесь же можно выбрать тип диска: SSD или HDD. Они отличаются скоростью чтения и записи:
5) Настройте параметры подключения к базе данных: имя, логин и пароль. Про настройки локали можно подробнее почитать в документации. Их можно оставить по умолчанию:
6) Выберите сеть, в которой будет доступна ваша база данных. Чаще всего в процессе обучения не требуется более одной сети.
Здесь можно поменять зону доступности и сделать базу данных доступной из интернета. Если не сделать этого, то доступ к базе будет только с вашей виртуальной машины:
7) Выберите время начала резервного копирования, срок хранения резервных копий и окна обслуживания. Это важные настройки, если ваш кластер нужен для реального приложения.
Для обучения выбирайте время, когда вы обычно не занимаетесь. Обязательно воспользуйтесь опцией «Защита от удаления» — позволяет не удалить случайно кластер с базы данных.
Здесь есть и другие настройки, но в большинстве курсов они не понадобятся, поэтому не будем на них останавливаться.
Как создать балансировщик
Балансировщик распределяет трафик между виртуальными машинами в одной группе. Это важный элемент современных инфраструктур, который позволяет масштабировать приложение и выполнять zero-downtime deploy.
DigitalOcean
1) На DigitalOcean балансировщик создается во вкладках Network — Load Balancers:
2) Укажите название балансировщика:
3) Выберите серверы, с которых собираетесь перенаправлять трафик. В DigitalOcean можно использовать отдельные дроплеты, группы и лейблы:
4) В конце настройте правила перенаправления трафика — протоколы и порты:
При необходимости выставите расширенные настройки и нажмите «Create Load Balancer»:
Yandex Cloud
Балансировщик находится на вкладках «Инфраструктура и сеть» — Network Load Balancer:
1) Нажмите на кнопку «Создать сетевой балансировщик»:
2) Задайте имя и описание. При необходимости выберите зарезервированный адрес из списка и защиту от DDoS:
3) Добавьте обработчик — аналог правил в DigitalOcean:
4) Выберите группу машин. Если еще не создали, это можно сделать здесь же. После нажмите кнопку «Создать»:
Как создать хранилище файлов
Разберем, как создается хранилище файлов — виртуальная файловая система, которую можно подключать к нескольким виртуальным машинам из одной зоны доступности.
DigitalOcean
1) Для создания хранилища нам понадобится сервис Spaces для хранения файлов в DigitalOcean. Переходим на вкладку Manage — Spaces:
2) Выберите регион:
3) Задайте поддомен для хранилища. Здесь можно получить SSL-сертификат от DigitalOcean, либо загрузить свой при наличии:
4) Выберите политику просмотра файлов: разрешить всем или запретить. Доступ на скачивание и просмотры файлов можно задавать индивидуально при загрузке:
5) Задайте имя для вашего Space. Оно отображается в ссылке на хранилище:
Yandex Cloud
1) Перейдите на вкладку «Инфраструктура и сеть» и выберите Object Storage:
2) Нажмите кнопку «Создать бакет»:
3) Задайте имя, выберите лимит и настройте политики доступа. Также настройте «Класс хранилища»:
- Стандартное хранилище — предназначено для активной работы с объектами
- Холодное хранилище — предназначено для длительного хранения объектов с редкими запросами на чтение.
Чем еще можно заменить DigitalOcean
Облачные провайдеры активно развиваются в России, поэтому есть другие подходящие альтернативы DigitalOcean. Например, среди столь же мощных и простых сервисов можно отметить Selectel. Он уже обладает большим комьюнити и хорошей документацией.
А вот еще несколько отличных аналогов для российских пользователей:
- timeweb
- vk.cloud
- sber
- mts
- megafon
- 1cloud
На данный момент некоторые из них совершенно не подходят для прохождения курсов на Хекслете, но со временем это может измениться — рынок облачных провайдеров быстро развивается.
Выводы
Мы советуем пользоваться DigitalOcean, если есть возможность оплатить его не российской картой. Он давно используется в Хекслете, а простота и удобство работы позволяют пользователям без проблем с ним взаимодействовать.
Yandex Cloud — отличная альтернатива. Он ни в чем не проигрывает DigitalOcean, доступен всем пользователям в РФ и покроет ваши потребности при прохождении наших курсов.
Если вы выберете третью альтернативу, можете обратиться за помощью в Хекслет Коммьюнити.
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки