Разверните два приложения весенней загрузки с общей базой данных в AWS (архитектура)

У меня есть два весенних загрузочных приложения с общей базой данных. Локально все работает идеально, я могу запускать файлы войны (встроенный tomcat) на портах 8080 и 8081.

Вопрос в том, как я могу запустить его на AWS?

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

Мое представление описано на картинке. Вероятно, впереди должен быть какой-то сплиттер (отмечен как ???X1) и какой-то контейнер для приложений (???Y1).

Пожалуйста, может кто-нибудь помочь мне здесь? Какое лучшее/самое простое/самое безопасное/лучшее решение по производительности.

Q2: Я не уверен, следует ли мне использовать встроенные коты для военных приложений.

заранее спасибо

картина архитектуры

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
181
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Запустите оба приложения на одном экземпляре Ec2 (экземпляр веб-сервера), используйте разные порты (80,81), запустите этот экземпляр Ec2 в общедоступной подсети.

Launch another Instance for your Database and keep that instance in Private Subnet. к этому экземпляру базы данных будет обращаться только экземпляр общедоступной подсети (экземпляр веб-сервера).

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

ИЛИ

Используйте Amazon RDS для своей базы данных, которая является управляемой и безопасной службой.

Я думаю, что RDS устарел ... и БД, которую я установил вручную, операции выполняются с помощью jpa/hibernate, так что я думаю, что все в порядке. Проблема в том, как сделать это HTTPS (SSL), возможно, перед ним должен быть какой-то балансировщик нагрузки или что-то в этом роде, чтобы направить запрос в правильное приложение. У меня нет проблем с подключением к БД.

jammin197 23.12.2020 20:47

@ jammin197 RDS не устарел! Amazon RDS — это правильный способ размещения базы данных на AWS. Вы все равно будете использовать jpa/hibernate для подключения к серверу RDS.

Mark B 23.12.2020 20:54

Спасибо. Теперь я не знаю, следует ли мне использовать эластичный бобовый стебель и развернуть war1, а затем war2 (как новый второй эластичный бобовый стебель). И оба они будут подключаться к третьей машине (серверу базы данных). Я прав? Или лучше запустить оба приложения в одном экземпляре и разделить базу данных? Тогда я должен создать балансировщик нагрузки вручную.... или использовать jboss/docker? Я действительно потерян. :/

jammin197 08.01.2021 17:55
Ответ принят как подходящий

«Разветвителем» в вашем образе будет балансировщик нагрузки приложений на AWS. Кроме того, в AWS ACM можно создавать бесплатные SSL-сертификаты, которые можно прикрепить к Application Load Balancer.

Другие вопросы по теме