Amazon Web Services

В данном разделе вы узнаете, как собрать приложение Jmix в виде исполняемого файла JAR и развернуть его в сервис AWS Elastic Beanstalk.

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

В качестве базы данных будет использоваться PostgreSQL.
Если вы хотите развернуть приложение лишь для тестирования или демонстрации, рассмотрите возможность использования Быстрого развертывания в AWS. Эта функция развернет и запустит ваше приложение вместе с базой данных на вновь созданном экземпляре EC2.

Развертывание исполняемого JAR-файла

Подготовка приложения

Поскольку сейчас у нас есть более одного подключения к БД (локальная разработка и AWS), нам нужно настроить дополнительный файл свойств, который будет содержать свойства подключения для среды AWS.

Для переключения между различными конфигурациями мы будем использовать Профили среды выполнения. В нашем случае имя профиля будет aws.

Создадим файл application-aws.properties в соответствии с правилами именования, описанными в документации Spring Boot.

В этом файле зададим свойства подключения к базе данных, используя переменные среды AWS Elastic Beanstalk:

  • RDS_HOSTNAME - внутреннее имя хоста базы данных, специфичное для Beanstalk

  • RDS_PORT - порт базы данных, выделенный Beanstalk

  • RDS_DB_NAME - имя базы данных

  • RDS_USERNAME - имя пользователя базы данных

  • RDS_PASSWORD - пароль к базе данных

Обратите внимание, что эти переменные должны быть указаны, если вы создаете БД с помощью Beanstalk. Если вы создали БД отдельно, используя RDS или другой сервис AWS, эти переменные могут быть вам не нужны.

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

  • server.port - по умолчанию должно быть установлено значение 5000. Вместо этого вы можете указать свойство среды Beanstalk SERVER_PORT, если хотите. Как настроить среду Beanstalk будет показано позже.

  • main.liquibase.enabled - если установлено значение true (по умолчанию), включает автоматическое выполнение скриптов миграции БД Liquibase при запуске приложения.

Итак, содержимое файла application-aws.properties может выглядеть следующим образом:

main.datasource.url = jdbc:postgresql://${RDS_HOSTNAME}:${RDS_PORT}/${RDS_DB_NAME}
main.datasource.username = ${RDS_USERNAME}
main.datasource.password = ${RDS_PASSWORD}
server.port=5000

Приложение готово, вы можете создать исполняемый файл JAR и перейти к следующему шагу.

Создание среды AWS

Войдите в консоль AWS и выберите Elastic Beanstalk из списка сервисов.

После этого создайте приложение, перейдя по соответствующей ссылке на главной странице Beanstalk. Введите информацию о заявке:

  • Application name - любое предпочитаемое вами имя.

  • Platform - Java. Выберите ветвь платформы в соответствии с вашими предпочтениями.

В разделе Application code выберите опцию Upload your code. В разделе Source code origin для опции Local file нажмите на кнопку Choose file и загрузите JAR вашего приложения. Обычно он находится в папке /build/libs.

Добавьте базу данных в среду, нажав на кнопку Configure more options. На странице конфигурации отредактируйте параметры БД:

aws ebs add database

Установите параметры базы данных, аналогичные показанным на рисунке:

aws rds parameters
Для тестовых сред рекомендуется установить Retention в Delete. Для производственных сред установите значение Create snapshot, чтобы избежать потери данных в случае случайного удаления приложения.

После создания БД необходимо указать профиль среды выполнения, чтобы обеспечить правильную конфигурацию приложения - aws. Для этого отредактируйте настройки Software на странице конфигурации среды:

aws ebs environment settings

В разделе Environment properties добавьте свойство SPRING_PROFILES_ACTIVE и установите для него значение aws:

aws ebs environment values

Сохраните все настройки и создайте приложение. Создание и запуск обычно занимают 5-10 минут.

Тестирование развертывания

Когда приложение будет создано и развернуто, откройте список сред и щелкните по соответствующей среде:

aws ebs app env list

На странице среды нажмите на ссылку Go to environment, чтобы открыть страницу развернутого приложения.

aws ebs app env page

Откроется страница приложения.

Дополнительная информация

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

Кроме того, может быть полезным руководство по развертыванию Java-приложений.