Введение в команду запуска Amazon EC2

Опубликовано: 7 Марта, 2023
Введение в команду запуска Amazon EC2

Администраторы, работающие с Microsoft Azure, часто обнаруживают, что использование PowerShell для управления виртуальными машинами Azure более эффективно, чем использование портала Azure. Чтобы не отставать, Amazon создал аналогичный механизм для Amazon EC2. Этот механизм, который Amazon называет Run Command, поддерживается для всех версий Windows Server и для многих наиболее популярных сборок Linux. Команду «Выполнить» можно использовать не только для запуска командлетов PowerShell, но и для выполнения сценариев оболочки на серверах Linux.

Хотя Amazon Run Command позволяет администраторам запускать команды для облачных ресурсов, он работает немного иначе, чем вы могли бы ожидать. В среде Azure администратор может открыть окно PowerShell на локальном компьютере, импортировать специальный модуль Azure, подключиться к подписке Azure организации, а затем выполнить любую задачу, которую необходимо выполнить. Весь процесс происходит с использованием родной PowerShell.

Недостатком использования Amazon Run Command является то, что он не использует родную среду PowerShell. Конечно, обратной стороной этого является то, что, поскольку вы не будете работать в окне PowerShell, вы не ограничены исключительно использованием командлетов PowerShell. Команда запуска Amazon фактически представляет собой диалоговое окно, в котором вы можете вводить команды для запуска на удаленных ресурсах.

Итак, с учетом сказанного, давайте посмотрим, как использовать команду «Выполнить». Первое, что вам нужно знать, это то, что команда «Выполнить» в настоящее время поддерживается не во всех регионах. На данный момент поддерживаются только следующие регионы: Восток США (Северная Вирджиния), Запад США (Орегон) и Европа (Ирландия). Кроме того, есть еще несколько обязательных условий, которых необходимо придерживаться.

Во-первых, вы должны убедиться, что ваши виртуальные машины работают под управлением поддерживаемой операционной системы и последней версии агента SSM. Поддерживаются все версии Windows Server, но не все дистрибутивы Linux. Поддерживаемые сборки Linux включают:

  • Amazon Linux (64-разрядная версия) 2015.09, 2015.03, 2014.09, 2014.03
  • Сервер Ubuntu (64-разрядная версия) 14.04 LTS, 12.04 LTS
  • Red Hat Enterprise Linux (64-разрядная версия RHEL) 7.x

Роль сервера IAM также требуется для всех экземпляров, которые будут обрабатывать команды. Также требуется отдельная роль для пользователей, которые хотят выполнять команды. Любые роли IAM, используемые командой «Выполнить», должны иметь политики разрешений, позволяющие ролям IAM взаимодействовать с API-интерфейсами SSM. Обычно рекомендуется использовать политики, управляемые SSM, но при необходимости вы можете создать свои собственные политики IAM.

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

Есть одно необязательное условие. Хотя технически это не требуется, рекомендуется иметь корзину S3. Помните, я говорил о том, что команда «Выполнить» не использует родное окно PowerShell? Что ж, интерфейс, который использует Amazon, может отображать вывод команды, но отображаются только первые 2500 символов вывода. Согласитесь, это звучит как много, но с начала этой статьи до этого момента здесь уже было примерно около 3255 символов. Это означает, что 2500 символов представляют собой менее одной страницы печатного текста. Некоторые командлеты PowerShell могут возвращать гораздо больше текста, чем это, а ведро позволяет захватывать весь вывод, а не усекать его.

Amazon Run Command работает по-разному в зависимости от того, используете ли вы консоль Amazon EC2 или интерфейс Amazon CLI. Ради этой статьи я хочу кратко описать, как вы можете использовать команду «Выполнить» через консоль Amazon EC2.

Чтобы использовать команду «Выполнить», первое, что вам нужно сделать (достаточно логично), — это нажать кнопку «Выполнить команду». Когда вы это сделаете, консоль EC2 отобразит диалоговое окно «Выполнить команду». В этом диалоговом окне вам предлагается выбрать командный документ. Другими словами, вы не можете просто ввести команду, которую хотите выполнить, вы должны выбрать командный документ, содержащий информацию о команде, которую вы собираетесь выполнить. Предположим, например, что вашей целью было запустить сценарий оболочки. Для этого вы должны выбрать командный документ с именем AWS-RunShellScript.

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

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

Второе поле, которое вы должны заполнить, — это рабочий каталог. Другими словами, по какому пути вы хотите запустить команду?

Третье, что вам нужно ввести, это время ожидания выполнения. Это количество секунд, в течение которых команда запуска должна ожидать ответа от экземпляра, прежде чем он сочтет экземпляр недоступным.

Четвертое поле — поле «Комментарий». Рекомендуется ввести краткий комментарий, объясняющий, что делает команда или почему вы ее запускаете.

Ранее я упоминал, что у вас есть возможность использовать корзину S3. Если вы решите использовать сегмент, вам следует ввести имя сегмента и префикс ключа S3. Вы можете думать о префиксе ключа S3 как о подпапке. Вы можете создавать вложенные папки для различных классов команд.

Когда вы закончите вводить всю необходимую информацию, нажмите «Выполнить». Когда команда завершится, вы можете нажать View Results, чтобы увидеть, что произошло. Первоначально результаты могут отображать только статус, код ответа, время начала и окончания и т. д. для команды. Если вам нужна более подробная информация, вы можете получить ее, нажав кнопку View Output. Это покажет вам фактический вывод команды. Помните, что отображаются только первые 2500 символов вывода. Если вывод усечен, вы всегда можете использовать корзину S3 для просмотра полного вывода.

Вывод

Функция Amazon Run Command дает возможность запускать командлеты PowerShell и сценарии оболочки для инстансов Amazon EC2. Хотя используемый для этого интерфейс может быть не совсем интуитивно понятным, Amazon позволяет относительно легко вводить команды и просматривать результаты.