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. Вместо этого вы можете указать свойство среды BeanstalkSERVER_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. На странице конфигурации отредактируйте параметры БД:
Установите параметры базы данных, аналогичные показанным на рисунке:
Для тестовых сред рекомендуется установить Retention в Delete . Для производственных сред установите значение Create snapshot , чтобы избежать потери данных в случае случайного удаления приложения.
|
После создания БД необходимо указать профиль среды выполнения, чтобы обеспечить правильную конфигурацию приложения - aws
. Для этого отредактируйте настройки Software на странице конфигурации среды:
В разделе Environment properties добавьте свойство SPRING_PROFILES_ACTIVE
и установите для него значение aws
:
Сохраните все настройки и создайте приложение. Создание и запуск обычно занимают 5-10 минут.
Тестирование развертывания
Когда приложение будет создано и развернуто, откройте список сред и щелкните по соответствующей среде:
На странице среды нажмите на ссылку Go to environment, чтобы открыть страницу развернутого приложения.
Откроется страница приложения.
Дополнительная информация
Данный раздел основан на руководстве AWS, поэтому вы можете обратиться к нему за более подробной информацией.
Кроме того, может быть полезным руководство по развертыванию Java-приложений.