Быстрое развертывание в облаке

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

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

Необходимые условия

В настоящее время в качестве основного хранилища данных поддерживается только PostgreSQL. Studio настраивает его автоматически в сгенерированном файле docker-compose. Если в вашем проекте используются дополнительные хранилища данных, вы можете настроить их в docker-compose вручную.

Ваше приложение также должно использовать стандартный порт 8080. Это требование будет удалено в будущем релизе.

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

  1. Создайте учетную запись AWS и убедитесь, что у вас есть доступ к консоли AWS.

  2. Установите Docker и убедитесь, что Docker CLI доступен. Следующая команда терминала должна отображать информацию о клиенте Docker:

    docker info
  3. Установите плагин Docker в свою IDE и включите его.

Первоначальное развертывание

  1. В окне инструментов Jmix выберите узел Deployment и Quick Cloud Deployment в его контекстном меню. Если все условия соблюдены, вы увидите следующий диалог:

    quick deployment 1
  2. Нажмите кнопку Choose, чтобы выбрать или создать файл docker-compose. Появится диалоговое окно Choose Docker-Compose. Если в проекте нет подходящего файла, поле в диалоге будет пустым:

    quick deployment 2
  3. Нажмите кнопку «плюс» в поле. Появится диалоговое окно Docker Compose Services. Оно должно содержать две службы: Jmix App и Postgres. Служба Jmix App должна иметь Postgres в поле Depends on:

    quick deployment 3
  4. Нажмите ОК в окне Docker Compose Services, чтобы сохранить сгенерированный файл docker-compose.yaml. Путь к файлу будет установлен в поле в диалоговом окне Choose Docker-Compose. Нажмите кнопку ОК, чтобы выбрать данный файл для быстрого развертывания.

  5. Нажмите кнопку Start Deployment в диалоговом окне Quick Cloud Deployment. Появится диалоговое окно Create AWS Deployment Configuration:

    quick deployment 4
  6. В выпадающем списке Server выберите Create new. Появится диалоговое окно AWS EC2 Instance:

    quick deployment 5
  7. Выберите желаемый регион и тип экземпляра. Предоставьте свои учетные данные AWS: вы можете ввести их непосредственно в диалоговом окне или настроить профиль AWS CLI на своем компьютере.

  8. Нажмите ОК, чтобы сохранить настройки экземпляра. Затем нажмите Run в диалоговом окне Create AWS Deployment Configuration.

  9. Откроется окно инструментов Services, и начнется развертывание. Процесс развертывания создает экземпляр EC2, подключается к нему по SSH и устанавливает Docker. Затем он создает образ приложения и запускает docker-compose на экземпляре EC2.

    Вы можете наблюдать за статусом развертывания в выводе узла AWS EC2 Instance → AWS EC2 via Docker-compose.

    quick deployment 6

    ⓵ - Общий статус развертывания. Обратите внимание, что сообщение 'AWS EC2 via Docker-compose' has been deployed successfully не означает, что приложение уже доступно по указанному URL. Загляните в журнал приложения ⓶, чтобы увидеть запуск приложения.

    ⓶ - Журнал контейнера приложения.

    ⓷ - Журнал контейнера PostgreSQL.

  10. Чтобы открыть веб-интерфейс приложения в браузере, кликните правой кнопкой мыши на узле Deployment → Servers → AWS → AWS EC2 Instance в окне инструментов Jmix и используйте действие контекстного меню Open Application in Browser.

Повторное развертывание

Чтобы пересобрать и повторно развернуть приложение на том же облачном сервере, запустите конфигурацию запуска AWS EC2 Instance Deployment, созданную во время первоначального развертывания.

При повторном развертывании все данные, хранящиеся в базе данных и файловом хранилище, будут сохранены благодаря сопоставлениям томов, определенным в docker-compose.yaml. Данные фактически хранятся вне контейнеров в файловой системе экземпляра EC2.

Чтобы обновить отображение журналов контейнеров в окне инструментов Services, откройте контекстное меню узла докера AWS EC2 Docker <instance-id> и выполните сначала команду Disconnect, а затем Connect.

Обслуживание

Вы можете подключиться к работающему экземпляру EC2 через SSH. Чтобы получить необходимую для этого команду терминала, выберите узел Deployment → Servers → AWS → AWS EC2 Instance в окне инструментов Jmix и нажмите Connect to Server в его контекстном меню. Скопируйте предоставленный текст команды и запустите его в своем терминале.

Чтобы остановить экземпляр EC2, или полностью удалить его, используйте соответствующие действия в контекстном меню узла Deployment → Servers → AWS → AWS EC2 Instance.

Команда Terminate полностью удаляет экземпляр сервера, поэтому все данные приложения будут потеряны.