Привет, в этом посте я собираюсь показать вам шаг за шагом, как развернуть приложение Java Springboot к экземпляру AWS EC2 с новым Amazon Linux 2 AMI. Недавно я увидел, что AWS остановил свою оригинальную Amazon Linux AMI и испытывал трудности с поиском способа быстрого этого. Итак, в этом посте я собираюсь объединить шаги, которые я получил через сеть, и показать весь процесс создания простого приложения Spring Boot, нового экземпляра EC2, настройки вашего экземпляра, а затем развертывания вашего кода в качестве файла войны с Apache Tomcat.
Давайте начнем !
Вы можете скачать приложение Springboot с моего GitHub Repo и протестируйте его или быстро создайте собственное приложение Springboot
Сгенерировать приложение Springboot с помощью Spring initializr
Мы создадим наше приложение, используя Пружина инициализа Мы будем использовать проект Maven Java 8, а упаковка будет войной (архив веб -приложения). Также убедитесь, что вы выбираете Spring Web в качестве зависимости. Это должно выглядеть примерно так после базовой конфигурации. Давай Хит Хит Создать и извлечь файл ZIP.
Создайте контроллер REST для вашего приложения
Чтобы все было просто, у нас будет простая конечная точка, которая возвращает строку — «Привет, мир». Откройте незарегистрированное приложение с помощью Java IDE и создайте новый файл (наряду с вашим классом HelloworLdApplication в папке SRC/Main), который будет держать наш контроллер. Я вставил код для базового контроллера, который является точкой входа для HTTP -запроса. Мы создаем один класс с аннотацией RestController и будем указывать одну функцию в контроллере с аннотацией @GetMaping. Поэтому, когда мы отправляем запрос получить в http://localhost: 8080 , мы получили бы струнный ответ «Hello World»
package com.markbdsouza.helloworld.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class Controller { @GetMapping() public String fetchHelloWorld() { return "Hello World"; } }
Это так просто. Теперь, как только вы создали этот файл. Убедитесь, что вы делаете MVN Clean Install
В вашей командной строке и создайте свой проект. Это также создаст ваш файл войны, который мы в конечном итоге развернем в нашем экземпляре EC2.
Это скриншот структуры папок для справки.
Проверьте это на своей машине
После того, как ваше приложение будет запущено, вы можете проверить его локально, нажав на Localhost: 8080 в вашем браузере, чтобы увидеть «Hello World» на вашей веб -странице
Теперь, когда мы установили все это, и все работает нормально, давайте начнем развертывать его.
Создайте свой экземпляр
Создайте (если у вас нет) и войдите в свою учетную запись AWS. Обратите внимание, что если вы новичок в AWS и находитесь в течение первого года его использования, все это должно быть частью бесплатного уровня. Публикуйте, что вам будет взиматься незначительная плата. Поэтому, как только сделано с этим уроком, пожалуйста, прекратите все, что вы создаете на AWS.
После входа в систему введите EC2 в строке поиска служб AWS и откройте его. Служба EC2 в основном позволяет нам создавать и получать доступ к новым виртуальным машинам всего за несколько секунд. Эти машины называются экземплярами. Справа от вашего экрана вы также увидите, в каком регионе вы находитесь. (Примечание. Примечание: экземпляры, которые вы создаете, являются местными для вашего региона.)
Чтобы создать новый экземпляр на левой панели, нажмите на экземпляры> экземпляры. Это покажет вам случаи, которые у вас есть на вашем аккаунте. Нажмите на «экземпляры запуска» на главной странице, чтобы начать создавать новый экземпляр
Для AMI (Amazon Machine Image — в основном ОС и конфигурация экземпляра, который мы будем использовать) Выберите Amazon Linux 2 AMI по умолчанию и нажмите «Выбрать».
T2.micro является частью бесплатного уровня, выберите и нажмите Далее.
Продолжайте нажимать дальше до шага 6. Настройте группы безопасности
Группа безопасности решает, кто может получить доступ к вашему экземпляру. По умолчанию SSH 22 поможет нам подключиться к экземпляру из нашей системы. Вы можете изменить источник в любом месте, если не установлено. Здесь мы также добавим новую группу безопасности, чтобы получить доступ к порту 8080
- Тип: пользовательское правило TCP
- Протокол: TCP
- Ассортимент портов: 8080
- Источник: Куда угодно
После того, как это сделано, нажмите на просмотр и запустить
Убедитесь, что вы загружаете свою пару ключей и подчиняйте ее. Вы будете подключаться к своему экземпляру, используя уникальный файл .pem. Вы не сможете скачать это снова … И вы сделали !!
Для вашего экземпляра может потребоваться полминута, чтобы запустить полностью. Опять же, как только вы закончите провести собственное тестирование, убедитесь, что вы прекратили свой экземпляр с экрана EC2, чтобы избежать ненужных обвинений.
Подключитесь к экземпляру EC2
Используя файл PEM, теперь мы будем в нашем экземпляре. Что тебе понадобится
- Местоположение и имя пары ключей создали мой путь: C: \ users \ madsouza \ desktop \ aws \ helloworldkeypair.pem
- Общедоступный IP -адрес экземпляра, вы можете получить это от панели панели AWS EC2, нажав на экземпляр EC2 Для меня это 13.233.111.77
Используя файл .pem, теперь мы будем SSH в созданный экземпляр EC2, запустите команду ниже для SSH в ваш экземпляр EC2.
ssh -i C:\Users\madsouza\Desktop\AWS\HelloWorldKeyPair.pem ec2-user@13.233.111.77
где «EC2-User»-это пользователь, с которым мы будем войти в систему.
Примите любые подсказки, которые могут возникнуть, и вы должны быть подключены к вашему экземпляру
Установите Java
По умолчанию Java не установлена на Amazon Linux 2 AMI. Вы можете проверить это, делая —
java -version
Теперь, чтобы установить Java 8 на машину, идите вперед и нажмите —
sudo yum install java-1.8.0
Вас попросят подтвердить установку Всего за еще одну секунду или два Java установлена на вашем экземпляре EC2 Java -version
снова даст вам установленную версию Java
Для установки Java 11 вместо 8 используйте команду —
sudo amazon-linux-extras install java-openjdk11
Создайте пользователя и группу для Tomcat
Теперь перед установкой Tomcat, давайте создадим новую группу и пользователь —
sudo groupadd --system tomcat sudo useradd -d /usr/share/tomcat -r -s /bin/false -g tomcat tomcat
Подтвердить —
[ec2-user@ip-172-31-44-151 ~]$ getent passwd tomcat tomcat:x:995:993::/usr/share/tomcat:/bin/false [ec2-user@ip-172-31-44-151 ~]$ getent group tomcat tomcat:x:993:
Установите и запустите Apache Tomcat 9
На момент написания этого поста Tomcat9 находится на V9.0.41. Загрузите последнюю версию с помощью команды WGE —
export VER="9.0.41" wget https://archive.apache.org/dist/tomcat/tomcat-9/v${VER}/bin/apache-tomcat-${VER}.tar.gz
Теперь извлеките файл —
sudo tar xvf apache-tomcat-${VER}.tar.gz -C /usr/share/
Мы создадим ссылку на папку, чтобы сделать ее проще —
sudo ln -s /usr/share/apache-tomcat-$VER/ /usr/share/tomcat
Теперь нам нужно предоставить доступ к пользователю Tomcat, который мы создали —
sudo chown -R tomcat:tomcat /usr/share/tomcat sudo chown -R tomcat:tomcat /usr/share/apache-tomcat-$VER/
Вы можете подтвердить, что было сделано, перейдя в папку и отобразив файлы —
cd /usr/share ls -lrt
Теперь создайте сервис Tomcat Systemd —
sudo tee /etc/systemd/system/tomcat.service<
Сейчас время включить и начать нашу сервис Tomcat —
sudo systemctl daemon-reload sudo systemctl start tomcat sudo systemctl enable tomcat
Проверьте состояние вашего сервера Tomcat в любое время с помощью команды ниже —
[ec2-user@ip-172-31-44-151 share]$ systemctl status tomcat ● tomcat.service - Tomcat Server Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2020-12-27 13:50:01 UTC; 16s ago Main PID: 5903 (java) CGroup: /system.slice/tomcat.service └─5903 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties... Dec 27 13:50:01 ip-172-31-44-151.ap-south-1.compute.internal systemd[1]: Starting Tomcat Server... Dec 27 13:50:01 ip-172-31-44-151.ap-south-1.compute.internal systemd[1]: Started Tomcat Server.
Другие полезные команды, чтобы остановить и перезапустить Tomcat —
sudo systemctl stop tomcat sudo systemctl restart tomcat
Подтвердите из графического интерфейса что Tomcat работает
Tomcat по умолчанию работает на порту 8080. Так что теперь перейдите на экран сводного экран экземпляра AWS EC2 и получите свой общедоступный DNS IPv4 Для меня это http://ec2-13-233-111-77.ap-south-1.compute.amazonaws.com/ Чтобы получить доступ к вашему пользовательскому интерфейсу Tomcat добавить: 8080 к URL http://ec2-13-233-111-77.ap-south-1.compute.amazonaws.com:8080/ Вы должны увидеть, как это успешно загружено
Создать пользователя администратора Tomcat
Теперь нам нужно настроить Tomcat для пользователя администратора, чтобы мы могли загрузить наш файл войны.
sudo vim /usr/share/tomcat/conf/tomcat-users.xml
Это откроет XML-файл Tomcat-Users. Нажмите клавишу я
Чтобы ввести режим вставки. После открытия тега пройдите и вставьте ниже несколько строк и измените пароль.
После введенного нажатия Escape для выхода из вставки режима и введите WQ!
Обновление WebApps Manager
Нам также необходимо внести небольшое изменение в файл ниже, в противном случае вы можете увидеть ошибку 403/401, перемещающуюся на страницу администратора WebApps Tomcat.
sudo su vi /usr/share/tomcat/webapps/manager/META-INF/context.xml
Нажмите клавишу я
Чтобы ввести режим вставки. Затем прокомментируйте тег клапана в XML. Чтобы прокомментировать это, изменить ниже строку.
к
После введенного нажатия Escape для выхода из вставки режима и введите WQ!
чтобы сохранить и уйти.
Войти в менеджер WebApps
Вы можете перейти на страницу менеджера, используя Hyper Link Manager WebApp ‘на вашей домашней странице Tomcat Или вы можете добавить/менеджер/html в конце: 8080 В моем случае это было бы http://ec2-13-233-111-77.ap-south-1.compute.amazonaws.com:8080/manager/html При навигации вам будет предложено для имени пользователя и пароля. Это было бы — то же самое, что мы настроили ранее.
После входа вы увидите страницу своего менеджера.
Обновить минимальный размер войны (необязательно)
Если размер вашей войны превышает 50 МБ или вы предвидите, что она превышает 50 МБ, вам нужно будет внести незначительные изменения, чтобы обновить минимальный размер.
sudo su vi /usr/share/tomcat/webapps/manager/WEB-INF/web.xml
Пресс я
Чтобы попасть в режим вставки и обновить раздел ниже —
52428800 52428800 0
к —
262144000 262144000 0
Загрузите файл войны
Прокрутите вниз в раздел «Военный файл для развертывания» и загрузите свой файл .war. Это можно найти под целевой папкой вашего проекта. Выберите свой файл и нажмите «Развернуть». После развертывания вы увидите новое приложение в приложениях.
Проверьте свое приложение
Нажав на загрузку приложения или добавив имя файла войны до конца адреса, вы сможете http://ec2-13-233-111-77.ap-south-1.compute.amazonaws.com:8080/hello-world-0.0.1-SNAPSHOT/
Привет, мир !!!!
Там у вас есть это, почти не только вы создали собственное веб -приложение для Spring Boot и развернули его в своем экземпляре EC2.
Оригинал: «https://dev.to/markbdsouza/deploying-a-java-springboot-app-to-an-aws-amazon-linux-2-ec2-instance-1m1c»