Рубрики
Без рубрики

Как создать виртуальную машину AWS EC2

В этом посте вы узнаете, как легко создать виртуальную машину с помощью AWS EC2. Ты научишься… Помечено как учебное пособие, облако, java, aws.

В этом посте вы узнаете, как легко создать виртуальную машину с помощью AWS EC2. Вы изучите основы и в качестве примера развернете и запустите базовое приложение Spring Boot. Наслаждайтесь!

1. Вступление

Amazon EC2 (Elastic Compute Cloud) – один из самых популярных сервисов AWS. Это позволяет вам создавать экземпляры облачных вычислений в кратчайшие сроки. У вас есть выбор из предопределенных шаблонов (AMI) для нескольких операционных систем. Ценообразование зависит от того, какой цели должен служить экземпляр. Независимо от того, хотите ли вы, чтобы экземпляр работал непрерывно или только с запланированным интервалом, или вам нужен голый металл, или выделенный экземпляр и т.д. Для различных целей доступно множество опций. Кроме того, на выбор доступно множество различных конфигураций . Вам нужно будет выбрать правильный вариант для вашего приложения. На бесплатном уровне вы используете только микро-экземпляр. Вся эта информация доступна на веб-сайте Amazon, и поэтому предоставляются только ссылки на эти страницы. Предложения могут измениться, и вам следует обратиться к веб-сайту Amazon за подробной информацией.

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

Источники, использованные в этом блоге, доступны по адресу GitHub .

2. Ваш первый экземпляр EC2

Войдите в Консоль управления AWS и найдите службу EC2 . Это приведет вас к панели управления EC2/| . На скриншотах включен New EC2 Experience , поэтому на вашей стороне он может выглядеть немного иначе, если вы не включили этот новый макет.

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

Запускается мастер, который проведет вас через процесс создания. На шаге 1 вам нужно выбрать AMI. Вы выбираете Amazon Linux 2 AMI , который доступен на бесплатном уровне, нажав кнопку Выбрать .

На шаге 2 вам нужно выбрать Тип экземпляра в зависимости от ваших потребностей в отношении процессора, памяти, хранилища и пропускной способности сети. Находясь на Свободном уровне, выбор прост, потому что доступен только один тип экземпляра. Выберите t2.micro и нажмите кнопку Далее: кнопка Настроить сведения об экземпляре .

На шаге 3 у вас есть возможность настроить дополнительные элементы для вашего экземпляра, например, количество экземпляров, которые вы хотите создать. Оставьте значения по умолчанию и нажмите кнопку Далее: кнопка Добавить хранилище .

На шаге 4 вы можете настроить хранилище для вашего экземпляра EC2. Оставьте значения по умолчанию и нажмите кнопку Далее: Добавить теги .

На шаге 5 вы можете добавить теги. Вы можете добавить, например, Назовите тег, нажав на ссылку нажмите, чтобы добавить тег имени .

Назовите это Мой Первый экземпляр EC2 и нажмите кнопку Далее: кнопка Настроить группу безопасности .

На шаге 6 вам необходимо выбрать или настроить группу безопасности. Группа безопасности подобна брандмауэру перед вашим экземпляром EC2. Здесь у вас есть несколько вариантов, рекомендуется разрешать только тот трафик, который абсолютно необходим. В этом случае вы создадите новую группу безопасности My First SG для доступа по SSH с вашего компьютера. Перейти к Перейти к и заполните IPv4-адрес, за которым следует /32 в качестве источника вместо 0.0.0.0/0 . Нажмите кнопку Просмотреть и запустить

Наконец, на шаге 7 вы можете просмотреть все, и когда все будет в порядке, вы нажмете кнопку Launch кнопка.

Перед запуском отображается всплывающее окно, в котором нам нужно выбрать существующую пару ключей или создать новую. Это необходимо для доступа к экземпляру с помощью SSH-ключа. Создайте новую пару ключей Блог EC2 и загрузите пару ключей. На ваш компьютер загружается файл EC2 Blog.pem . Наконец, нажмите кнопку Запустить экземпляры .

Отобразится страница Статус запуска , нажмите кнопку Просмотр экземпляров .

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

3. SSH к экземпляру

Теперь, когда экземпляр EC2 запущен, вы действительно можете что-то с ним сделать. Давайте посмотрим, можете ли вы подключиться к экземпляру EC2 по SSH со своего компьютера (примечание: инструкции написаны для Linux). Откройте окно терминала из каталога, в котором вы сохранили пару ключей .pem файл. В консоли EC2 AWS вам понадобится Общедоступный IPv4-адрес вашего экземпляра, который расположен в правом верхнем углу Сведений страница.

В терминале вы вводите следующую команду, разумеется, с вашим общедоступным IP-адресом.

$ ssh -i EC2Blog.pem ec2-user@3.66.155.101
The authenticity of host '3.66.155.101 (3.66.155.101)' can't be established.
ECDSA key fingerprint is SHA256:/5EorRulTwyFKUJLfTvNPmUlHS9Mt1eTffPD4+9tcwU.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '3.66.155.101' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0664 for 'EC2Blog.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "EC2Blog.pem": bad permissions
ec2-user@3.66.155.101: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Хорошо, похоже, что что-то не так с разрешениями файла .pem . Давайте проверим права доступа к файлам.

$ ll EC2Blog.pem 
-rw-rw-r-- EC2Blog.pem

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

$ chmod 400 EC2Blog.pem
$ ll EC2Blog.pem 
-r-------- EC2Blog.pem

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

$ ssh -i EC2Blog.pem ec2-user@3.66.155.101

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-172-31-44-246 ~]$

Другой способ подключения по SSH – через консоль EC2. Выберите экземпляр и нажмите кнопку Подключиться .

Оставьте значения по умолчанию и нажмите кнопку Подключиться .

Однако вы не сможете подключиться, поскольку вы ограничили доступ по SSH только к IP-адресу вашего компьютера. Поэтому вам необходимо разрешить IP-адрес, с которого будет подключаться Instance Connect. Перейдите на страницу , где определены диапазоны IP-адресов Amazon, и выполните поиск EC2_INSTANCE_CONNECT для региона, в котором вы находитесь. Приведенный ниже IP-адрес предназначен для eu-central-1 (Франкфурт) регион.

{
  "ip_prefix": "3.120.181.40/29",
  "region": "eu-central-1",
  "service": "EC2_INSTANCE_CONNECT",
  "network_border_group": "eu-central-1"
}

Перейдите в раздел Группа безопасности (меню слева), выберите Группу безопасности, вкладку Входящие правила и нажмите кнопку Редактировать входящие правила .

Добавьте входящее правило SSH для IP-адреса и нажмите кнопку Кнопка Сохранить правила .

Повторите попытку подключения через экземпляр Connect, и у вас будет доступ к вашему экземпляру EC2.

4. Установить Java

Цель состоит в том, чтобы установить приложение Java Spring Boot в экземпляр EC2. Первое, что нужно сделать, это установить Java. Инструкции по установке можно найти на веб-сайте Amazon. Выполните следующую команду в терминале SSH.

$ sudo yum install java-11-amazon-corretto-headless

Проверьте, доступна ли Java.

$ java --version
openjdk 11.0.11 2021-04-20 LTS
OpenJDK Runtime Environment Corretto-11.0.11.9.1 (build 11.0.11+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.11.9.1 (build 11.0.11+9-LTS, mixed mode)

Проблема теперь заключается в том, что когда вы хотите запустить похожие экземпляры (щелкните правой кнопкой мыши экземпляр Изображение и шаблон – Запустите больше, как это ), вам нужно будет устанавливать Java для каждого нового экземпляра. Это можно решить, добавив пользовательские данные во время создания экземпляра.

Выйдите из терминала и завершите EC2 (выберите экземпляр, щелкните правой кнопкой мыши и выберите Завершить экземпляр ).

Создайте экземпляр снова, точно так же, как вы делали это раньше. Однако на шаге 3 вы прокручиваете страницу вниз до нижней части страницы и добавляете Пользовательские данные с установкой java в разделе Дополнительные сведения . Пользовательские данные будут выполняться от имени root, поэтому нет необходимости добавлять sudo перед командой. Кроме того, добавьте аргумент -y к команде yum , в противном случае установка завершится ошибкой, поскольку пользователю будет предложено продолжить установку.

На шаге 6 вы можете выбрать существующую группу безопасности My First SG . Также нет необходимости создавать новую пару ключей, просто выберите существующую EC2Blog .

Когда экземпляр будет запущен, подключитесь к нему по SSH. Остерегайтесь, что публичный IP-адрес изменился!

Проверьте, установлена ли Java. Когда что-то пошло не так, проверьте файл cloud-init-output.log . Это даст вам больше информации о любых ошибках, возникших во время запуска.

$ sudo cat /var/log/cloud-init-output.log

5. Создайте и установите приложение Spring Boot

Как Spring Boot Application , вы можете использовать его с простой конечной точкой Hello World.

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        String message = "Hello AWS!";
        try {
            InetAddress ip = InetAddress.getLocalHost();
            message += " From host: " + ip;
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
        return message;
    }

}

Выполните следующую команду, чтобы сгенерировать jar-файл.

$ mvn clean verify

Запустите приложение локально.

$ java -jar MyAWSPlanet-0.0.1-SNAPSHOT.jar

Проверьте, можете ли вы получить доступ к URL-адресу.

$ curl http://localhost:8080/hello
Hello AWS! From host: /127.0.1.1

Скопируйте файл jar в удаленный экземпляр EC2.

$ scp -i EC2Blog.pem MyAWSPlanet-0.0.1-SNAPSHOT.jar ec2-user@18.194.164.14:

Через SSH-соединение запустите приложение Spring Boot.

URL-адрес еще не будет доступен, поэтому вам необходимо добавить дополнительное входящее правило в группу безопасности. Поскольку приложение запущено на порту 8080, вы создаете пользовательское правило TCP для порта 8080, к которому можно получить доступ из любого места.

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

$ curl http://18.194.164.14:8080/hello
Hello AWS! From host: ip-172-31-36-30.eu-central-1.compute.internal/172.31.36.30

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

6. Вывод

В этом посте вы узнали, как создать и настроить экземпляр EC2 на Amazon. Это удивительно легко сделать. Вы также узнали, как получить доступ к удаленному экземпляру со своего ноутбука и как установить на него Java. Наконец, вы успешно запустили приложение Spring Boot и получили доступ к нему со своего компьютера. Все это было выполнено на Бесплатном уровне, так что вам это ничего не стоило!

Оригинал: “https://dev.to/mydeveloperplanet/how-to-create-an-aws-ec2-vm-aoc”