Рубрики
Uncategorized

Развертывание приложения Java Springboot в экземпляр AWS Amazon Linux 2 EC2

Привет, в этом посте я собираюсь показать вам шаг за шагом, как развернуть Java Springboot Applicati … Tagged с AWS, Java, DevOps, Springboot.

Привет, в этом посте я собираюсь показать вам шаг за шагом, как развернуть приложение 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, теперь мы будем в нашем экземпляре. Что тебе понадобится

  1. Местоположение и имя пары ключей создали мой путь: C: \ users \ madsouza \ desktop \ aws \ helloworldkeypair.pem
  2. Общедоступный 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»