10 основных команд AWS CLI для ежедневного управления ресурсами
Введение
В динамичном мире облачных вычислений Amazon Web Services (AWS) является ведущей платформой, предлагающей обширный набор сервисов. В то время как консоль управления AWS (AWS Management Console) предоставляет удобный графический интерфейс, интерфейс командной строки AWS (AWS CLI) предлагает непревзойденную мощь и гибкость для управления ресурсами. CLI — это инструмент с открытым исходным кодом, который позволяет взаимодействовать со службами AWS с помощью команд в терминале, что делает его незаменимым для автоматизации, написания скриптов и эффективного выполнения ежедневных операционных задач.
Освоение AWS CLI может значительно повысить вашу производительность, позволяя быстро просматривать, создавать, изменять и удалять ресурсы в ваших учетных записях AWS. Эта статья послужит важнейшей шпаргалкой, выделяющей 10 основных команд AWS CLI, которые должен знать каждый пользователь AWS для ежедневного управления ресурсами, с особым акцентом на Amazon S3 (хранилище), Amazon EC2 (вычисления) и AWS IAM (управление идентификацией и доступом).
Независимо от того, являетесь ли вы разработчиком, инженером по эксплуатации или облачным администратором, эти команды предоставят вам инструменты для более эффективного управления вашей средой AWS, более быстрого устранения неполадок и автоматизации повторяющихся задач. Давайте углубимся в команды, которые ускорят ваш ежедневный рабочий процесс.
Предварительные условия
Прежде чем начать, убедитесь, что у вас установлен и настроен AWS CLI в вашей системе. Если нет, следуйте официальной документации AWS, чтобы установить его и настроить учетные данные (идентификатор ключа доступа, секретный ключ доступа и регион по умолчанию).
# Проверить версию AWS CLI
aws --version
# Настроить AWS CLI (если еще не сделано)
aws configure
Основные команды AWS CLI для Amazon S3 (Simple Storage Service)
Amazon S3 — это высокомасштабируемая, долговечная и доступная служба объектного хранилища. Эти команды жизненно важны для управления вашими корзинами и объектами.
1. aws s3 ls - Список корзин и объектов S3
Эта команда позволяет просмотреть ваши корзины S3 или объекты внутри определенной корзины. Это часто первый шаг к пониманию вашего ландшафта хранилища.
Назначение: Просмотр корзин S3 или содержимого корзины.
Пример:
# Список всех корзин S3 в вашей учетной записи
aws s3 ls
# Список объектов в определенной корзине
aws s3 ls s3://your-bucket-name/
# Рекурсивный список объектов с удобочитаемыми размерами и датами
aws s3 ls s3://your-bucket-name/ --recursive --human-readable --summarize
Советы:
* Используйте --recursive для перечисления всех объектов и подпапок. --summarize предоставляет общее количество и размер.
* Вы также можете указать путь внутри корзины: aws s3 ls s3://your-bucket-name/prefix/.
2. aws s3 cp - Копирование файлов в S3 и из него
Команда cp является фундаментальной для передачи файлов между вашей локальной файловой системой и S3, или даже между корзинами S3.
Назначение: Копирование локальных файлов в S3, объектов S3 на локальный компьютер или объектов S3 между корзинами.
Пример:
# Скопировать локальный файл в корзину S3
aws s3 cp local-file.txt s3://your-bucket-name/folder/remote-file.txt
# Скопировать объект из S3 на локальный компьютер
aws s3 cp s3://your-bucket-name/folder/remote-file.txt local-copy.txt
# Скопировать объект из одной корзины S3 в другую
aws s3 cp s3://source-bucket/file.txt s3://destination-bucket/new-file.txt
# Рекурсивно скопировать локальную папку в S3
aws s3 cp --recursive local-folder/ s3://your-bucket-name/remote-folder/
Советы:
* --recursive имеет решающее значение для копирования целых каталогов.
* Используйте --exclude и --include для фильтрации файлов во время рекурсивного копирования.
3. aws s3 sync - Синхронизация локальных каталогов с S3
sync — это мощная команда, которая синхронизирует содержимое каталога с префиксом S3 или наоборот. Она копирует только новые или измененные файлы, что делает ее высокоэффективной для резервного копирования и развертывания.
Назначение: Эффективная синхронизация локального каталога с корзиной/префиксом S3.
Пример:
# Синхронизировать локальный каталог с корзиной S3
aws s3 sync local-directory/ s3://your-bucket-name/remote-path/
# Синхронизировать корзину S3 с локальным каталогом
aws s3 sync s3://your-bucket-name/remote-path/ local-directory/
# Сухой запуск, чтобы увидеть, какие изменения будут внесены без их фактического выполнения
aws s3 sync local-directory/ s3://your-bucket-name/remote-path/ --dryrun
Рекомендуемая практика: Всегда сначала используйте --dryrun, чтобы просмотреть изменения перед выполнением операции sync, особенно для критически важных данных.
4. aws s3 rm - Удаление объектов и корзин S3
Эта команда используется для удаления объектов из корзины S3 или для удаления пустой корзины.
Назначение: Удаление объектов или пустых корзин из S3.
Пример:
# Удалить отдельный объект из корзины
aws s3 rm s3://your-bucket-name/path/to/object.txt
# Рекурсивно удалить все объекты в папке (префиксе)
aws s3 rm s3://your-bucket-name/folder/ --recursive
# Удалить пустую корзину
aws s3 rb s3://your-bucket-name/
# Принудительное удаление корзины и всего ее содержимого (ИСПОЛЬЗОВАТЬ С КРАЙНЕЙ ОСТОРОЖНОСТЬЮ!)
aws s3 rb s3://your-bucket-name/ --force
Предупреждение: Команда aws s3 rb --force является разрушительной и необратимой. Используйте ее с крайней осторожностью, так как она удалит все объекты и версии в указанной корзине.
Основные команды AWS CLI для Amazon EC2 (Elastic Compute Cloud)
EC2 предоставляет масштабируемые вычислительные мощности в облаке AWS. Эти команды помогут вам управлять вашими виртуальными серверами.
5. aws ec2 describe-instances - Получение сведений об экземплярах EC2
Это ваша основная команда для сбора информации о ваших экземплярах EC2, включая их состояние, публичные/приватные IP-адреса, теги и многое другое.
Назначение: Получение подробной информации об одном или нескольких экземплярах EC2.
Пример:
# Описать все экземпляры EC2 в текущем регионе
aws ec2 describe-instances
# Описать экземпляры с определенным тегом (например, Environment=Production)
aws ec2 describe-instances \n --filters "Name=tag:Environment,Values=Production"
# Описать экземпляры по идентификатору экземпляра
aws ec2 describe-instances --instance-ids i-0abcdef1234567890
# Описать экземпляры и отфильтровать конкретную информацию с помощью JMESPath (например, PublicIpAddress)
aws ec2 describe-instances \n --query "Reservations[*].Instances[*].{InstanceId:InstanceId,PublicIp:PublicIpAddress,State:State.Name}" \n --output table
Советы:
* --filters мощный инструмент для сужения результатов на основе состояния экземпляра, тегов, типов экземпляров и многого другого.
* --query позволяет извлекать определенные поля данных и переформатировать вывод (например, с использованием выражений JMESPath).
6. aws ec2 start-instances - Запуск остановленных экземпляров EC2
Используйте эту команду для запуска одного или нескольких остановленных экземпляров EC2. Экземпляры сохранят свои приватные IP-адреса.
Назначение: Инициировать процесс запуска остановленных экземпляров EC2.
Пример:
# Запустить один экземпляр EC2
aws ec2 start-instances --instance-ids i-0abcdef1234567890
# Запустить несколько экземпляров EC2
aws ec2 start-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210
7. aws ec2 stop-instances - Остановка запущенных экземпляров EC2
Эта команда останавливает запущенные экземпляры EC2. С вас не будет взиматься плата за использование экземпляра, пока они остановлены, только за подключенные тома EBS.
Назначение: Остановка запущенных экземпляров EC2.
Пример:
# Остановить один экземпляр EC2
aws ec2 stop-instances --instance-ids i-0abcdef1234567890
# Остановить несколько экземпляров EC2
aws ec2 stop-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210
# Принудительная остановка экземпляра (использовать с осторожностью для производственных систем)
aws ec2 stop-instances --instance-ids i-0abcdef1234567890 --force
Предупреждение: Принудительная остановка экземпляра может привести к потере данных или повреждению файловой системы, если приложения не были корректно завершены.
8. aws ec2 terminate-instances - Завершение работы экземпляров EC2
Завершение работы экземпляра навсегда удаляет его и связанные с ним тома EBS (если они не настроены на сохранение после завершения). Это действие необратимо.
Назначение: Окончательное удаление экземпляров EC2.
Пример:
# Завершить работу одного экземпляра EC2
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890
# Завершить работу нескольких экземпляров EC2
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210
Предупреждение: Завершение работы — это постоянное и необратимое действие. Убедитесь, что у вас есть резервные копии или снимки критически важных данных, прежде чем завершать работу экземпляров.
Основные команды AWS CLI для IAM (Identity and Access Management)
IAM позволяет безопасно контролировать доступ к службам и ресурсам AWS. Эти команды помогают управлять пользователями и их разрешениями.
9. aws iam list-users - Список пользователей IAM
Эта команда предоставляет список всех пользователей IAM в вашей учетной записи AWS, а также их ARN, даты создания и идентификаторы пользователей.
Назначение: Просмотр всех пользователей IAM, настроенных в вашей учетной записи AWS.
Пример:
# Список всех пользователей IAM
aws iam list-users
# Список пользователей и извлечение определенных полей с помощью JMESPath
aws iam list-users --query "Users[*].{UserName:UserName,CreateDate:CreateDate,Arn:Arn}" --output table
Рекомендуемая практика: Регулярно просматривайте список пользователей IAM, чтобы убедиться, что присутствуют только необходимые пользователи, а старые, неиспользуемые учетные записи удалены.
10. aws iam list-attached-user-policies - Список политик, присоединенных к пользователю IAM
Понимание того, какие разрешения имеет пользователь IAM, имеет решающее значение для безопасности и устранения проблем с доступом. Эта команда перечисляет управляемые политики, непосредственно присоединенные к конкретному пользователю.
Назначение: Отображение управляемых политик, присоединенных к пользователю IAM.
Пример:
# Список всех управляемых политик, присоединенных к определенному пользователю IAM
aws iam list-attached-user-policies --user-name YourIAMUserName
# Список встроенных политик, присоединенных к определенному пользователю IAM
aws iam list-user-policies --user-name YourIAMUserName
Советы:
* Помните, что пользователи также могут наследовать разрешения из групп (aws iam list-groups-for-user) и ролей, или иметь встроенные политики (aws iam list-user-policies).
* Чтобы получить сведения о конкретной политике, используйте aws iam get-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess и затем aws iam get-policy-version.
Заключение
AWS CLI — невероятно мощный инструмент для всех, кто управляет ресурсами в Amazon Web Services. Десять команд, описанных в этом руководстве, охватывающих S3, EC2 и IAM, составляют основу ежедневных операционных задач, позволяя вам перечислять, создавать, изменять и удалять облачные ресурсы с эффективностью и точностью.
Интегрируя эти команды в вашу рутину, вы можете оптимизировать свои рабочие процессы, автоматизировать повторяющиеся задачи и получить более глубокое представление о вашей среде AWS. Помните, что AWS CLI предлагает обширный функционал, выходящий за рамки этих основных команд; мы призываем вас изучить официальную документацию AWS CLI, чтобы дополнительно расширить свой набор инструментов и открыть для себя более продвинутые возможности. Регулярная практика и исследование укрепят ваш опыт и позволят вам использовать весь потенциал AWS.
Начните практиковать эти команды сегодня, и наблюдайте, как взлетит ваша производительность в управлении облаком!