Entorno de computación de AWS CloudShell: especificaciones y software - AWS CloudShell

Entorno de computación de AWS CloudShell: especificaciones y software

Al iniciar AWS CloudShell, se crea un entorno de computación basado en Amazon Linux 2023 para hospedar la experiencia del intérprete de comandos. El entorno está configurado con recursos de computación (vCPU y memoria) y ofrece una amplia gama de software preinstalado al que se puede acceder desde la interfaz de la línea de comandos. Asegúrese de que todo software que instale en el entorno de computación tenga aplicados los parches correspondientes y esté actualizado. También puede configurar su entorno predeterminado instalando software y modificando los scripts del intérprete de comandos.

Recursos del entorno de computación

A cada entorno de computación de AWS CloudShell se le asignan los siguientes recursos de CPU y memoria:

  • 1 vCPU (unidad central de procesamiento virtual)

  • 2-GiB RAM

Además, el entorno se aprovisiona con la siguiente configuración de almacenamiento:

  • 1 GB de almacenamiento persistente (el almacenamiento persiste después de finalizar la sesión)

Para obtener más información, consulte Almacenamiento persistente.

Requisitos de red de CloudShell

WebSockets

CloudShell depende del protocolo WebSocket, que permite la comunicación interactiva bidireccional entre el navegador web del usuario y el servicio CloudShell en la nube de AWS. Si utiliza un navegador en una red privada, es probable que los servidores proxy y los firewalls faciliten el acceso seguro a Internet. La comunicación de WebSocket normalmente puede atravesar los servidores proxy sin problemas. Sin embargo, en algunos casos, los servidores proxy impiden que los WebSockets funcionen correctamente. Si se produce este problema, su interfaz de CloudShell informa del siguiente error: Failed to open sessions : Timed out while opening the session.

Si este error se repite, consulte la documentación de su servidor proxy para asegurarse de que está configurado para permitir WebSockets. Como alternativa, puede ponerse en contacto con el administrador del sistema de su red.

nota

Si desea definir permisos detallados permitiendo URL específicas, puede añadir parte de la URL que utilice la sesión de AWS Systems Manager para abrir una conexión WebSocket para enviar entradas y recibir salidas. (Sus comandos de AWS CloudShell se envían a esa sesión de Systems Manager).

El formato de esta StreamUrl utilizada por Systems Manager es wss://ssmmessages.region.amazonaws.com/v1/data-channel/session-id?stream=(input|output).

La región representa el identificador de región de una región de AWS compatible con AWS Systems Manager, como us-east-2 para la región Este de EE. UU. (Ohio).

Como el identificador de sesión se crea después de que una sesión concreta de Systems Manager se haya iniciado correctamente, solo puede especificar wss://ssmmessages.region.amazonaws.com cuando actualice su lista de direcciones URL permitidas. Para obtener más información, consulte la operación StartSession en la Referencia API de AWS Systems Manager.

Software preinstalado

nota

Como el entorno de desarrollo AWS CloudShell se actualiza periódicamente para otorgar acceso al software más reciente, no incluimos números de versión específicos en esta documentación. En su lugar, describimos cómo puede comprobar qué versión está instalada. Para comprobar la versión instalada, introduzca el nombre del programa seguido de la opción --version (por ejemplo, git --version).

Intérpretes de comandos

Intérpretes de comandos preinstalados
Nombre Descripción Version information

Bash

El intérprete de comandos Bash es la aplicación de intérprete de comandos predeterminada para AWS CloudShell.

bash --version

PowerShell (pwsh)

PowerShell, que ofrece una interfaz de la línea de comandos y compatibilidad con lenguajes de scripting, se basa en el entorno de ejecución del lenguaje de comandos .NET de Microsoft. PowerShell utiliza comandos ligeros denominados “cmdlets“ que aceptan y devuelven objetos .NET.

pwsh --version

Z Shell (zsh)

Z Shell, también conocido como zsh, es una versión ampliada de Bourne Shell que ofrece un soporte de personalización mejorado para temas y complementos.

zsh --version

Interfaz de la línea de comandos (CLI) de AWS

CLI
Nombre Descripción Version information

Kit de herramientas de AWS CDK: la CLI

El kit de herramientas AWS CDK, el comando de la CLI, cdk, es la herramienta principal que interactúa con su aplicación de AWS CDK. Ejecuta su aplicación, consulta el modelo de aplicación que ha definido y produce e implementa las plantillas de AWS CloudFormation generadas por el AWS CDK.

Para obtener más información, consulte Kit de herramientas AWS CDK.

cdk --version

AWS CLI

La AWS CLI es una interfaz de la línea de comandos para administrar múltiples servicios de AWS desde la línea de comandos y automatizarlos mediante scripts. Para obtener más información, consulte Administración de los servicios de AWS desde la CLI en CloudShell.

Para obtener información sobre cómo puede asegurarse de que está utilizando la versión de la AWS CLI 2 más actualizada, consulte Instalación de la AWS CLI en el directorio de inicio.

aws --version

CLI DE EB

La CLI de AWS Elastic Beanstalk es una interfaz de la línea de comandos de que simplifican la creación, actualización y monitoreo de entornos desde un repositorio local.

Para obtener más información sobre la EB CLI, consulte Uso de Elastic Beanstalk Command Line Interface (EB CLI) en la Guía para desarrolladores de AWS Elastic Beanstalk.

eb --version

CLI de Amazon ECS

La interfaz de la línea de comandos (CLI) de Amazon Elastic Container Service (Amazon ECS) proporciona comandos de alto nivel que simplifican la creación, la actualización y el monitoreo de clústeres y tareas.

Para obtener más información, consulte la Usar la interfaz de la línea de comandos de Amazon ECS en la Guía para desarrolladores de Amazon Elastic Container Service.

ecs-cli --version

AWS SAM CLI

La CLI de AWS SAM es una herramienta de la línea de comandos que opera sobre una plantilla de AWS Serverless Application Model y código de la aplicación. Puede realizar varias tareas. Estos incluyen la invocación de funciones de Lambda localmente, la creación de un paquete de implementación para su aplicación sin servidor y la implementación de su aplicación sin servidor en la nube de AWS.

Para obtener más información, consulte la referencia de la CLI de AWS SAM en la Guía para desarrolladores de AWS Serverless Application Model.

sam --version

Herramientas de AWS para PowerShell Herramientas de AWS para PowerShell son módulos de PowerShell basados en la funcionalidad expuesta por SDK para .NET. Con Herramientas de AWS para PowerShell, se permite realizar operaciones mediante scripts en sus recursos de AWS desde la línea de comandos de PowerShell.

AWS CloudShell preinstala la versión modularizada (AWS.Tools) de Herramientas de AWS para PowerShell.

Para obtener más información, consulte Uso de las herramientas de AWS para PowerShell en la Guía del usuario de Herramientas de AWS para PowerShell.

pwsh --Command 'Get-AWSPowerShellVersion'

Entornos de ejecución y SDK de AWS: Node.js y Python 3

Entornos de ejecución y SDK de AWS
Nombre Descripción Version information

Node.js (con npm)

Node.js es un entorno de ejecución de JavaScript diseñado para facilitar la aplicación de técnicas de programación asíncrona. Para obtener más información, consulte la documentación del sitio oficial de Node.js.

npm es un administrador de paquetes que proporciona acceso a un registro en línea de módulos de JavaScript. Para obtener más información, consulte la documentación en el sitio web de npm.

  • Node.js: node --version

  • npm: npm --version

SDK para JavaScript en Node.js

El kit de desarrollo de software (SDK) ayuda a simplificar la codificación al proporcionar objetos de JavaScript para los servicios de AWS, incluidos Amazon S3, Amazon EC2, DynamoDB y Amazon SWF. Para obtener más información, consulte la Guía para desarrolladores de AWS SDK para JavaScript.

npm -g ls --depth 0 2>/dev/null | grep aws-sdk

Python

Python 3 está listo para su uso en el entorno del intérprete de comandos. Python 3 ahora se considera la versión predeterminada del lenguaje de programación (Python 2 dejó de recibir soporte en enero de 2020). Para obtener más información, consulte la documentación del sitio oficial de Python.

Además, viene preinstalado pip, el instalador de paquetes para Python. Puede usar este programa de la línea de comandos para instalar paquetes de Python desde los índices en línea, como el Python Package Index. Para obtener más información, consulte la documentación de Python Packaging Authority.

  • Python 3: python3 --version

  • pip: pip3 --version

SDK para Python (Boto3)

Boto es el kit de desarrollo de software (SDK) que los desarrolladores de Python utilizan para crear, configurar y administrar Servicios de AWS como Amazon EC2 y Amazon S3. El SDK proporciona una API fácil de usar y orientada a objetos, así como un acceso de bajo nivel a los Servicios de AWS.

Para obtener más información, consulte la documentación de Boto3.

pip3 list | grep boto3

Herramientas de desarrollo y utilidades de intérprete de comandos

Herramientas de desarrollo y utilidades de intérprete de comandos
Nombre Descripción Version information

bash-completion

bash-completion es un conjunto de funciones de intérprete de comandos que permite completar automáticamente comandos o argumentos escritos parcialmente pulsando la tecla Tab. Puede encontrar los paquetes compatibles con bash-completion en /usr/share/bash-completion/completions.

Para configurar la función de autocompletar los comandos de un paquete, el archivo del programa debe ser el origen. Por ejemplo, para configurar la característica de autocompletar para los comandos de Git, añada la siguiente línea para .bashrc que la característica esté disponible siempre que se inicie la sesión de AWS CloudShell:

source /usr/share/bash-completion/completions/git

Si quiere usar scripts de finalización personalizados, agréguelos a su directorio principal persistente ($HOME) y búsquelos directamente en .bashrc.

Para obtener más información, consulte la página README en GitHub.

dnf info bash-completion

cqlsh-expansion cqlsh-expansion es un conjunto de herramientas que incluye cqlsh y ayudantes preconfigurados para Amazon Keyspaces, al tiempo que mantiene la total compatibilidad con Apache Cassandra. Para obtener más información, consulte Using cqlsh to connect to Amazon Keyspaces en Amazon Keyspaces (for Apache Cassandra) Developer Guide.

cqlsh-expansion --version

Docker

Docker es una plataforma abierta para desarrollar, enviar y ejecutar aplicaciones. Docker le permite separar las aplicaciones de la infraestructura para que pueda entregar software de forma rápida. Permite crear Dockerfiles en AWS CloudShell y crear recursos de Docker con CDK. Para obtener información sobre qué regiones de AWS son compatibles con Docker, consulte Regiones de AWS compatibles con AWS CloudShell. Debe tener en cuenta que el espacio de Docker en el entorno es limitado. Si tiene imágenes individuales de gran tamaño o demasiadas imágenes de Docker preexistentes, pueden producirse problemas. Para obtener más información sobre Docker, consulte la Guía de documentación de Docker.

docker --version

Git

Git es un sistema de control de versiones distribuido que apoya las prácticas modernas de desarrollo de software a través de los flujos de trabajo de las sucursales y la puesta en escena del contenido. Para obtener más información, consulte la página de documentación del sitio oficial de Git.

git --version

iputils

El paquete iputils contiene utilidades para redes Linux. Para obtener más información sobre las utilidades proporcionadas, consulte el repositorio de iputils en GitHub.

Ejemplos de una herramienta iputils: arping -V

jq La utilidad jq analiza los datos con formato JSON para producir una salida que se modifica mediante filtros de la línea de comandos. Para obtener más información, consulte el manual de jq alojado en GitHub.

jq --version

kubectl

kubectl es una herramienta de la línea de comandos para comunicarse con el plano de control de un clúster de Kubernetes mediante la API de Kubernetes.

kubectl --version

make

La utilidad make utiliza makefiles para automatizar conjuntos de tareas y organizar la compilación de código. Para obtener más información, consulte la Documentación de GNU Make.

make --version

man

El comando man proporciona páginas de manual para utilidades y herramientas de la línea de comandos. Por ejemplo, man ls vuelve a la página del manual del comando ls que muestra el contenido de los directorios. Para obtener más información, consulte la entrada man en Wikipedia.

man --version

nano nano es un editor pequeño y fácil de usar para una interfaz basada en texto. Para obtener más información, consulte Documentación GMU nano.

nano --version

OpenJDK 21

Amazon Corretto 21 es una distribución de OpenJDK 21 con soporte a largo plazo (LTS). Amazon Corretto es una distribución sin costo, multiplataforma y lista para producción de Open Java Development Kit (OpenJDK). Para obtener más información, consulte What is Amazon Corretto 21? en Corretto 21 User Guide.

java -version

procps

procps es una utilidad de administración del sistema que puede utilizar para supervisar y detener los procesos que se estén ejecutando actualmente. Para obtener más información, consulte el archivo README que muestra los programas que se pueden ejecutar con procps.

ps --version

psql

PostgreSQL es un potente sistema de bases de datos de código abierto que utiliza capacidades SQL estándar y ofrece características robustas para gestionar y escalar de forma segura operaciones de datos complejas. Para obtener más información, consulte What is PostgreSQL.

psql --version

Cliente SSH

Los clientes SSH utilizan el protocolo del intérprete de comandos seguro para las comunicaciones cifradas con un equipo remoto. OpenSSH es el cliente SSH que viene preinstalado. Para obtener más información, consulte el sitio OpenSSH administrado por OpenBSD.

ssh -V

sudo

Con la utilidad sudo, los usuarios pueden ejecutar un programa con los permisos de seguridad de otro usuario, normalmente el superusuario. Sudo resulta útil cuando necesita instalar aplicaciones como administrador del sistema. Para obtener más información, consulte el manual de Sudo.

sudo --version

tar

tar es una utilidad de la línea de comandos que se puede utilizar para agrupar varios archivos en un único archivo (a menudo denominado tarball). Para obtener más información, consulte la documentación de GNU.

tar --version

tmux

tmux es un multiplexor de terminal que puede utilizar para ejecutar diferentes programas simultáneamente en varias ventanas. Para obtener más información, consulte un blog que ofrece una introducción concisa a tmux.

tmux -V

vim

vim es un editor personalizable con el que puedes interactuar a través de una interfaz basada en texto. Para obtener más información, consulte la documentación del proveedor de recursos de vim.org.

vim --version

wget

wget es un programa informático utilizado para recuperar contenido de servidores web especificados por puntos de conexión en la línea de comandos. Para obtener más información, consulte la documentación de GNU Wget.

wget --version

zip/unzip

Las utilidades zip/unzip utilizan un formato de archivo comprimido que ofrece una compresión de datos sin pérdida de datos. Ejecute el comando zip para agrupar y comprimir archivos en un único archivo. Use unzip para extraer archivos de un archivo a un directorio específico.

unzip --version

zip --version

Instalación de la AWS CLI en el directorio de inicio

Al igual que el resto del software preinstalado en el entorno CloudShell, la herramienta de la AWS CLI se actualiza automáticamente con actualizaciones programadas y parches de seguridad. Si quiere asegurarse de tener la versión más actualizada de la AWS CLI, puede optar por instalar la herramienta manualmente en el directorio principal del intérprete de comandos.

importante

Debe instalar manualmente la copia de la AWS CLI en el directorio principal para que esté disponible la próxima vez que inicie una sesión de CloudShell. Esta instalación es necesaria porque los archivos que se añaden a directorios externos a $HOME se eliminan al finalizar una sesión del intérprete de comandos. Además, después de que instale esta copia de la AWS CLI, no se actualiza automáticamente. Es decir, es su responsabilidad administrar las actualizaciones y los parches de seguridad.

Para más información sobre el modelo de responsabilidad compartida de AWS, consulte Protección de los datos en AWS CloudShell.

Para instalar AWS CLI
  1. En la línea de comandos de CloudShell, utilice el comando curl para transferir una copia comprimida de la AWS CLI instalada al intérprete de comandos:

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  2. Descomprima la carpeta comprimida:

    unzip awscliv2.zip
  3. Para añadir la herramienta a una carpeta específica, ejecute el instalador la AWS CLI:

    sudo ./aws/install --install-dir /home/cloudshell-user/usr/local/aws-cli --bin-dir /home/cloudshell-user/usr/local/bin

    Si se ha instalado correctamente, la línea de comandos muestra el siguiente mensaje:

    You can now run: /home/cloudshell-user/usr/local/bin/aws --version
  4. Para su comodidad, le recomendamos que actualice también la variable de entorno de PATH para no tener que especificar la ruta de instalación de la herramienta al ejecutar los comandos aws:

    export PATH=/home/cloudshell-user/usr/local/bin:$PATH
    nota

    Si deshace este cambio a PATH, los comandos de aws que no incluyan una ruta específica utilizarán la versión preinstalada de la AWS CLI por defecto.

Instalación de software de terceros en el entorno del intérprete de comandos

nota

Le recomendamos que revise el modelo de responsabilidad de seguridad compartida antes de instalar cualquier aplicación de terceros en el entorno de computación AWS CloudShell del dispositivo.

De forma predeterminada, todos los usuarios de AWS CloudShell tienen permisos. Por lo tanto, puede usar el comando sudo para instalar software que aún no esté disponible en el entorno de computación del intérprete de comandos. Por ejemplo, puede usar sudo con la utilidad de administración de paquetes DNF para instalar cowsay, que genera imágenes de arte en formato ASCII de una vaca con el siguiente mensaje:

sudo dnf install cowsay

A continuación, puede iniciar el programa recién instalado escribiendo echo "Welcome to AWS CloudShell" | cowsay.

importante

Las utilidades de administración de paquetes como dnf instalan programas en directorios (/usr/bin, por ejemplo), que se reciclan cuando finaliza la sesión del intérprete de comandos. Esto significa que se instala y utiliza software adicional por sesión.

Modificar el intérprete de comandos con scripts

Si desea modificar el entorno del intérprete de comandos predeterminado, puede editar un script del intérprete de comandos que se ejecute cada vez que se inicie el entorno del intérprete de comandos. El script .bashrc se ejecuta cada vez que se inicia el intérprete de comandos bash predeterminado.

aviso

Si modifica el archivo .bashrc de forma incorrecta, es posible que no pueda acceder al entorno del intérprete de comandos más adelante. Se recomienda hacer una copia del archivo antes de editarlo. También puede evitar riesgos si abre dos intérpretes de comandos al editar .bashrc. Si pierde el acceso a un intérprete de comandos, su sesión seguirá iniciada en otro intérprete de comandos y podrá deshacer cualquier cambio.

Si pierde el acceso después de modificar .bashrc o modificar cualquier otro archivo de forma incorrecta, puede recuperar la configuración predeterminada de AWS CloudShell eliminando el directorio principal.

En el proceso, modificará el script .bashrc para que su entorno del intérprete de comandos pase automáticamente a ejecutar el intérprete de comandos Z.

  1. Abra .bashrc con un editor de texto (Vim, por ejemplo):

    vim .bashrc
  2. En la interfaz del editor, pulse la tecla I para iniciar la edición y, a continuación, añada lo siguiente:

    zsh
  3. Para salir del archivo editado .bashrc y guardarlo, pulse Esc para entrar en el modo de comando Vim e introduzca lo siguiente:

    :wq

  4. Utilice el comando source para volver a cargar el archivo .bashrc:

    source .bashrc

    Cuando la interfaz de la línea de comandos vuelva a estar disponible, el símbolo del indicador cambiará a % para indicar que ahora está utilizando el intérprete de comandos Z.