# AWS CLI: Установка и основы использования

# Что такое AWS CLI?

AWS CLI (Command Line Interface) - инструмент командной строки для взаимодействия с сервисами Amazon Web Services. Позволяет управлять AWS-сервисами из терминала.

# Установка AWS CLI

# Для Windows

  1. Скачайте MSI-установщик с официального сайта AWS
  2. Запустите файл AWSCLIV2.msi
  3. Проверьте установку:
aws --version

# Для macOS

Способ 1 (Homebrew):

brew install awscli

Способ 2 (установщик):

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

Проверка:

aws --version

# Для Linux (Ubuntu/Debian)

Через пакетный менеджер:

sudo apt update
sudo apt install -y awscli

Или последняя версия:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Проверка:

aws --version

# Настройка AWS CLI

Выполните конфигурацию:

aws configure

Введите данные:

  1. AWS Access Key ID
  2. AWS Secret Access Key
  3. Default region name (например us-east-1)
  4. Default output format (например json)

# Конфигурационные файлы

В результате работы команда aws configure сохранит статический ключ и регион. Формат статического ключа в .aws/credentials:

[default]
aws_access_key_id = <идентификатор_статического_ключа>
aws_secret_access_key = <содержимое_статического_ключа>

Формат региона по умолчанию в .aws/config:

[default]
region = ru-central1

Вы можете создать несколько профилей для разных сервисных аккаунтов, указав их данные в файле .aws/credentials:

[default]
aws_access_key_id = <идентификатор_статического_ключа_1>
aws_secret_access_key = <содержимое_статического_ключа_1>
[<имя_профиля_2>]
aws_access_key_id = <идентификатор_статического_ключа_2>
aws_secret_access_key = <содержимое_статического_ключа_2>
...
[<имя_профиля_n>]
aws_access_key_id = <идентификатор_статического_ключа_n>
aws_secret_access_key = <содержимое_статического_ключа_n>

Чтобы переключаться между разными профилями в командах AWS CLI используется опция --profile, например:

aws --endpoint-url=<endpoint_url> \
--profile <имя_профиля_2> \
s3 mb s3://<имя_бакета>

# Особенности

Учитывайте особенности AWS CLI при работе с Object Storage:

AWS CLI работает с Object Storage как с иерархической файловой системой и ключи объектов имеют вид пути к файлу.

По умолчанию клиент настроен на работу с серверами Amazon. Поэтому при запуске команды aws для работы с Object Storage обязательно используйте параметр --endpoint-url.

Чтобы при каждом запуске не указывать параметр вручную, вы можете использовать файл конфигурации или псевдоним. (поддерживается в AWS CLI версий 1.29.0, 2.13.0 и выше)

В файле конфигурации .aws/config добавьте параметр endpoint_url:

endpoint_url = <endpoint_url>

После этого вы сможете вызывать команды без явного указания эндпоинта.

Например, вместо aws --endpoint-url=<endpoint_url> s3 ls можно указывать aws s3 ls.

Подробнее смотрите в документации AWS CLI. Создайте псевдоним (alias) с помощью команды:

alias ycs3='aws s3 --endpoint-url=<endpoint_url>'

Для создания псевдонима при каждом запуске терминала, добавьте команду alias в конфигурационный файл ~/.bashrc или ~/.zshrc, в зависимости от типа оболочки.

С таким псевдонимом будут равносильны команды:

aws s3 --endpoint-url=<endpoint> ls

ycs3 ls

# Основные команды AWS CLI

# Общий синтаксис

aws <service> <operation> [options]

# Примеры команд

  1. Просмотр списка S3-бакетов:
aws s3 ls
  1. Создание EC2-инстанса:
aws ec2 run-instances --image-id ami-0abcdef1234567890 --count 1 --instance-type t2.micro --key-name MyKeyPair
  1. Копирование файла в S3:
aws s3 cp myfile.txt s3://my-bucket/

# Полезные советы

  1. Фильтрация вывода:
aws ec2 describe-instances --query 'Reservations[*].Instances[*].InstanceId'
  1. Табличный вывод:
aws ec2 describe-instances --output table
  1. Дебаг режим:
aws --debug s3 ls

# Обновление AWS CLI

Windows: Переустановите через новый MSI-установщик

macOS (Homebrew):

brew upgrade awscli

Linux:

sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update

# Удаление AWS CLI

Windows: Через Панель управления

macOS (Homebrew):

brew uninstall awscli

Linux:

sudo rm -rf /usr/local/aws-cli
sudo rm /usr/local/bin/aws

В Sentium Cloud мы стремимся предоставлять вам подробные и понятные инструкции. Наша цель - помочь вам эффективно использовать все возможности OpenStack Horizon для управления вашими облачными ресурсами.


С уважением, Команда Sentium Cloud