Работа с AWS EC2 через командную строку в Unix/Linux

Работа с AWS EC2 через командную строку в Unix/Linux

AWS CLI  — это консольная утилита которая позволяет работать с AWS EC2 через командную строку. Я хотел бы сделать заметку о том как работать AWS EC2 в консоле.

Работа с AWS EC2 через командную строку в Unix/Linux

Устанавливаем AWS CLI:

Установка AWS CLI в Unix/Linux

Открываем конфиг:

# vim ~/.aws/credentials

Прописываем ключи. Например:

[Your_acc_name]
aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYY

Где:

  • Your_acc_name — Имя для аккаунта. Потом можно его использовать.
  • aws_access_key_id — Ключик.
  • aws_secret_access_key — Еще один ключик.

Просмотр AWS EC2 через командную строку в Unix/Linux

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

$ aws ec2 --profile Reaxys describe-volumes

PS: Иногда требуется указывать регион:

$ aws ec2 --profile Reaxys --region us-east-1 describe-volumes

Так же, можно region указать в конфиг-файле.

Чтобы распечатать только 1-ю volume, используйте:

$ aws ec2 --profile Reaxys --region us-east-1 describe-volumes --query 'Volumes[0]'

Чтобы распечатать все волюмы, используйте:

$ aws ec2 --profile Reaxys --region us-east-1 describe-volumes --query 'Volumes[*]'

Можно выводить не все параметры, а только определенные, например:

$ aws ec2 --profile Reaxys --region us-east-1 describe-volumes --query 'Volumes[*].{ID:VolumeId,AZ:AvailabilityZone,Size:Size}'

Вот еще пример:

$ aws ec2 --profile Reaxys --region us-east-1 describe-volumes --query 'Volumes[*].{ID:VolumeId,InstanceId:Attachments[0].InstanceId,AZ:AvailabilityZone,Size:Size}'

Можно вывести волюмы с определенного региона, например:

$ aws ec2 --profile Reaxys --region us-east-1 describe-volumes --query 'Volumes[?AvailabilityZone==`us-east-1d`]'

Можно выводить содержание в виде текста, например:

$ aws ec2 --profile Reaxys --region us-east-1 describe-volumes --query 'Volumes[*].[VolumeId, Attachments[0].InstanceId, AvailabilityZone, Size, FakeKey]' --output text

Добавил параметр для вывода состояния волюмы:

$ aws ec2 --profile Reaxys --region us-east-1 describe-volumes --query 'Volumes[*].[VolumeId, Attachments[0].InstanceId, AvailabilityZone, State, Size, FakeKey]' --output text

Очень удобно и наглядно использовать вывод в виде столбцов, например:

$ aws ec2 --profile Reaxys --region us-east-1 describe-volumes --query 'Volumes[*].{ID:VolumeId,InstanceId:Attachments[0].InstanceId,AZ:AvailabilityZone,Size:Size}' --output table

Ничего сложного.

Проверим доступность зон:

$ aws ec2 --profile Reaxys --region us-east-1 describe-availability-zones

Чтобы получить описание всех имеджей, выполните:

$ aws ec2 --profile Reaxys --region us-east-1 describe-images

Или, для определенного:

$ aws ec2 --profile Reaxys --region us-east-1 describe-images --image-ids "ami-f480c59e"

Идем далее.

Генерация CLI Skeleton через командную строку в Unix/Linux

Большинство команд CLI поддерживают параметры «-generate-cli-skeleton» и «-cli-input-json», которые вы можете использовать для хранения параметров в JSON и читать их из файла, а не вводить их в командной строке.

И так, сгенерируем скелетон:

$ aws ec2 --profile Reaxys --region us-east-1 run-instances --generate-cli-skeleton --dry-run

PS: Опция «—dry-run» служит для тестирования ( она не создает никаких изменений).

Можно сохранить вывод в файл:

$ aws ec2 --profile Reaxys --region us-east-1 run-instances --generate-cli-skeleton > ec2runinst.json

Можно открыть данный файл и внести изменения ( например удалить не нужное или что-то добавить).

Передайте конфигурацию JSON-у:

$ aws ec2 --profile Reaxys --region us-east-1 run-instances --cli-input-json file://ec2runinst.json

Перезапуск AWS EC2 инстенсов через командную строку в Unix/Linux

Смотрим какие имеются:

$ aws ec2 --profile Reaxys --region us-east-1 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,InstanceId,State.Name]' --output text

И, собственно, ребутаем:

$ aws ec2 --profile Reaxys --region us-east-1 reboot-instances --instance-ids i-09aa273c40cb05767 --dry-run

PS: Я использую «—dry-run» опцию для тестов. С данной опцией не произойдет рестарт инстенса.

В AWS CLI для EC2 нет ничего сложного. Нужно почитать документацию и вникнуть в процесс.

Для помощи, используйте:

$ aws ec2 help

Я постараюсь дополнять данную тему новыми примерами.

Вот и все, статья «Работа с AWS EC2 через командную строку в Unix/Linux» завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.