Статьи

Как развернуть приложение Spring Boot на экземпляре AWS EC2

Привет друзья,

В этом руководстве мы увидим, как мы можем развернуть приложение Spring Boot поверх экземпляра AWS EC2.

Вот шаги, которые мы собираемся выполнить.

1. Создайте проект Spring Boot с помощью Spring Boot Initializer.
2. Создайте конечную точку отдыха, к которой мы можем получить доступ после развертывания.
3. Запустите инстанс EC2
4. Скопируйте наш проект Spring Boot с нашего локального компьютера в экземпляр EC2.
5. Подключитесь к экземпляру EC2, используя SSH
6. Удалите JDK 7 и установите JDK 8 поверх экземпляра EC2
7. Выполните опарник пружины на экземпляре EC2
8. Убедитесь, что ваша группа безопасности разрешает входящий трафик из Интернета через порт 8080 и по протоколу TCP
9. Протестируйте приложение, нажав URL-адрес конечной точки в браузере .


Итак, давайте посмотрим шаг за шагом ….

1. Создайте проект Spring Boot с инициализатором Spring Boot


Вы можете следовать одному из моих предыдущих руководств, где я объяснил шаг за шагом, как вы можете создать весенний загрузочный проект, используя Spring Initialiser. Здесь ссылка.

Как создать проект Spring Boot с помощью Spring Initialiser

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

2. Создайте конечную точку отдыха, к которой мы можем получить доступ после развертывания.

Добавьте следующую конечную точку Rest в проект. Мы добавляем эту очень базовую конечную точку, чтобы мы могли позже протестировать приложение, нажав эту конечную точку после развертывания.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
package com.blogspot.javasolutionsguide.springbootproject;
 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
/**
 * @author JavaSolutionsGuide
 *
 */
@RestController
@RequestMapping(value = "/api")
public class Hello {
 
@GetMapping(value = "/v1/data")
public String sayHelloWorld() {
 return "Hello JavaSolutionsGuide Readers";
}
}

3. Запустите экземпляр EC2

Я написал подробное пошаговое руководство, которое объясняет, как запустить экземпляр EC2 в AWS.

Вот ссылка. Как запустить экземпляр EC2 на AWS

4. Скопируйте наш проект Spring Boot с нашего локального компьютера в экземпляр EC2.

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

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

scp -i / Пользователи / Aakarsh / загрузки /
EC2Keypair.pem /Users/Aakarsh/Downloads/springbootproject/target/springbootproject-0.0.1-SNAPSHOT.jar ec2-user@ec2-54-242-53-241.compute-1.amazonaws.com: ~

Синтаксис scp выглядит следующим образом

scp -i <путь к файлу pem на локальном компьютере> <путь к проекту начальной загрузки или ваши результаты> user @ имя удаленного хоста: ~

УПП

Вы можете прочитать больше о SCP по следующей ссылке Secure Copy Protocol

Файл .pem

Когда вы запускаете экземпляр EC2 в AWS, вы указываете пару ключей. Вы можете указать существующую пару ключей или новую пару ключей, которые вы создаете при запуске. Во время загрузки EC2 содержимое открытого ключа помещается в экземпляр в запись в ~ / .ssh / авторизованные ключи. Чтобы войти в свой экземпляр, вы должны указать закрытый ключ (файл .pem) при подключении к экземпляру.

ec2 пользователь

обратите внимание, что каждый экземпляр Linux запускается с учетной записью пользователя системы Linux по умолчанию. Имя пользователя по умолчанию определяется API, который пользователь указал при запуске экземпляра. Для Amazon Linux 2 или Amazon Linux API имя пользователя — ec2-user.

Знак тильды (~)

~ представляет домашний каталог удаленной системы EC2.

5. Подключитесь к экземпляру EC2, используя SSH

   Для подключения к экземпляру EC2 необходимо выполнить следующие инструкции.

Эти инструкции вы получите, как только вы нажмете на экземпляры, а затем нажмите кнопку Подключиться на следующем экране

Вот как это выглядит, когда вы выполняете команды со своего терминала и подключаетесь к экземпляру ec2.

6. Удалите JDK 7 и установите JDK 8 поверх экземпляра EC2

Экземпляр EC2, который я получил от AMI, по умолчанию открывает jdk 7.

Мы также можем продолжить работу с JDK 7, но так как я сейчас использую JDK большую часть времени и скомпилировал свой проект только с jdk 8, я удалил JDK 7 и установил JDK 8.

Команда для удаления JDK 7

sudo yum удалить java-1.7.0-openjdk

Команда для установки JDK 8

sudo yum установить Java-1.8.0

7. Выполните опарник пружины на экземпляре EC2

Выполнить следующую команду

java -jar springbootproject-0.0.1-SNAPSHOT.jar

8. Убедитесь, что ваша группа безопасности разрешает входящий трафик из Интернета через порт 8080 и по протоколу TCP

Нажмите на экземпляр в консоли AWS и проверьте группу безопасности, связанную с вашим экземпляром.

Как мы можем видеть на скриншоте выше, группа безопасности, связанная с этим экземпляром EC2, является launch-wizard-1

Теперь, когда мы открываем эту группу безопасности, у меня есть следующая запись, которая, как вы можете видеть, разрешает трафик из Интернета через порт 22 только с использованием SSH. В результате именно поэтому мы смогли подключиться с помощью SSH с нашего компьютера к этому экземпляру EC2. Если мы удалим это правило отсюда, SSh не будет работать

Но теперь, когда мы хотим протестировать нашу конечную точку из браузера (интернета), используя протокол http, и наше приложение должно быть доступно через порт 8080. поэтому должно быть правило, соответствующее этому в группе безопасности.

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

Нажмите «Сохранить», и ваше новое правило будет сохранено. Также вам не нужно перезапускать свой экземпляр, чтобы применить этот эффект правила группы безопасности. Он вступит в силу немедленно, как только вы сохраните правило.

9. Протестируйте приложение, нажав URL-адрес конечной точки из браузера.

Нажмите следующий URL в вашем браузере

http://ec2-3-19-64-196.us-east-2.compute.amazonaws.com:8080/api/v1/data

Здесь ec2-3-19-64-196.us-east-2.compute.amazonaws.com является общедоступным DNS экземпляра EC2.

Итак, как вы можете видеть, мы можем видеть ответ от нашей конечной точки успешно, что означает, что springbootproject успешно развернут и работает как ожидалось.

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

Опубликовано на Java Code Geeks с разрешения Гаурава Бхардваджа, партнера нашей программы JCG . См. Оригинальную статью здесь: Как развернуть приложение Spring Boot на экземпляре AWS EC2

Мнения, высказанные участниками Java Code Geeks, являются их собственными.