AWS CLI EC2 Учебное пособие

Промышленная революция принесла нам уровень богатства, который казался немыслимым для наших предков, и все это благодаря феномену, известному как экономия на масштабе.

Фабрики ИКЕА могут откачивать столы намного быстрее, чем индивидуальное строительство их вручную. В том же смысле мы можем получить больше вычислительных ресурсов (то есть сервер с лучшими характеристиками) по той же цене, используя инфраструктуру технологических гигантов вместо того, чтобы покупать оборудование самостоятельно.

Текущими мировыми лидерами в области облачных вычислений являются Amazon Web Services (AWS), за которыми следует Microsoft Azure, а затем Google Cloud Platform.

В этой статье мы создадим экземпляр AWS EC2 в облаке.

Установка

Если вы еще этого не сделали, вам нужно установить интерфейс командной строки AWS (CLI).



Установка должна уже добавить C:\Program Files\Amazon\AWSCLI\bin\ в вашу PATH переменную. Попробуйте запустить aws --version, если он возвращает значение, ваша установка прошла успешно. Если у вас возникнут проблемы, попробуйте открыть новую оболочку.

Настроить интерфейс командной строки AWS

Идентификатор ключа доступа AWS и секретный ключ доступа AWS

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

Название региона по умолчанию

Если вы выберете us-east-2 в качестве региона по умолчанию, тогда все команды будут выполнять вызовы API в центры обработки данных в этом регионе, если не указано иное.

Если вы не знаете названия своего региона, вы можете указать их, введя следующую строку.

aws ec2 describe-regions --output table

Формат вывода по умолчанию

Вывод aws команд может быть в формате json (по умолчанию), в текстовом или табличном формате.

Группа безопасности

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

aws ec2 create-security-group --group-name example --description "this is an example"

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

Значение диапазона CIDR соответствует диапазону IP-адресов, к которым разрешен доступ к вашему экземпляру. Значение всех 0 означает, что любой компьютер, подключенный к Интернету, может получить доступ к вашему экземпляру. Теоретически, если кто-то завладеет вашим SSH-ключом, он может попасть на вашу виртуальную машину. Для большей безопасности замените 0.0.0.0/0 диапазоном IP-адресов, которые вы будете использовать для подключения к вашему экземпляру.

Как минимум, нам нужно открыть порт 22 (протокол SSH), чтобы вы могли подключиться к своему экземпляру.

aws ec2 authorize-security-group-ingress --group-name example --protocol tcp --port 22 --cidr 0.0.0.0/0

Ключевая пара

В следующей строке создается 2048-битная пара ключей RSA с указанным именем. Команда aws ec2 сохраняет открытый ключ и выводит закрытый ключ для сохранения в файл. Файл .pem будет передан в качестве аргумента при подключении к вашему экземпляру.

aws ec2 create-key-pair --key-name test-key --query 'KeyMaterial' --output text > test-key.pem

В командной строке Windows используйте двойные кавычки вместо одинарных.

Примечание. Убедитесь, что вы используете командную строку Windows, а не Powershell, поскольку могут возникнуть проблемы.

Образ машины Amazon

Если у вас есть опыт работы с виртуальными машинами, вы знаете, что для них требуется образ. Экземпляр EC2 ничем не отличается. При создании экземпляра EC2 из командной строки мы указываем операционную систему, используя идентификатор образа машины amazon (AMI).

В этом руководстве мы будем использовать Amazon Linux 2 AMI , однако на самом деле их довольно много на уровне бесплатного пользования.

Чтобы получить идентификатор изображения, соответствующий Amazon Linux 2 AMI, запустите следующий код.

aws ec2 describe-images --owners amazon --filters 'Name=name,Values=amzn2-ami-hvm-2.0.????????-x86_64-gp2' 'Name=state,Values=available' --output json | jq -r '.Images | sort_by(.CreationDate) | last(.[]).ImageId'

Чтобы получить команду, которая извлекает последний образ компьютера Amazon для определенного дистрибутива, перейдите по следующей ссылке.



Тип экземпляра

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

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

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

EC2

Elastic Compute Cloud или EC2 обеспечивает масштабируемые вычислительные мощности в облаке Amazon Web Services (AWS).

aws ec2 run-instances --image-id ami-xxxxxxxx --security-group-ids xxxxxxxxx --instance-type t2.micro --key-name example-key 

Вы можете перечислить свои экземпляры с помощьюaws ec2 describe-instances.

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

aws ec2 describe-instances --instance-ids i-0787e4282810ef9cf --query 'Reservations[0].Instances[0].PublicIpAddress'

Наконец, мы можем подключиться к нашему экземпляру EC2 через Интернет.

ssh -i example-key.pem [email protected]

Где пользователь - имя пользователя по умолчанию, связанное с AMI, который вы использовали для запуска экземпляра. Для AMI Amazon Linux это ec2-user.

Если вы работаете в Windows, вам понадобится шпатлевка. Putty не принимает ключи в формате .pem, поэтому нам придется использовать puttygen для преобразования ключа в формат .ppk.

Откройте puttygen и нажмите кнопку «Загрузить».

По умолчанию puttygen будет искать только файлы с расширением .ppk, убедитесь, что вы ищете все файлы.

После загрузки файла .pem в puttygen нажмите Save private key. Сохраните ключ в формате .ppk.

Теперь на вкладке SSH в замазке выберите файл .ppk.

Теперь вы готовы подключиться к своему экземпляру с помощью putty.

Как только вы закончите со своей виртуальной машиной. Вы можете ввести exit, чтобы выйти из сеанса.

Amazon не взимает плату за остановленный инстанс. Однако они взимают плату за использование тома Amazon EBS.

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

aws ec2 stop-instances --instance-ids i-1234567890abcdef0
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0