Подготовка облачных ресурсов
В этом разделе описана настройка ресурсов в облаке:
Создание виртуальной сети VPC
Для дальнейшей работы нужно создать виртуальную сеть VPC и подсети.
-
Войдите в консоль управления Advanced:
-
В списке сервисов выберите Virtual Private Cloud.
-
В правом верхнем углу экрана нажмите Create VPC.
-
Name — укажите название создаваемой виртуальной сети.
-
IPv4 CIDR Block — адресное пространство сети. В этой лабораторной работе указано «10.10.0.0/22».
-
Enterprise project — укажите проект или оставьте по умолчанию «default».
-
В разделе подсетей нажмите Add Subnet, чтобы добавить еще одну подсеть. Всего их получится две:
-
Подсеть для сервера, на котором будет запускаться тестовое приложение (front).
-
Подсеть для сервера, на котором будет запускаться SupaBase (back).
-
-
Нажмите Create Now.
Создание внешнего IP-адреса
-
Войдите в консоль управления Advanced:
-
В списке сервисов выберите Elastic IP.
-
В правом верхнем углу нажмите Assign EIP.
-
Billed By — выберите Traffic. Тарификация будет происходить по затраченному траффику.
-
Bandwidth — выберите скорость полосы пропускания. Для лабораторной работы подойдет 5 Мбит.
-
Bandwidth Name — укажите название полосы пропускания.
-
Enterprise Project — укажите проект или оставьте по умолчанию «default».
-
-
Нажмите Create Now.
Создание NAT Gateway
Так как серверам понадобится выход в интернет, необходимо создать NAT Gateway.
Для этого:
-
Войдите в консоль управления Advanced:
-
В списке сервисов выберите NAT Gateway.
-
В правом верхнем углу нажмите Create Public NAT Gateway.
-
Укажите параметры:
-
Name — укажите название для NAT Gateway.
-
VPC — выберите созданную виртуальную сеть.
-
Subnet — укажите подсеть для бэкенд-сервера. В ней также будет находиться кластер Kubernetes.
-
Type — Small.
-
Enterprise Project — укажите проект или оставьте по умолчанию «default».
-
-
Нажмите Create Now.
-
Проверьте параметры и нажмите Submit.
-
В открывшемся окне нажмите Add Rule.
-
Нажмите Add SNAT rule и укажите параметры:
-
Scenario — выберите VPC.
-
Subnet — выберите Existing и ниже выберите подсеть, созданную для backend-сервера.
-
EIP — выберите созданный на предыдущем шаге IP-адрес.
-
-
Нажмите OK.
-
Добавьте еще одно SNAT-правило для подсети фронтенд-сервера по аналогии с предыдущим.
Теперь серверы будут иметь доступ в интернет, но доступ к ним из интернета будет закрыт.
Создание групп безопасности
Группы безопасности (Security Group) выполняют роль межсетевого экрана для ресурсов. Она позволяют указать, какие подключения разрешены к ресурсам.
Для создания группы безопасности серверов SupaBase:
-
Войдите в консоль управления Advanced:
-
В списке сервисов выберите Virtual Private Cloud.
-
В левом меню выберите пункт Access Control → Security Groups.
-
В правом верхнем углу экрана нажмите Create Security Group.
-
Укажите параметры группы для backend-серверов:
-
Name — название группы.
-
Enterprise Project — укажите проект или оставьте по умолчанию «default».
-
Template — выберите Custom.
-
-
Нажмите OK.
-
Нажмите Manage Rule и перейдите на вкладку Inbound rules.
-
Нажмите Add Rule и создайте правило для порта:
-
Protocol & Port — TCP 3000.
-
Source — укажите 100.125.0.0/16 (это служебная сеть балансировщика нагрузки).
-
-
Нажмите Add rule и добавьте еще несколько правил:
Protocol
Port
Source
TCP
8000
100.125.0.0/16
TCP
8001
100.125.0.0/16
-
Сохраните результат, нажав OK.
Для создания группы безопасности для фронтенд-серверов приложения:
-
Войдите в консоль управления Advanced:
-
В списке сервисов выберите Virtual Private Cloud.
-
В левом меню выберите пункт Access Control → Security Groups.
-
В правом верхнем углу экрана нажмите Create Security Group.
-
Укажите параметры группы для фронтенд-сервера:
-
Name — название группы.
-
Enterprise Project — укажите проект или оставьте по умолчанию «default».
-
Template — выберите General-purpose web server.
-
-
Нажмите OK.
Создание серверов SupaBase
Для дальнейшей работы нужно создать два сервера, на которых будет развернут Docker Swarm и запущен Supabase.
-
Войдите в консоль управления Advanced:
-
В списке сервисов выберите Elastic Cloud Server.
-
Нажмите Create ECS.
-
Заполните параметры:
-
AZ — оставьте Random, так как в рамкой лабораторной работы это не принципиальный параметр.
-
Specifications — выберите любую виртуальную машину со спецификацией 2 vCPU и 4 ГиБ RAM.
-
Image — Ubuntu 20.04.
-
-
Нажмите Next: Configure Network и укажите параметры:
-
VPC — созданная ранее виртуальная сеть.
-
Subnet — подсеть, созданная для бэкенд-серверов SupaBase.
-
Security group — группа безопасности, созданная для серверов SupaBase.
-
EIP — Do not use.
-
-
В нижнем правом углу нажмите Next: Configure Advanced Settings и укажите параметры:
-
ECS Name — укажите название сервера.
-
Password и Confirm password — укажите пароль пользователя root.
-
-
Нажмите Next: Confirm, проверьте параметры и укажите:
-
Enterprise project — необходимый проект или default.
-
Create Quantity — 2 для создания двух виртуальных машин с выбранными характеристиками.
-
-
Нажмите Apply Now.
Создание сервера для приложений
Для создания сервера для тестового приложения:
-
Войдите в консоль управления Advanced:
-
В списке сервисов выберите Elastic Cloud Server.
-
Нажмите Create ECS.
-
Заполните параметры:
-
AZ — оставьте Random, так как в рамкой лабораторной работы это не принципиальный параметр.
-
Specifications — выберите любую виртуальную машину со спецификацией 2 vCPU и 4 ГиБ RAM.
-
Image — Ubuntu 20.04.
-
-
Нажмите Next: Configure Network и укажите параметры:
-
VPC — созданная ранее виртуальная сеть.
-
Subnet — подсеть, созданная для фронтенд-серверов тестового приложения.
-
Security group — группа безопасности, созданная для фронтенд-сервера.
-
EIP — Do not use.
-
-
Нажмите Next: Configure Advanced Settings и укажите параметры:
-
ECS Name — укажите название сервера.
-
Password и Confirm password — укажите пароль пользователя root.
-
-
Нажмите Next: Confirm, проверьте параметры и укажите:
-
Enterprise project — выберите необходимый проект или default.
-
Нажмите Apply Now.
Монтирование файловой системы к серверам SupaBase
Действия по монтированию файловой системы нужно выполнить на каждом из бэкенд-серверов.
-
Войдите в консоль управления Advanced:
-
В списке сервисов выберите Elastic Cloud Server.
-
Выберите первый бэкенд-сервер, созданный на шаге Создание серверов SupaBase и нажмите Remote login.
-
В консоли сервера введите:
-
Логин пользователя — root.
-
Пароль, который был указан при создании виртуальной машины
-
-
Нажмите Enter.
-
Выполните следующие команды. Для этого откройте командную строку, нажав в вверху экрана Paste & Send. Копируйте команды в консоль и нажимайте Send для отправки.
sudo apt-get install -y nfs-commonmkdir /mnt/sfs_turbo -
Нажмите Enter для выполнения команд.
-
Повторите все действия на втором бэкенд-сервере.
Создание Load Balancer
Так как SupaBase будет запущен на двух серверах, нужно создать балансировщик нагрузки (ELB) для публикации сервисов наружу:
-
Войдите в консоль управления Advanced:
-
В списке сервисов выберите Elastic Load Balance.
-
В правом верхнем углу нажмите Create Elastic Load Balancer.
-
Нажмите Create для Shared Load Balancer. Для лабораторной работы нет требований использовать выделенный балансировщик.
-
Укажите параметры:
-
VPC — виртуальная сеть, созданная ранее для backend-серверов Supabase.
-
Subnet — подсеть серверов SupaBase.
-
Name — название балансировщика.
-
Enterprise project — выберите необходимый проект или default.
-
-
Нажмите Create Now и затем Submit. Дождитесь создания балансировщика нагрузки.
-
Нажмите на его название.
-
В разделе Basic Information и скопируйте внешний IP-адрес в поле IP Address. Он понадобится для настройки SupaBase.
Подготовка сервисов завершена. Теперь перейдите к шагу развертывания SupaBase.
- Создание виртуальной сети VPC
- Создание внешнего IP-адреса
- Создание NAT Gateway
- Создание групп безопасности
- Создание серверов SupaBase
- Создание сервера для приложений
- Создание SFS File Share
- Монтирование файловой системы к серверам SupaBase
- Создание Load Balancer