Создание удалённого сервера

Наступил момент, когда код нужно «выкатывать в продакшн», то есть загружать его на публичный сервер, чтобы пользователи смогли получить круглосуточный доступ к вашему проекту.
Есть несколько вариантов, как опубликовать ваш код. Один из них — купить железо и поставить сервер у себя в гараже или на балконе.
image
В этом случае вам придётся самостоятельно настраивать сеть, заниматься безопасностью и поддержкой стабильности сервера. Если вы не хотите этого делать, есть и другой вариант: аренда сервера.
Компания-провайдер предоставит вам готовый сервер, который можно сконфигурировать под свои задачи за несколько минут. При этом его поддержкой, настройкой и безопасностью занимается владелец сервера, а не арендатор.
Вот несколько популярных облачных серверов:
  • DigitalOcean
  • Amazon Web Services
  • Google Compute Cloud
  • Яндекс.Облако (там вы и поработаете)

Яндекс.Облако: грант на обучение

Яндекс.Облако — платный сервис. Но есть и хорошие новости: всем новым пользователям он даёт «грант новичка»: 4 000 руб.
Студентам Яндекс.Практикум сервис предоставляет дополнительный грант: 4 000 руб. или 4 месяца работы в облаке.
Вы получите оба эти гранта. В сумме их будет достаточно для выполнения всех учебных работ и сдачи диплома, но не более того.
Средства с аккаунта списываются в зависимости от расхода серверных ресурсов: дискового пространства и процессорных мощностей.
Не расходуйте гранты попусту: они понадобятся вам не только на курсе по инфраструктуре, но и при работе над дипломом.
Будьте внимательны, следите за расходами: мы не сможем дать вам ещё один грант.
Обратитесь к своему куратору, он даст вам промокод для работы на сервисе Яндекс.Облако.

Создание аккаунта в Яндекс.Облаке

Зайдите на https://cloud.yandex.ru и залогиньтесь через свой аккаунт. После этого нажмите на ссылку Консоль:
image

Создание платёжного аккаунта

Для работы с Яндекс.Облаком создайте платёжный аккаунт. Перейдите в раздел Биллинг  и нажмите «Создать». В открывшемся окне укажите свои данные, информацию о карте и нажмите «Активировать».
Никаких списаний денег не будет, но указать карту необходимо: это техническое требование платформы.
Гранта должно хватить с запасом, если вы следуете программе курса. Вы можете проверять остаток лимитов в разделе Биллинг, а также останавливать созданную виртуальную машину, чтобы экономить деньги.
После окончания грантов у вас будет возможность остаться в Облаке или выбрать другой сервис.

Активация промокода

После создания платёжного аккаунта снова перейдите в раздел «Биллинг», на открывшейся странице кликните по своему аккаунту и в блоке «Гранты» щёлкните по кнопке «Активировать промокод».
image
Обратите внимание: если вы раньше, независимо от курса Практикума, получили и активировали собственный промокод в Яндекс.Облаке — наш промокод может не сработать, а система предложит вам перейти на платный сервис.
Ничего не платите и не переходите на платный аккаунт.
Обратитесь в техническую поддержку Яндекс.Облака, опишите проблему и сообщите, что вы студент Яндекс.Практикума. Техподдержка поможет вам активировать промокод на учебный грант.

Создание виртуальной машины

Виртуальная машина (виртуальный сервер) — это программный аналог аппаратного сервера. На одном «железном» сервере (компьютере) может работать несколько виртуальных машин, и каждая из них будет работать так, как будто она работает на отдельном компьютере.
Чтобы создать виртуальную машину, зайдите в консоль Яндекс.Облака.
Вам нужен сервис Compute Cloud. В левом меню нажмите на него:
image
Создайте виртуальную машину: нажмите на кнопку «Создать ВМ»:
image
Придумайте и укажите название проекта, а в качестве образа выберите Ubuntu 20.04 lts. В результате на вашу виртуальную машину будет установлена операционная система Linux Ubuntu, примерно так же, как на вашем персональном компьютере сейчас установлена операционная система Windows, MacOS или Linux.
image
Сетевые настройки, а также настройки дисков и вычислительных ресурсов оставьте по умолчанию. В блоке «Доступ» в поле «Логин» введите имя пользователя, по которому вы будете заходить на сервер, оно не зависит от вашего логина на Яндексе и может быть произвольным, но должно соответствовать правилам (наведите курсор на знак вопроса слева от поля).
В поле «SSH-ключ» вставьте ваш публичный SSH-ключ, который вы создали на прошлом уроке: запустите терминал и выведите на экран содержимое ключа командой cat ~/.ssh/id_rsa.pub в MacOS/Linux или /c/Users/USERNAME/.ssh/id_rsa.pub в Windows.
По этому ключу вы будете подключаться к своему серверу.
image
Теперь нажимайте кнопку «Создать BM».
Облаку понадобится какое-то время, чтобы создать машину по вашим настройкам. Примерно через минуту статус изменится на Running — это значит, что машина создана и запущена. Обратите внимание на публичный IP, он понадобится для удаленного подключения к серверу:
image
Подключаться к удалённому серверу вы уже умеете. Откройте терминал и по логину, который вы указали при создании виртуальной машины и по публичному IP подключитесь к своему серверу
Скопировать кодBASH
ssh your_login@pu.bl.ic.ip
Вам будет предложено сохранить «отпечаток сервера». Соглашайтесь, напечатайте yes
Скопировать кодBASH
The authenticity of host '84.201.161.196 (84.201.161.196)' can't be established. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Отлично! Вы на сервере.
Осмотритесь на сервере, введите несколько команд, например whoami (чтобы посмотреть информацию о пользователе) или pwd, побродите по директориям (cd) — и переходите к следующему уроку: там вы установите базовые настройки сервера и запустите на нём проект.