Запуск общедоступного узла Tezos в облаке AWS

Введение

Запуск узла Tezos на вашем локальном компьютере становится довольно простым с помощью скрипта оболочки. Но что, если вы хотите запустить узел, устойчивый к сбоям, способный масштабироваться для приема большего количества запросов, и вам не нужно управлять ими вручную. Возможно, в таком случае, вам стоит подумать о развертывании узла в облаке.

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

В этом руководстве вы шаг за шагом проведете процесс развертывания общедоступного узла тестовой сети. Мы предоставим сценарии и инструменты, которые значительно упростят этот процесс. Предполагается, что у вас практически нет предыдущего опыта работы с AWS, но вам удобно работать с git.

Это руководство предназначено для более продвинутых пользователей, которые заинтересованы в размещении кластера узлов, способных обрабатывать сотни общедоступных запросов.

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

Веб-сервисы Amazon

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

Что такое CloudFormation

Выделение ресурсов и настройка параметров в AWS может стать утомительной и трудной задачей. Если что-то пойдет не так или вы захотите что-то изменить, вам, возможно, придется все снести и начать с нуля.

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

Ориентировочная стоимость:

AWS предлагает несколько способов взимания платы за свои услуги. В этом руководстве мы используем метод «всегда включен», но при желании его можно изменить в предоставленных сценариях CloudFormation.

Обычно следует запускать 2 узла, чтобы в случае отказа одного из них балансировщик нагрузки мог указывать на другой. Мы предлагаем вам запустить i3.large ec2s. Цены устанавливаются по-разному от региона к региону. Найдите цену за час для региона, в котором вы хотите развернуться, и умножьте стоимость на постоянное время безотказной работы, составляющее примерно 730 часов в месяц, и на количество узлов, которые вы планируете запускать. Балансировщик нагрузки будет стоить дополнительно примерно 20 долларов в месяц. Кроме того, если вы запустите собственное средство обновления, у вас будет третий i3.large EC2.

Со средством обновления = $(3 * [price of i3.large EC2 in your region] * 730) + 20

Без него = $(2 * [price of i3.large EC2 in your region] * 730) + 20

Разветвление и кастомизация исходных репозиториев

Вы можете прочитать о различных сетях Tezos здесь и выбрать ту, которая соответствует вашим потребностям. В этом руководстве мы будем развертывать узел тестовой сети, но вы также можете развернуть узлы основной сети или нулевой сети (zeronet).

Образы Tezos Docker

Tezos выпускает образы Docker для каждой из сетей, поддерживая, как всегда, актуальную версию, а также индивидуальные версии. Вы можете найти тот, который вам нравится, в Docker Hub.

  • Основная сеть будет иметь префикс "master"

  • Тестовая сеть будет названа в соответствии с самым последним существующим протоколом testnet. На момент написания перед ним стоит префикс "babylonnet".

  • Нулевая сеть будет иметь префикс "zeronet". Это узел, который следует привязать к образу конкретной версии выпуска, поскольку в нем часто бывают критические изменения.

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

Репозитории ресурсов

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

Перед тем, как начать, вам следует разветвить эти репозитории и настроить их.

Клонируйте вилку node-cloudformation на локальный компьютер, чтобы иметь доступ к скриптам CloudFormation. Вы можете изучить файлы yaml, и везде, где есть ссылка на учетную запись tqtezos или репозитории github, вам следует изменить эти ссылки на свои собственные вилки.

Выберите образ Docker и обновите его соответственно

Репозитории node-docker и tezos-updater имеют три ветки на выбор: mainnet, testnet и zeronet. Эти ветки используют автоматически обновляемый образ докера (см. «Образы Tezos Docker» выше), и если вы хотите закрепить версию выпуска, которую вы используете при развертывании, вам необходимо изменить файл Dockerfile в соответствующей ветке в обоих репозиториях. Версии закрепленных изображений нужно будет отслеживать и обновлять вручную, но их будет легче контролировать.

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

Материалы разработаны TQ Tezos переведены на русский язык Tezos Ukraine

Last updated