We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Интеграция Termux с облачными сервисами AWS: автоматизация управления EC2, S3 и Lambda через CLI‑инструменты

Termux на Android превращает смартфон или планшет в удобную командную среду. А когда поверх него работает AWS CLI, вы получаете практичный способ автоматизировать рутинные операции в AWS: запуск и остановку инстансов EC2, загрузку артефактов в S3, а также управление функциями Lambda (создание/обновление, публикация версий, запуск тестовых событий).

В этой статье покажу, как организовать связку Termux ↔ AWS через CLI-инструменты и как построить безопасный и воспроизводимый рабочий процесс.

Что потребуется

  • Android‑устройство с установленным Termux.
  • AWS аккаунт с доступом к EC2, S3 и Lambda.
  • IAM пользователь (или роль) с ограниченными правами.
  • Данные доступа: Access Key ID и Secret Access Key (если используете IAM пользователя).
  • Интернет‑доступ для обращения к AWS API.

Шаг 1. Подготовка Termux и установка зависимостей

Обновите пакеты и установите базовые компоненты. В зависимости от версии Termux команды могут незначительно отличаться, но общая логика сохраняется.

pkg update && pkg upgrade -y
pkg install -y python openssh curl unzip

Далее установим AWS CLI. Проще всего — через pip.

pip install --upgrade pip
pip install awscli --upgrade

Проверьте, что CLI доступен:

aws --version

Шаг 2. Настройка учётных данных AWS (безопасно)

Для работы из Termux необходимо предоставить AWS CLI учётные данные. Рекомендуемый подход — минимальные права в IAM и хранение секретов вне истории команд.

Вариант A (частый для CLI): через переменные окружения в текущей сессии.

export AWS_ACCESS_KEY_ID='ВАШ_ACCESS_KEY_ID'
export AWS_SECRET_ACCESS_KEY='ВАШ_SECRET_ACCESS_KEY'

Опционально задайте регион по умолчанию:

export AWS_DEFAULT_REGION='eu-central-1'

Вариант B (профиль): через конфигурацию AWS CLI. Вы создадите профиль один раз и потом будете ссылаться на него.

Сначала подготовьте директорию конфигураций:

mkdir -p ~/.aws

Создайте файл credentials:

nano ~/.aws/credentials

Вставьте:

[default]
aws_access_key_id=ВАШ_ACCESS_KEY_ID
aws_secret_access_key=ВАШ_SECRET_ACCESS_KEY

Создайте файл config:

nano ~/.aws/config

Вставьте:

[default]
region=eu-central-1
output=json

Проверка доступности API:

aws sts get-caller-identity

Шаг 3. Базовый контроль: что есть в аккаунте

Перед автоматизацией полезно убедиться, что CLI видит нужные ресурсы.

Например, перечислим бакеты S3:

aws s3 ls

Список инстансов EC2 (ограничьте фильтрами при необходимости):

aws ec2 describe-instances --max-results 10

Список функций Lambda:

aws lambda list-functions --max-items 10

Шаг 4. Автоматизация управления EC2 через CLI

С помощью AWS CLI из Termux можно выполнять типовые сценарии: запуск, остановка, получение состояния, выбор AMI/Instance profile (в рамках разрешений IAM).

4.1. Запуск и остановка инстанса

Остановка (например, по ID):

aws ec2 stop-instances --instance-ids i-0123456789abcdef0

Запуск:

aws ec2 start-instances --instance-ids i-0123456789abcdef0

4.2. Мониторинг статуса

Проверка состояния инстансов:

aws ec2 describe-instances --instance-ids i-0123456789abcdef0 --query "Reservations[0].Instances[0].State.Name" --output text

4.3. Запуск нового инстанса (пример)

Создание инстанса зависит от VPC/сабнетов, Security Group и AMI. Ниже — общий шаблон, который нужно адаптировать под вашу инфраструктуру.

aws ec2 run-instances --image-id ami-0abcdef1234567890 --instance-type t3.micro --subnet-id subnet-0abc12345def67890 --security-group-ids sg-0123abcd --count 1

После этого получите ID нового инстанса через описание или через вывод run-instances.

Шаг 5. Автоматизация работы с S3 через CLI

Для S3 CLI-интеграция особенно полезна: загрузка конфигураций, выгрузка артефактов сборки, синхронизация папок.

5.1. Создание бакета (пример)

Регион и уникальность имени важны. Имя бакета должно быть глобально уникальным.

aws s3 mb s3://your-unique-bucket-name

5.2. Загрузка файла

aws s3 cp ./artifact.zip s3://your-unique-bucket-name/artifacts/artifact.zip

5.3. Загрузка директории

С рекурсией:

aws s3 cp ./dist s3://your-unique-bucket-name/app/dist --recursive

5.4. Скачивание

aws s3 cp s3://your-unique-bucket-name/artifacts/artifact.zip ./

5.5. Синхронизация с учётом изменений

aws s3 sync ./local-folder s3://your-unique-bucket-name/local-folder

Шаг 6. Автоматизация Lambda через CLI

Для Lambda важны: пакет (zip), права на обновление, корректный runtime и способ вызова (через invoke или event sources).

6.1. Подготовка пакета

Соберите артефакт в zip-архив. Пример для Node.js/ Python зависит от вашего проекта, но общий подход такой: упаковать код и зависимости.

zip -r function.zip . -x ".git" -x "node_modules/*"

6.2. Обновление кода функции

Если функция уже существует, можно обновлять код:

aws lambda update-function-code --function-name your-function-name --zip-file fileb://function.zip

Альтернативный вариант для больших артефактов — через S3, если это предусмотрено вашим пайплайном.

6.3. Вызов Lambda (invoke)

Подготовьте JSON событие в файл:

echo '{ "hello": "termux-aws" }' > event.json

Вызов функции и получение ответа:

aws lambda invoke --function-name your-function-name --payload fileb://event.json output.json

Проверка содержимого результата:

cat output.json

Если нужно подавить вывод в консоль и работать с результатом через файл — используйте параметр --log-type и обработку в соответствии с вашим сценарием.

Шаг 7. Соединяем EC2, S3 и Lambda в один сценарий

Сильная сторона CLI — возможность выстроить цепочки команд. Например:

  1. Собрать артефакт в Termux.
  2. Загрузить его в S3.
  3. Обновить код Lambda.
  4. Запустить обработку (invoke).
  5. Опционально — при необходимости поднять/остановить EC2 инстанс для фоновой задачи.

Пример скрипта (адаптируйте под ваш проект и имена ресурсов):

# 1) Упаковка
zip -r function.zip .

# 2) Загрузка в S3 (если нужно для аудита/хранения артефактов)
aws s3 cp function.zip s3://your-unique-bucket-name/artifacts/function.zip

# 3) Обновление Lambda
aws lambda update-function-code --function-name your-function-name --zip-file fileb://function.zip

# 4) Запуск обработки
aws lambda invoke --function-name your-function-name --payload fileb://event.json output.json

Шаг 8. Практики безопасности и эксплуатации

  • Минимизация прав: выдавайте IAM пользователю только нужные действия. Например, для S3 — ListBucket, PutObject, GetObject в ограниченных ресурсах.
  • Разделяйте окружения: отдельные профили/аккаунты/роли для dev, staging и prod.
  • Не храните секреты в истории: избегайте ввода ключей в интерактивные команды, которые могут попадать в history. Предпочтительнее использовать файлы профиля с защищёнными правами или аккуратные переменные окружения в сессии.
  • Логи и трассировка: используйте CloudWatch Logs для Lambda, а для EC2 — системные/сервисные события.
  • Шифрование: включайте SSE для S3 и следите за шифрованием секретов/конфигураций для приложений.

Шаг 9. Про VPN (только для локальной сети)

Если вам нужна локальная сеть для доступа к внутренним ресурсам (например, приватный endpoint, бастион или внутренние сервисы), можно использовать VPN для построения локального сегмента. Это не предназначено для обхода ограничений или блокировок — только для безопасного подключения к ресурсам в вашей сети.

В таком сценарии убедитесь, что outbound доступ к нужным AWS API разрешён в рамках вашей сетевой политики.

Отладка: типовые проблемы

  • Ошибка доступа (AccessDenied): чаще всего дело в IAM политике и ограничениях по ресурсам/региону.
  • Регион не совпадает: проверьте AWS_DEFAULT_REGION и настройки профиля.
  • Неправильный формат аргументов: для --zip-file используйте fileb:// и убедитесь, что архив сформирован корректно.
  • Ограничения на размер: для некоторых случаев удобнее хранить артефакты в S3 и разворачивать Lambda по вашему механизму.

Заключение

Интеграция Termux с AWS через CLI позволяет собрать компактную и мобильную “операционную панель” для управления EC2, работы с S3 и развёртывания/вызова Lambda. При правильной настройке IAM (минимальные права), использовании профилей/переменных окружения и выстраивании цепочек команд вы получаете автоматизацию, которую удобно запускать как из сценариев, так и из интерактивной сессии.

Хотите, чтобы ваша связка Termux ↔ AWS была безопасной, с корректными IAM политиками и удобными скриптами под ваши ресурсы? Обратитесь в РыбинскЛАБ — поможем с архитектурой, настройкой и внедрением под ваш контур.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект