Ambiente de computação do AWS CloudShell: especificações e software - AWS CloudShell

Ambiente de computação do AWS CloudShell: especificações e software

Quando você inicia o AWS CloudShell, cria-se um ambiente computacional baseado no Amazon Linux 2023 para ser o host da experiência de shell. O ambiente é configurado com recursos computacionais (vCPU e memória) e fornece uma ampla variedade de softwares pré-instalados que podem ser acessados pela interface da linha de comando. Certifique-se de que qualquer software instalado no ambiente computacional seja corrigido e atualizado. Você também pode configurar seu ambiente padrão instalando software e modificando scripts de shell.

Recursos do ambiente de computação

Cada ambiente computacional do AWS CloudShell recebe os seguintes recursos de CPU e memória:

  • 1 vCPU (unidade de processamento central virtual)

  • 2 GiB de RAM

Além disso, o ambiente é provisionado com a seguinte configuração de armazenamento:

  • Armazenamento persistente de 1 GB (o armazenamento persiste após o término da sessão)

Para obter mais informações, consulte Armazenamento persistente.

Requisitos de rede do CloudShell

WebSockets

O CloudShell depende do protocolo WebSocket, que permite a comunicação interativa bidirecional entre o navegador da Web do usuário e o serviço CloudShell na AWS Cloud. Se você estiver usando um navegador em uma rede privada, o acesso seguro à Internet provavelmente é facilitado por servidores proxy e firewalls. A comunicação WebSocket geralmente pode atravessar servidores proxy sem problemas. Mas, em alguns casos, os servidores proxy impedem que WebSockets funcionem corretamente. Se esse problema ocorrer, sua interface CloudShell relata o seguinte erro: Failed to open sessions : Timed out while opening the session.

Se esse erro ocorrer repetidamente, consulte a documentação do seu servidor proxy para garantir que ele esteja configurado para permitir WebSockets. Como alternativa, você pode entrar em contato com o administrador do sistema da sua rede.

nota

Se quiser definir permissões granulares listando URLs específicos, você pode adicionar parte do URL que a sessão AWS Systems Manager usa para abrir uma conexão WebSocket para enviar entradas e receber saídas. (Seus comandos do AWS CloudShell são enviados para essa sessão do Systems Manager.)

O formato desse StreamURL usado pelo Systems Manager é wss://ssmmessages.region.amazonaws.com/v1/data-channel/session-id?stream=(input|output).

A região representa o identificador da região para uma região da AWS compatível com o AWS Systems Manager, como us-east-2 para a região Leste dos EUA (Ohio).

Como o ID da sessão é criado após o início bem-sucedido de uma sessão específica do Systems Manager, você só pode especificar wss://ssmmessages.region.amazonaws.com ao atualizar sua lista de permissões de URL. Para obter mais informações, consulte a operação StartSession na referência da API do AWS Systems Manager.

Software pré-instalado

nota

Como o ambiente de desenvolvimento do AWS CloudShell é atualizado regularmente para fornecer acesso ao software mais recente, não fornecemos números de versão específicos nesta documentação. Em vez disso, descrevemos como você pode verificar qual versão está instalada. Para verificar a versão instalada, insira o nome do programa seguido pela opção --version (por exemplo, git --version).

Shells

Shells pré-instalados
Nome Descrição Informações sobre a versão

Bash

O shell Bash é o aplicativo de shell padrão para AWS CloudShell.

bash --version

PowerShell (pwsh)

Oferecendo uma interface de linha de comando e suporte à linguagem de script, o PowerShell foi desenvolvido com base no .NET Command Language Runtime da Microsoft. O PowerShell usa comandos leves chamados cmdlets que aceitam e retornam objetos .NET.

pwsh --version

Z Shell (zsh)

O Z Shell, também conhecido como zsh, é uma versão estendida do Bourne Shell que oferece suporte aprimorado à personalização de temas e plug-ins.

zsh --version

Interfaces da linha de comando (CLI) AWS

CLI
Nome Descrição Informações sobre a versão

AWS CDK Toolkit CLI

O Toolkit AWS CDK, o comando da CLI, cdk, é a principal ferramenta que interage com seu aplicativo AWS CDK. Ele executa seu aplicativo, interroga o modelo de aplicativo que você definiu e produz e implanta os modelos AWS CloudFormation gerados pelo AWS CDK.

Para obter mais informações, consulte AWS CDK Toolkit.

cdk --version

AWS CLI

A AWS CLI é uma interface de linha de comando que você pode usar para gerenciar vários serviços da AWS pela linha de comando e automatizá-los usando scripts. Para obter mais informações, consulte Gerencie serviços da AWS na CLI no CloudShell.

Para obter informações sobre como você pode garantir que está usando a versão mais atualizada da AWS CLI versão 2, consulte Como instalar a AWS CLI no seu diretório inicial.

aws --version

EB CLI

A AWS Elastic Beanstalk CLI fornece uma interface da linha de comando para simplificar a criação, a atualização e o monitoramento de ambientes em um repositório local.

Para obter mais informações, consulte Como usar a interface da linha de comando do Elastic Beanstalk (EB CLI) no Guia do desenvolvedor do AWS Elastic Beanstalk.

eb --version

CLI do Amazon ECS

A interface da linha de comando (CLI) do Amazon Elastic Container Service (Amazon ECS) fornece comandos de alto nível para simplificar a criação, a atualização e o monitoramento de clusters e tarefas.

Para obter mais informações, consulte Como usar a interface da linha de comando do Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service.

ecs-cli --version

CLI do AWS SAM

A CLI do AWS SAM é uma ferramenta de linha de comando que opera em um modelo do AWS Serverless Application Model e código do aplicativo. Você pode realizar várias tarefas. Elas incluem invocar as funções do Lambda localmente, criar um pacote de implantação para seu aplicativo de tecnologia sem servidor e implantar seu aplicativo de tecnologia sem servidor na AWS Cloud.

Para obter mais informações, consulte a referência de comando da CLI AWS SAM, no Guia do Desenvolvedor do AWS Serverless Application Model.

sam --version

Ferramentas da AWS para PowerShell O Ferramentas da AWS para PowerShell são módulos do PowerShell criados com base na funcionalidade exposta pelo SDK para .NET. Com o Ferramentas da AWS para PowerShell, você pode fazer script de operações em seus recursos da AWS na linha de comando do PowerShell.

O AWS CloudShell pré-instala a versão modularizada (AWS.Tools) do Ferramentas da AWS para PowerShell.

Para obter mais informações, consulte Como usar ferramentas da AWS para PowerShell no Manual do usuário do Ferramentas da AWS para PowerShell.

pwsh --Command 'Get-AWSPowerShellVersion'

Runtimes e SDKs da AWS: Node.js e Python 3

Runtimes e SDKs da AWS
Nome Descrição Informações sobre a versão

Node.js (com npm)

O Node.js é um runtime do JavaScript projetado para facilitar a aplicação de técnicas de programação assíncrona. Para obter mais informações, consulte a documentação no site oficial do Node.js.

O npm é um gerenciador de pacotes que fornece acesso a um registro on-line de módulos JavaScript. Para obter mais informações, consulte a documentação no site oficial do npm.

  • Node.js: node --version

  • npm: npm --version

SDK for JavaScript in Node.js

O kit de desenvolvimento de software (SDK) ajuda a simplificar a codificação fornecendo objetos JavaScript para serviços da AWS, incluindo Amazon S3, Amazon EC2, DynamoDB e Amazon SWF. Para obter mais informações, consulte o Guia do desenvolvedor do AWS SDK para JavaScript.

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

Python

O Python 3 está pronto para uso no ambiente shell. O Python 3 agora é considerado a versão padrão da linguagem de programação (o suporte ao Python 2 terminou em janeiro de 2020). Para obter mais informações, consulte a documentação no site oficial do Python.

Além disso, o pip, o instalador de pacotes para Python, está pré-instalado. Você pode usar esse programa de linha de comando para instalar pacotes Python a partir dos índices on-line, como o Python Package Index. Para obter mais informações, consulte a documentação fornecida pela Python Packaging Authority.

  • Python 3: python3 --version

  • pip: pip3 --version

SDK para Python (Boto3).

O Boto é o kit de desenvolvimento de software (SDK) que os desenvolvedores do Python usam para criar, configurar e gerenciar Serviços da AWS, como o Amazon EC2 e o Amazon S3. O SDK fornece uma API fácil de usar e orientada a objetos, bem como acesso de baixo nível a Serviços da AWS.

Para obter mais informações, consulte a documentação do Boto3.

pip3 list | grep boto3

Ferramentas de desenvolvimento e utilitários de shell

Ferramentas de desenvolvimento e utilitários de shell
Nome Descrição Informações sobre a versão

bash-completion

O bash-completion é um conjunto de funções de shell que permitem o preenchimento automático de comandos ou argumentos parcialmente digitados pressionando a tecla Tab. Você pode encontrar os pacotes compatíveis com o bash-completion em /usr/share/bash-completion/completions.

Para configurar o preenchimento automático para os comandos de um pacote, o arquivo do programa deve ser originado. Por exemplo, para configurar o preenchimento automático para comandos do Git, adicione a seguinte linha ao .bashrc para que o atributo esteja disponível sempre que sua sessão do AWS CloudShell começar:

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

Se você quiser usar scripts de preenchimento personalizados, adicione-os ao seu diretório inicial persistente ($HOME) e origine-os diretamente no .bashrc.

Para obter mais informações, consulte a página README do projeto no GitHub.

dnf info bash-completion

cqlsh-expansion cqlsh-expansion é um kit de ferramentas que inclui o cqlsh e utilitários pré-configurados para o Amazon Keyspaces, mantendo total compatibilidade com o Apache Cassandra. Para acessar mais informações, consulte Usar cqlsh para se conectar ao Amazon Keyspaces no Guia do desenvolvedor do Amazon Keyspaces (para Apache Cassandra).

cqlsh-expansion --version

Docker

Docker: é uma plataforma aberta para desenvolvimento, envio e execução de aplicativos. O Docker permite que você separe os aplicativos da sua infraestrutura para que possa entregar software rapidamente. Ele permite que você crie Dockerfiles dentro do AWS CloudShell e crie ativos do Docker com o CDK. Para obter informações sobre quais regiões da AWS são compatíveis com o Docker, consulte Supported AWS Regions for AWS CloudShell. Você deve estar ciente de que o Docker tem espaço limitado no ambiente. Se você tiver imagens individuais grandes ou muitas imagens do Docker preexistentes, isso pode causar problemas. Para obter mais informações sobre o Docker, consulte o guia de documentação do Docker.

docker --version

Git

O Git é um sistema de controle de versão distribuído que dá suporte às práticas modernas de desenvolvimento de software por meio de fluxos de trabalho de ramificações e preparação de conteúdo. Para obter mais informações, consulte a página de documentação no site oficial do Git.

git --version

iputils

O pacote iputils contém utilitários para redes Linux. Para obter mais informações sobre os utilitários fornecidos, consulte o repositório iputils no GitHub.

Exemplos de uma ferramenta iputils: arping -V

jq O utilitário jq analisa dados formatados JSON para produzir uma saída modificada pelos filtros da linha de comando. Para obter mais informações, consulte o manual do jq hospedado no GitHub.

jq --version

kubectl

O kubectl é uma ferramenta de linha de comando para comunicação com o ambiente de gerenciamento de um cluster Kubernetes, usando a API do Kubernetes.

kubectl --version

make

O utilitário make usa makefiles para automatizar conjuntos de tarefas e organizar a compilação de código. Para obter mais informações, consulte a documentação do GNU Make.

make --version

man

O comando man fornece páginas do manual para utilitários e ferramentas de linha de comando. Por exemplo, man ls retorna a página de manual para o comando ls que lista os conteúdos dos diretórios. Para obter mais informações, consulte a entrada na Wikipédia na página man.

man --version

nano O nano é um editor pequeno e fácil de usar para interface baseada em texto. Para obter mais informações, consulte a documentação do GNU nano.

nano --version

OpenJDK 21

O Amazon Corretto 21 é uma distribuição com suporte de longo prazo (LTS) do OpenJDK 21. O Amazon Corretto é um kit de desenvolvimento aberto do Java (Open JDK) de distribuição gratuita, multiplataforma e pronto para produção. Para acessar mais informações, consulte O que é o Amazon Corretto 21? no Guia do usuário do Corretto 21.

java -version

procps

O procps é um utilitário de administração do sistema que você pode usar para monitorar e interromper os processos atualmente em execução. Para obter mais informações, consulte o arquivo README que lista os programas que podem ser executados com procps.

ps --version

psql

O PostgreSQL é um poderoso sistema de banco de dados de código aberto que usa recursos SQL padrão e fornece recursos robustos para gerenciar e escalar com segurança operações de dados complexas. Para acessar mais informações, consulte O que é PostgreSQL.

psql --version

Cliente SSH

Os clientes SSH usam o secure shell protocol para comunicações criptografadas com um computador remoto. OpenSSH é o cliente SSH pré-instalado. Para obter mais informações, consulte o site do OpenSSH mantido pelo OpenBSD.

ssh -V

sudo

Com o utilitário sudo, os usuários podem executar um programa com as permissões de segurança de outro usuário, normalmente o superusuário. O Sudo é útil quando é necessário instalar aplicativos como administrador do sistema. Para obter mais informações, consulte o Manual do Sudo.

sudo --version

tar

O tar é um utilitário de linha de comando que você pode usar para agrupar vários arquivos em um único arquivo (geralmente chamado de tarball). Para obter mais informações, consulte a documentação do GNU tar.

tar --version

tmux

O tmux é um multiplexer de terminal que você pode usar para executar diferentes programas simultaneamente em várias janelas. Para obter mais informações, consulte um blog que forneça uma introdução concisa ao tmux.

tmux -V

vim

O vim é um editor personalizável com o qual você pode interagir por meio de uma interface baseada em texto. Para obter mais informações, consulte os recursos de documentação fornecidos em vim.org.

vim --version

wget

O wget é um programa de computador usado para recuperar conteúdo de servidores web especificados por endpoints na linha de comando. Para obter mais informações, consulte a documentação do GNU Wget.

wget --version

zip/unzip

Os utilitários zip/unzip usam um formato de arquivo que oferece compactação de dados sem perda de dados. Chame o comando zip para agrupar e compactar arquivos em um único arquivo. Use unzip para extrair arquivos de um arquivo em um diretório especificado.

unzip --version

zip --version

Como instalar a AWS CLI no seu diretório inicial

A exemplo do resto do software pré-instalado em seu ambiente CloudShell, a ferramenta AWS CLI é atualizada automaticamente com atualizações programadas e patches de segurança. Se quiser garantir que você tem a versão mais atualizada da AWS CLI, opte por instalar manualmente a ferramenta no diretório inicial do shell.

Importante

Você precisa instalar manualmente sua cópia da AWS CLI no diretório inicial para que ela esteja disponível na próxima vez que iniciar uma sessão do CloudShell. Essa instalação é necessária porque os arquivos adicionados aos diretórios fora do $HOME são excluídos após a conclusão de uma sessão de shell. Além disso, depois de instalar essa cópia da AWS CLI, ela não é atualizada automaticamente. Em outras palavras, é de sua responsabilidade gerenciar as atualizações e os patches de segurança.

Para mais informações sobre o Modelo de responsabilidade compartilhada da AWS, consulte Proteção de dados no AWS CloudShell.

Para instalar AWS CLI
  1. Na linha de comando do CloudShell, use o comando curl para transferir uma cópia compactada da AWS CLI instalada para o shell:

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  2. Descompacte a pasta compactada:

    unzip awscliv2.zip
  3. Para adicionar a ferramenta a uma pasta especificada, execute o instalador da AWS CLI:

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

    Se for instalado com sucesso, a linha de comando exibirá a seguinte mensagem:

    You can now run: /home/cloudshell-user/usr/local/bin/aws --version
  4. Para sua conveniência, recomendamos que você também atualize a variável ambiental PATH para não precisar especificar o caminho para a instalação da ferramenta ao executar comandos aws:

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

    Se você desfizer essa alteração em PATH, os comandos aws que não apresentam um caminho especificado usarão a versão pré-instalada da AWS CLI por padrão.

Instalação de software de terceiros no ambiente do shell

nota

Recomendamos que você revise o Modelo de Responsabilidade de Segurança Compartilhada antes de instalar qualquer aplicativo de terceiros no ambiente computacional do AWS CloudShell.

Por padrão, todos os usuários do AWS CloudShell têm permissões sudo. Portanto, você pode usar o comando sudo para instalar software que ainda não esteja disponível no ambiente computacional do shell. Por exemplo, você pode usar sudo com o utilitário de gerenciamento de pacotes DNF para instalar cowsay, que gera imagens artísticas ASCII de uma vaca com uma mensagem:

sudo dnf install cowsay

Em seguida, você pode iniciar o programa recém-instalado digitando echo "Welcome to AWS CloudShell" | cowsay.

Importante

Utilitários de gerenciamento de pacotes, como o dnf, instalam programas em diretórios (/usr/bin, por exemplo), que são reciclados quando a sessão de shell termina. Isso significa que o software adicional é instalado e usado por sessão.

Como modificar seu shell com scripts

Se quiser modificar o ambiente de shell padrão, você pode editar um script de shell que é executado toda vez que o ambiente de shell é inicializado. O script .bashrc é executado sempre que o shell bash padrão é iniciado.

Atenção

Se você modificar incorretamente o arquivo .bashrc, talvez não consiga acessar o ambiente do shell posteriormente. É uma boa prática fazer uma cópia do arquivo antes da edição. Você também pode reduzir o risco abrindo dois shells durante a edição do .bashrc. Se você perder o acesso em um shell, ainda terá o login no outro shell e poderá reverter quaisquer alterações.

Se perder o acesso após modificar incorretamente o .bashrc ou qualquer outro arquivo, poderá retornar o AWS CloudShell às configurações padrão excluindo seu diretório inicial.

No procedimento, você modificará o script .bashrc para que seu ambiente de shell alterne automaticamente para a execução do Z shell.

  1. Abra o .bashrc usando um editor de texto (Vim, por exemplo):

    vim .bashrc
  2. Na interface do editor, pressione a tecla I para começar a editar e adicione o seguinte:

    zsh
  3. Para sair e salvar o arquivo .bashrc editado, pressione Esc para entrar no modo de comando do Vim e digite o seguinte:

    :wq

  4. Use o comando source para recarregar o arquivo .bashrc:

    source .bashrc

    Quando a interface da linha de comando estiver disponível novamente, o símbolo do prompt será alterado para % para indicar que agora você está usando o Z shell.