Подготовка облачных ресурсов

В этом разделе описана настройка ресурсов в облаке:

Создание виртуальной сети VPC

Для дальнейшей работы нужно создать виртуальную сеть VPC и подсети.

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Network → Virtual Private Cloud.

  4. В правом верхнем углу экрана нажмите Create VPC.

  5. Name — укажите название создаваемой виртуальной сети.

  6. IPv4 CIDR Block — адресное пространство сети. В этой лабораторной работе указано «10.10.0.0/22».

  7. Enterprise project — укажите проект или оставьте по умолчанию «default».

  8. В разделе подсетей нажмите Add Subnet, чтобы добавить еще одну подсеть. Всего их получится две:

    • Подсеть для сервера, на котором будет запускаться тестовое приложение (front).

    • Подсеть для сервера, на котором будет запускаться SupaBase (back).

    ../../_images/s__supabase__create-subnets.png
  9. Нажмите Create Now.

Создание внешнего IP-адреса

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Перейдите в раздел Network → Elastic IP.

  4. В правом верхнем углу нажмите Assign EIP.

    • Billed By — выберите Traffic. Тарификация будет происходить по затраченному траффику.

    • Bandwidth — выберите скорость полосы пропускания. Для лабораторной работы подойдет 5 Мбит.

    • Bandwidth Name — укажите название полосы пропускания.

    • Enterprise Project — укажите проект или оставьте по умолчанию «default».

  5. Нажмите Create Now.

Создание NAT Gateway

Так как серверам понадобится выход в интернет, необходимо создать NAT Gateway.

Для этого:

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Network → NAT Gateway.

  4. В правом верхнем углу нажмите Create Public NAT Gateway.

  5. Укажите параметры:

    • Name — укажите название для NAT Gateway.

    • VPC — выберите созданную виртуальную сеть.

    • Subnet — укажите подсеть для бэкенд-сервера. В ней также будет находиться кластер Kubernetes.

    • TypeSmall.

    • Enterprise Project — укажите проект или оставьте по умолчанию «default».

  6. Нажмите Create Now.

  7. Проверьте параметры и нажмите Submit.

  8. В открывшемся окне нажмите Add Rule.

  9. Нажмите Add SNAT rule и укажите параметры:

    • Scenario — выберите VPC.

    • Subnet — выберите Existing и ниже выберите подсеть, созданную для backend-сервера.

    • EIP — выберите созданный на предыдущем шаге IP-адрес.

    ../../_images/s__supabase__snat-rule.png
  10. Нажмите OK.

  11. Добавьте еще одно SNAT-правило для подсети фронтенд-сервера по аналогии с предыдущим.

Теперь серверы будут иметь доступ в интернет, но доступ к ним из интернета будет закрыт.

Создание групп безопасности

Группы безопасности (Security Group) выполняют роль межсетевого экрана для ресурсов. Она позволяют указать, какие подключения разрешены к ресурсам.

Для создания группы безопасности серверов SupaBase:

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Network → Virtual Private Cloud.

  4. В левом меню выберите пункт Access Control → Security Groups.

  5. В правом верхнем углу экрана нажмите Create Security Group.

  6. Укажите параметры группы для backend-серверов:

    • Name — название группы.

    • Enterprise Project — укажите проект или оставьте по умолчанию «default».

    • Template — выберите Custom.

  7. Нажмите OK.

  8. Нажмите Manage Rule и перейдите на вкладку Inbound rules.

  9. Нажмите Add Rule и создайте правило для порта:

    • Protocol & Port — TCP 3000.

    • Source — укажите 100.125.0.0/16 (это служебная сеть балансировщика нагрузки).

  10. Нажмите Add rule и добавьте еще несколько правил:

    Protocol

    Port

    Source

    TCP

    8000

    100.125.0.0/16

    TCP

    8001

    100.125.0.0/16

    ../../_images/s__supabase__sg-rules.png
  11. Сохраните результат, нажав OK.

Для создания группы безопасности для фронтенд-серверов приложения:

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Network → Virtual Private Cloud.

  4. В левом меню выберите пункт Access Control → Security Groups.

  5. В правом верхнем углу экрана нажмите Create Security Group.

  6. Укажите параметры группы для фронтенд-сервера:

    • Name — название группы.

    • Enterprise Project — укажите проект или оставьте по умолчанию «default».

    • Template — выберите General-purpose web server.

  7. Нажмите OK.

Создание серверов SupaBase

Для дальнейшей работы нужно создать два сервера, на которых будет развернут Docker Swarm и запущен Supabase.

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Computing → Elastic Cloud Server.

  4. Нажмите Create ECS.

  5. Заполните параметры:

    • AZ — оставьте Random, так как в рамкой лабораторной работы это не принципиальный параметр.

    • Specifications — выберите любую виртуальную машину со спецификацией 2 vCPU и 4 ГиБ RAM.

    • ImageUbuntu 20.04.

  6. Нажмите Next: Configure Network и укажите параметры:

    • VPC — созданная ранее виртуальная сеть.

    • Subnet — подсеть, созданная для бэкенд-серверов SupaBase.

    • Security group — группа безопасности, созданная для серверов SupaBase.

    • EIPDo not use.

  7. В нижнем правом углу нажмите Next: Configure Advanced Settings и укажите параметры:

    • ECS Name — укажите название сервера.

    • Password и Confirm password — укажите пароль пользователя root.

  8. Нажмите Next: Confirm, проверьте параметры и укажите:

    • Enterprise project — необходимый проект или default.

    • Create Quantity2 для создания двух виртуальных машин с выбранными характеристиками.

  9. Нажмите Apply Now.

Создание сервера для приложений

Для создания сервера для тестового приложения:

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Computing → Elastic Cloud Server.

  4. Нажмите Create ECS.

  5. Заполните параметры:

    • AZ — оставьте Random, так как в рамкой лабораторной работы это не принципиальный параметр.

    • Specifications — выберите любую виртуальную машину со спецификацией 2 vCPU и 4 ГиБ RAM.

    • ImageUbuntu 20.04.

  6. Нажмите Next: Configure Network и укажите параметры:

    • VPC — созданная ранее виртуальная сеть.

    • Subnet — подсеть, созданная для фронтенд-серверов тестового приложения.

    • Security group — группа безопасности, созданная для фронтенд-сервера.

    • EIPDo not use.

  7. Нажмите Next: Configure Advanced Settings и укажите параметры:

    • ECS Name — укажите название сервера.

    • Password и Confirm password — укажите пароль пользователя root.

  8. Нажмите Next: Confirm, проверьте параметры и укажите:

  9. Enterprise project — выберите необходимый проект или default.

  10. Нажмите Apply Now.

Создание SFS File Share

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

Благодаря файловому хранилищу вся конфигурация сохранится, если контейнер перезапустится или переедет на другую виртуальную машину.

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Storage → Scalable File Service → SFS Turbo.

  4. Нажмите Create File System и укажите параметры:

    • Storage ClassStandard.

    • VPC — сеть и подсеть, созданные для backend-серверов SupaBase.

    • Security group — группа безопасности, созданная ранее.

    • Enterprise project — выберите необходимый проект или default.

    • Name — название файлового хранилища.

  5. Нажмите Create Now и затем нажмите Submit.

  6. Вернитесь к списку файловых хранилищ, нажав Back to file system list.

  7. Нажмите на название созданной файловой системы и в поле Command Line скопируйте команду для монтирования файловой системы к серверу.

Монтирование файловой системы к серверам SupaBase

Действия по монтированию файловой системы нужно выполнить на каждом из бэкенд-серверов.

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Computing → Elastic Cloud Server.

  4. Выберите первый бэкенд-сервер, созданный на шаге Создание серверов SupaBase и нажмите Remote login.

  5. В консоли сервера введите:

    • Логин пользователя — root.

    • Пароль, который был указан при создании виртуальной машины

  6. Нажмите Enter.

  7. Выполните следующие команды. Для этого откройте командную строку, нажав в вверху экрана Paste & Send. Копируйте команды в консоль и нажимайте Send для отправки.

    sudo apt-get install -y nfs-common
    mkdir /mnt/sfs_turbo
    
  8. Нажмите Enter для выполнения команд.

  9. Повторите все действия на втором бэкенд-сервере.

Создание Load Balancer

Так как SupaBase будет запущен на двух серверах, нужно создать балансировщик нагрузки (ELB) для публикации сервисов наружу:

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Network → Elastic Load Balance.

  4. В правом верхнем углу нажмите Create Elastic Load Balancer.

  5. Нажмите Create для Shared Load Balancer. Для лабораторной работы нет требований использовать выделенный балансировщик.

  6. Укажите параметры:

    • VPC — виртуальная сеть, созданная ранее для backend-серверов Supabase.

    • Subnet — подсеть серверов SupaBase.

    • Name — название балансировщика.

    • Enterprise project — выберите необходимый проект или default.

  7. Нажмите Create Now и затем Submit. Дождитесь создания балансировщика нагрузки.

  8. Нажмите на его название.

  9. В разделе Basic Information и скопируйте внешний IP-адрес в поле IP Address. Он понадобится для настройки SupaBase.

Подготовка сервисов завершена. Теперь перейдите к шагу развертывания SupaBase.

Запустили Evolution free tier
для Dev & Test
Получить