Перейти к содержанию

Запуск Glarus BI на AWS Elastic Beanstalk

Эта инструкция предназначена только для целей тестирования и не предназначена для использования в промышленной эксплуатации. Мы будем устанавливать один экземпляр Glarus BI со встроенной базой данных H2 и следующими компонентами:

  • регион (где будет существовать ваше приложение Glarus BI);
  • сеть (где ваше приложение будет находиться и при необходимости взаимодействовать с другими приложениями или серверами);
  • группа безопасности (брандмауэр);
  • балансировщик нагрузки (чтобы сделать это развёртывание надёжным в будущем, а также предоставить такие функции, как HTTPS или функции безопасности брандмауэра веб-приложений). Если вы хотите увидеть высокоуровневую архитектурную диаграмму того, что у вас получится нажмите здесь.

Если вам нужна надёжная, масштабируемая и полностью управляемая Glarus BI, обратите внимание на Glarus BI Cloud.

Быстрый запуск

Загрузите пакет Glarus BI, для использования его в Elastic Beanstalk.

Glarus BI предоставляет несколько предварительно настроенных URL для запуска Elastic Beanstalk, которые упростят начало работы. Откройте одну из ссылок ниже на новой вкладке, чтобы создать развёртывание Elastic Beanstalk с несколькими предварительно заданными конфигурациями. Затем просто следуйте пошаговым инструкциям для завершения установки.

Выберите свой регион в зависимости от близости ваших пользователей или если у вас есть строгие нормативные требования, которые не позволяют вам запускать и использовать сервера в других странах:

После нажатия любого URL запуска вы должны увидеть экран, который выглядит следующим образом:

Elastic Beanstalk First Screen

Шаг 1 — Создание приложения

Информация о приложении

Для начала нам нужно создать новое приложение. Вы можете задать название приложения, либо же использовать название по умолчанию.

Elastic Beanstalk Application Information

Информация о среде развёртывания

Здесь вы можете выбрать название среды и URL домена, который вы хотите использовать для своего экземпляра Glarus BI. Название среды — это просто метка, которую вы назначаете этому экземпляру Glarus BI.

Что касается URL домена, не стесняйтесь проявлять творческий подход — просто помните, что URL вашего экземпляра Glarus BI должен быть уникальным для всех развёртываний AWS Elastic Beanstalk, поэтому вам придётся выбрать такое название, которое ещё никто не использует. Мы часто рекомендуем задать название в формате mycompanyname-metabase. Если вам не нужен URL, вы можете просто оставить его для значения по умолчанию. Просто имейте в виду, что это нельзя будет изменить позже.

Elastic Beanstalk Environment Information

Платформа

Хотя большинство полей здесь будут предварительно заполнены, следуя приведённому выше URL запуска, вам нужно сделать две вещи:

  1. Убедитесь, что для параметра Платформа установлено значение Docker, в раскрывающемся списке веток платформы установлено значение Docker, на 64-разрядной версии Amazon Linux 2, а для версии платформы – та, которая имеет тег (Рекомендованный).
  2. Измените настройку Код приложения на Загрузить свой код.

Elastic Beanstalk Base Configuration

  • В разделе Исходный код нажмите кнопку Выбрать файл с выбранным значением Локальный файл и загрузите файл, который вы загрузили в самом начале этого руководства (metabase-aws-eb.zip ):

Elastic Beanstalk Base Configuration

Эти настройки запустят приложение Glarus BI, используя официальный образ Glarus BI Docker на Dockerhub.

Нажмите Просмотреть и запустить. Вы будете перенаправлены на страницу для настройки и запуска вашего экземпляра.

Шаг 2. Настройте базовую архитектуру Glarus BI

2.1 Включение расширенных проверок работоспособности

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

Нажмите ссылку «Изменить» в разделе «Балансировщик нагрузки», как показано здесь:

Elastic Beanstalk Monitoring

Выберите Application Load Balancer в разделе Тип балансировщика, если он ещё не выбран.

В разделе Процессы выберите процесс по умолчанию и нажмите Действия > Изменить.

Elastic Beanstalk Monitoring Process

Путь проверки работоспособности — это место, где балансировщик нагрузки будет опрашивать приложение, исправно ли оно. Установите этот путь в /api/health

Elastic Beanstalk Monitoring endpoint

После настройки этой проверки работоспособности вы можете нажать Сохранить внизу страницы.

2.2 Включение VPC

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

Вы должны настроить запуск своего приложения в VPC, иначе вы получите сообщение об ошибке при его создании, поскольку AWS больше не поддерживает запуск экземпляров за пределами VPC. Чтобы использовать VPC, перейдите в раздел Сеть в конфигурации и нажмите кнопку Изменить.

Elastic Beanstalk Network section

Оказавшись в конфигурации сети, вам нужно выбрать VPC, в котором будет запущено приложение. Если вы не создали VPC, AWS создаёт VPC «по умолчанию» для каждого региона, который вы можете использовать.

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

Elastic Beanstalk Networking configuration

После настройки зон для балансировщика нагрузки и приложения нажмите Сохранить внизу страницы.

2.3 Последний шаг и развёртывание

Теперь перейдите в раздел Capacity и нажмите Edit.

Elastic Beanstalk Networking configuration

Единственное изменение, которое вам нужно сделать здесь, это уменьшить количество экземпляров с 4 (число по умолчанию) до 1, так как мы ещё не создали централизованную базу данных, где Glarus BI будет сохранять все свои конфигурации. На данный момент будет использоваться только встроенная база данных H2, которая находится внутри контейнера Glarus BI и не рекомендуется для производственных рабочих нагрузок. Если ваш контейнер будет перезапущен по какой-либо причине, вы потеряете все свои данные. Если вы просто тестируете или изучаете Glarus BI, это нормально, но в противном случае стоит начать с создания отдельной базы данных RDS. Вы можете ознакомиться со статьёй о масштабировании (документация Metabase, англ.), в которой описано, как можно создавать высоконагруженные архитектуры.

Elastic Beanstalk Networking configuration

Теперь нажмите Сохранить в нижней части страницы, после чего, нажав на Создать приложение вы начнёте создание вашей среды исполнения.

Шаг 3. Подождите, пока запустится ваша установка

В зависимости от AWS это может занять до 10-15 минут. Каждый элемент вашей инсталляции инициализируется с помощью функции автоматизации инфраструктуры AWS под названием CloudFormation (вы можете увидеть подробный журнал активностей, если откроете CloudFormation на другой вкладке браузера).

Когда процесс завершится, вы должны увидеть:

ebcomplete

Чтобы открыть ваш экземпляр Glarus BI, просто щёлкните ссылку под названием вашей среды в верхнем левом углу (заканчивается на .elasticbeanstalk.com)

Теперь, когда вы установили Glarus BI, пришло время настроить её и подключить к базе данных.

Сведения об экземпляре

  • Тип экземпляра (блок Экземпляры) предназначен для выбора размера экземпляра AWS, который вы хотите запустить. Мы рекомендуем по крайней мере t3a.small для большинства случаев. Вы всегда можете масштабировать (документация Metabase, англ.), изменив эту конфигурацию.
  • Пара ключей EC2 (блок Безопасность) необходима только в том случае, если вы хотите напрямую подключиться к вашему экземпляру по SSH, что не рекомендуется.

Создание базы данных приложения в конфигурации Elastic Beanstalk (не рекомендуется)

Когда вы нажимаете кнопку Создать приложение, AWS Elastic Beanstalk создаёт шаблон CloudFormation. Этот шаблон означает, что база данных будет создана со стеком Elastic Beanstalk и удалена при удалении приложения.

Если вы хотите использовать базу данных уровня промышленной эксплуатации для сохранения всех метаданных, вам необходимо либо создать её в RDS, либо создать её на отдельном сервере, после чего подключить экземпляр(ы) Elastic Beanstalk через переменные среды.

Если вы хотите продолжить, то: найдите панель конфигурации Database, как показано ниже и нажмите кнопку Edit.

Elastic Beanstalk Database Configuration Options

На экране редактирования настроек базы данных вы сможете задать значения для разных параметров. Что касается индивидуальных настроек, мы рекомендуем:

  • Snapshot следует оставить Нет.
  • Engine должен быть установлен на postgres. Glarus BI также поддерживает MySQL/MariaDB в качестве резервных баз данных, но только на отдельно работающем RDS, подключенном через переменные среды. Попытка выполнить указанные здесь шаги и выбрать MySQL приведёт к ошибке.
  • Версию Engine можно просто оставить по умолчанию, это должна быть последняя версия.
  • Для Instance class вы можете выбрать любой размер, но мы рекомендуем db.t2.small или больше для производственной установки. Glarus BI довольно эффективна, поэтому нет необходимости использовать очень мощную машину.
  • Вы можете оставить Storage размер по умолчанию.
  • Выберите Имя пользователя и Пароль для своей базы данных. Мы предлагаем вам сохранить эти учётные данные в менеджере паролей, так как они могут быть полезны для резервного копирования или устранения неполадок. Эти настройки будут автоматически доступны для вашего экземпляра Glarus BI.
  • Вы можете оставить Настройку хранения в значении Создать резервную копию.
  • В разделе Доступность мы рекомендуем значение по умолчанию Низкая (одна зона доступности) для большинства случаев.

Elastic Beanstalk Database Settings

После того как вы ввели пароль и нажали Сохранить, появится сообщение о том, что в базе данных RDS должны быть выбраны как минимум 2 зоны доступности, поэтому вам придётся снова перейти к параметрам сети и выбрать как минимум 2 зоны. Мы рекомендуем использовать ту же зону доступности, в которой находится экземпляр, поскольку в противном случае с вас будет взиматься плата за трафик между зонами.

Разрешения

Если вы впервые создаёте приложение для Elastic Beanstalk, вам будет предложено создать новую роль IAM. Мы рекомендуем оставить эти параметры по умолчанию.

ebpermissions

Когда вы нажмёте Далее, в вашем браузере откроется новая вкладка, и вам будет предложено создать новую роль IAM для использования с Elastic Beanstalk. Опять же, просто примите значения по умолчанию и нажмите Разрешить внизу страницы.

ebiamrole

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

Чтобы настроить переменные среды для развёртывания Elastic Beanstalk (например, для подключения развёртывания к отдельной базе данных RDS), выберите ваш Glarus BI в Elastic Beanstak, перейдите в Конфигурация > Программное обеспечение и найдите Свойства среды внизу.

В разделе Свойства среды вы сможете установить или изменить переменные для настройки развёртывания вашей Glarus BI.

EB Environment Variables

Увеличение таймаута запроса

AWS Elastic Load Balancer использует таймаут по умолчанию в 60 секунд, в то время как Glarus BI поставляется с таймаутом в 10 минут для конфигурации nginx. Если запрос занимает больше 60 секунд, пользователь увидит сообщение об ошибке «Ваш запрос занял слишком много времени». Чтобы увеличить таймаут ELB для вашего приложения Metabase Elastic Beanstalk, выполните следующие действия:

  1. В AWS перейдите на страницу «EC2» и нажмите «Балансировщики нагрузки» в боковой навигации.
  2. Выберите балансировщик нагрузки для вашего приложения Metabase. Если у вас есть несколько балансировщиков нагрузки, поиск правильного может основываться на вашей настройке, но ваш может иметь «Тег» «elasticbeanstalk:environment-name», который равен «Metabase-env».
  3. В разделе «Атрибуты» для балансировщика нагрузки Glarus BI обратите внимание, что «Время простоя» установлено на «60 секунд».
  4. Нажмите «Изменить атрибуты» и установите «Время простоя» на желаемое значение. Пример: 600 даст вам таймаут в 10 минут.
  5. Нажмите «Сохранить».

Уведомления

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

Развёртывание новых версий Glarus BI на Elastic Beanstalk

Обновление до следующей версии Glarus BI — это очень простой процесс, при котором вы берёте последний опубликованный файл развёртывания Elastic Beanstalk из Glarus BI и загружаете его в список Версии приложения.

Вот пошаговая инструкция:

  • Перейдите в Elastic Beanstalk и выберите приложение Glarus BI.
  • Нажмите Версии приложения в левой навигационной панели (вы также можете выбрать Версии приложения в раскрывающемся списке в верхней части страницы).
  • Загрузите последний файл развёртывания Glarus BI Elastic Beanstalk:
  • Открытый код
  • Pro или Enterprise
  • Загрузите новую версию приложения:
  • Нажмите кнопку Загрузить в правом верхнем углу листинга.
  • Дайте новой версии имя, в идеале включающее номер версии Glarus BI (например, {{ site.latest_version }}).
  • Выберите Выбрать файл и перейдите к файлу, который вы только что загрузили.
  • Нажмите кнопку Загрузить, чтобы загрузить файл.
  • После завершения загрузки убедитесь, что новая версия отображается в списке версий приложения.
  • Разверните новую версию:
  • Установите флажок рядом с версией, которую вы хотите развернуть.
  • Нажмите кнопку Развернуть в правом верхнем углу страницы.
  • Выберите среду, в которой вы хотите развернуть версию, используя раскрывающийся список.
  • Нажмите кнопку Развернуть, чтобы начать развёртывание.
  • Дождитесь завершения всех действий по развёртыванию, затем проверьте развёртывание, обратившись к URL приложения Glarus BI.

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