Открыть сервис

AWS CloudShell

AWS CloudShell — это браузерная оболочка командной строки (CLI) для управления сервисами Amazon Web Services (AWS), предоставляемая в рамках облачной платформы AWS. Она позволяет пользователям выполнять команды AWS CLI, работать с файлами и запускать скрипты непосредственно из веб-интерфейса консоли AWS, без необходимости устанавливать или настраивать локальное программное обеспечение. AWS CloudShell доступен для всех пользователей AWS, имеющих активную учетную запись, и предоставляется бесплатно (оплачиваются только ресурсы, созданные или используемые в процессе работы, например, хранимые файлы или запущенные экземпляры EC2, если они не были остановлены).

История

AWS CloudShell был анонсирован в ноябре 2020 года на конференции re:Invent и запущен в бета-версии в декабре 2020 года. Изначально сервис был доступен в нескольких регионах AWS (включая Северную Виргинию, Орегон, Ирландию, Франкфурт, Токио и Сидней). В 2021 году поддержка была расширена на все регионы, где AWS предоставляет свои основные сервисы. Разработка CloudShell была связана с растущей потребностью упрощения доступа к инструментам управления AWS для пользователей, которые не хотели или не могли устанавливать AWS CLI локально, а также для повышения безопасности за счет изоляции среды выполнения.

Архитектура и функционирование

Техническая основа

AWS CloudShell работает на основе виртуальных машин (инстансов) Amazon EC2, которые автоматически создаются и управляются AWS. Каждый пользователь получает изолированную среду выполнения, которая хранится в течение 30 дней после последнего сеанса. Если пользователь не заходит в CloudShell дольше этого срока, среда удаляется, а файлы, сохраненные в домашней директории, теряются. Для постоянного хранения данных рекомендуется использовать сервисы AWS, такие как Amazon S3 или Amazon EFS.

Доступ и авторизация

CloudShell доступен через веб-консоль AWS (по адресу console.aws.amazon.com) и не требует дополнительной установки. При запуске сервис автоматически аутентифицирует пользователя с помощью его текущих учетных данных AWS (IAM-роли или пользователя). Это означает, что все команды, выполняемые в CloudShell, выполняются от имени того же IAM-пользователя или роли, которые используются для входа в консоль. Таким образом, права доступа наследуются от текущей сессии, и CloudShell не требует отдельной настройки разрешений.

Окружение

Среда CloudShell включает:

  • Предустановленный AWS CLI — последняя стабильная версия, поддерживающая все сервисы AWS.
  • Предустановленные SDK — для Python (boto3), Node.js, Ruby, Java и других языков, что позволяет запускать скрипты и приложения.
  • Текстовые редакторы — vim, nano, emacs, а также возможность установки дополнительных пакетов через менеджер пакетов (например, apt или yum, в зависимости от базового образа).
  • Система управления пакетами — пользователи могут устанавливать дополнительные утилиты, такие как jq, curl, git, docker (в ограниченном режиме) и другие.
  • Домашняя директория/home/cloudshell-user, которая хранится в течение 30 дней, как указано выше.

Ограничения

  • Время сеанса — сеанс CloudShell автоматически завершается после 30 минут бездействия. При этом все несохраненные данные в домашней директории теряются, если они не были скопированы в постоянное хранилище.
  • Ресурсы — среда имеет ограниченные вычислительные ресурсы (1 vCPU, 1 ГБ ОЗУ, 10 ГБ дискового пространства). Это не позволяет запускать тяжелые приложения или базы данных.
  • Сетевой доступ — CloudShell работает в изолированной сети AWS и не имеет прямого доступа к интернету (за исключением доступа к сервисам AWS через API). Для доступа к внешним ресурсам (например, репозиториям GitHub) требуется настройка NAT-шлюза или прокси-сервера в VPC.
  • Региональность — CloudShell доступен в большинстве регионов AWS, но не во всех (например, в некоторых регионах Китая и AWS GovCloud он может отсутствовать).

Применение

Управление ресурсами AWS

Основное назначение CloudShell — выполнение команд AWS CLI для управления облачными ресурсами. Например, пользователь может:

  • Создавать, удалять и изменять экземпляры EC2, S3-бакеты, базы данных RDS и другие сервисы.
  • Просматривать логи CloudWatch, настраивать политики IAM.
  • Автоматизировать рутинные задачи с помощью скриптов на Bash или Python.

Разработка и тестирование

CloudShell часто используется для быстрого тестирования скриптов и конфигураций, особенно в сценариях, где локальная среда не соответствует требованиям AWS. Например, разработчик может написать и протестировать скрипт для автоматического масштабирования, не покидая браузер.

Обучение и демонстрации

Сервис популярен среди преподавателей и технических специалистов, проводящих демонстрации возможностей AWS. Поскольку CloudShell не требует установки, он позволяет быстро показать работу CLI без настройки локального окружения.

Безопасное управление

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

Преимущества и недостатки

Преимущества

  • Бесплатность — сам сервис не взимает плату, оплачиваются только используемые ресурсы AWS.
  • Автоматическая аутентификация — не требуется настройка ключей доступа.
  • Доступность из любого места — достаточно браузера и учетной записи AWS.
  • Предустановленные инструменты — экономит время на настройку окружения.

Недостатки

  • Ограниченное время сеанса — 30 минут бездействия приводят к потере несохраненных данных.
  • Ограниченные ресурсы — не подходит для ресурсоемких задач.
  • Отсутствие постоянного хранилища — домашняя директория удаляется после 30 дней бездействия.
  • Отсутствие доступа в интернет — ограничивает использование внешних репозиториев и пакетов.

Сравнение с альтернативами

AWS CloudShell vs. локальный AWS CLI

Локальный AWS CLI требует установки и настройки, но предоставляет полный контроль над окружением и не имеет ограничений по времени и ресурсам. CloudShell удобен для быстрых задач и обучения, но не подходит для длительных или ресурсоемких операций.

AWS CloudShell vs. AWS Cloud9

AWS Cloud9 (сервис облачной IDE) предоставляет полноценную среду разработки с графическим интерфейсом, отладчиком и терминалом. CloudShell — это только терминал, без возможности редактирования кода в IDE. Cloud9 также имеет постоянное хранилище (EBS), но требует оплаты за используемые ресурсы.

AWS CloudShell vs. AWS Systems Manager Session Manager

Session Manager позволяет подключаться к инстансам EC2 через SSH без открытия портов, но не предоставляет предустановленного AWS CLI. CloudShell, напротив, ориентирован на управление облаком, а не на подключение к конкретным экземплярам.

Интересные факты

  • CloudShell поддерживает несколько языков программирования, включая Python, Node.js, Ruby, Java, Go и .NET.
  • В среде CloudShell предустановлены популярные утилиты, такие как jq (для работы с JSON), curl (для HTTP-запросов) и git (для работы с репозиториями).
  • CloudShell можно использовать для запуска скриптов, которые автоматически создают инфраструктуру, например, с помощью Terraform или AWS CloudFormation (если они установлены пользователем).
  • Сервис интегрирован с AWS CloudTrail, что позволяет отслеживать все команды, выполненные через CloudShell, для целей аудита.

Критика

Основные жалобы пользователей связаны с ограничением времени сеанса и отсутствием постоянного хранилища. Это делает CloudShell непригодным для длительных задач, таких как мониторинг или управление крупными проектами. Также отмечается, что отсутствие доступа в интернет затрудняет установку дополнительных пакетов, не входящих в стандартный набор. Некоторые пользователи критикуют сервис за то, что он не поддерживает работу с несколькими окнами терминала одновременно, что ограничивает многозадачность.

Источники

  • Официальная документация AWS CloudShell
  • Блог AWS: «Introducing AWS CloudShell» (декабрь 2020)
  • Документация AWS CLI
  • Статья «AWS CloudShell: A Browser-Based Shell for AWS» на сайте AWS News
  • Форум AWS: обсуждения и отзывы пользователей

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →