Pular para o conteúdo principal

Instalação do AWS CLI v2

O que é AWS CLI?​

AWS CLI (Command Line Interface) é a ferramenta oficial de linha de comando da Amazon para interagir com os serviços AWS. Ela permite executar comandos para gerenciar seus recursos AWS a partir de um terminal.

┌─────────────────────────────────────────────────────────────┐
│ AWS CLI │
├─────────────────────────────────────────────────────────────┤
│ │
│ Terminal ──► aws <service> <action> <options> │
│ │ │ │ │
│ │ │ └── Parâmetros │
│ │ └── Comando (create, list...) │
│ └── Serviço AWS (ec2, s3, lambda...) │
│ │
│ Exemplos: │
│ $ aws s3 ls # Listar buckets S3 │
│ $ aws ec2 describe-instances # Listar instâncias EC2 │
│ $ aws lambda list-functions # Listar funções │
│ │
└─────────────────────────────────────────────────────────────┘

Pré-requisitos​

Antes de instalar o AWS CLI, certifique-se de ter:

  • Permissões de administrador na sua máquina
  • Conexão com a Internet
  • Terminal/PowerShell funcional

Instalação no Windows​

Método 1: Instalador MSI (Recomendado)​

Passo 1: Baixar o instalador

Baixe o AWS CLI v2 do site oficial:

Passo 2: Executar o instalador

  1. Dê um duplo clique no arquivo AWSCLIV2.msi
  2. Siga o assistente de instalação
  3. Aceite os termos de uso
  4. Clique em "Install"
  5. Aguarde o término da instalação

Passo 3: Verificar a instalação

Abra um novo PowerShell e execute:

aws --version

Resultado esperado:

aws-cli/2.x.x Python/3.x.x Windows/10 exe/AMD64 prompt/off

Método 2: Via PowerShell (Alternativo)​

# Baixar e instalar
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /quiet

# Verificar (novo terminal)
aws --version

Instalação no macOS​

Método 1: Pacote oficial (Recomendado)​

# Baixar o pacote
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"

# Instalar
sudo installer -pkg AWSCLIV2.pkg -target /

# Verificar
aws --version

Método 2: Via Homebrew​

# Instalar via Homebrew
brew install awscli

# Verificar
aws --version

Instalação no Linux​

Método universal (todas as distribuições)​

# Baixar
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

# Descompactar
unzip awscliv2.zip

# Instalar
sudo ./aws/install

# Verificar
aws --version

# Limpar
rm -rf aws awscliv2.zip

Ubuntu/Debian​

# Instalar dependências
sudo apt update
sudo apt install -y unzip curl

# Depois siga o método universal acima

Configuração do AWS CLI​

Configuração para LocalStack​

Como estamos usando o LocalStack (emulador local da AWS), vamos configurar o AWS CLI para apontar para o LocalStack ao invés da AWS real.

Passo 1: Criar um perfil LocalStack

aws configure --profile localstack

Digite os seguintes valores:

AWS Access Key ID [None]: test
AWS Secret Access Key [None]: test
Default region name [None]: us-east-1
Default output format [None]: json
Por que "test"?

O LocalStack não precisa de credenciais reais. Os valores "test" funcionam perfeitamente.

Passo 2: Criar um alias (opcional, mas recomendado)

Para evitar digitar --endpoint-url toda vez:

Windows PowerShell:

# Adicionar ao perfil do PowerShell
notepad $PROFILE

# Adicione esta linha:
function awslocal { aws --endpoint-url=http://localhost:4566 --profile localstack $args }

macOS/Linux:

# Adicionar ao ~/.bashrc ou ~/.zshrc
echo 'alias awslocal="aws --endpoint-url=http://localhost:4566 --profile localstack"' >> ~/.bashrc
source ~/.bashrc

Verificação da Configuração​

# Ver a configuração
aws configure list --profile localstack

Resultado esperado:

      Name                    Value             Type    Location
---- ----- ---- --------
profile localstack manual --profile
access_key ****************test shared-credentials-file
secret_key ****************test shared-credentials-file
region us-east-1 config-file ~/.aws/config

Estrutura dos Arquivos de Configuração​

O AWS CLI armazena sua configuração em dois arquivos:

~/.aws/
├── config # Parâmetros gerais (região, output)
└── credentials # Chaves de acesso (access key, secret key)

Arquivo ~/.aws/config​

[default]
region = us-east-1
output = json

[profile localstack]
region = us-east-1
output = json

Arquivo ~/.aws/credentials​

[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY

[localstack]
aws_access_key_id = test
aws_secret_access_key = test

Comandos Básicos do AWS CLI​

Estrutura de um comando​

aws <service> <action> [--options]

Comandos úteis​

ComandoDescrição
aws --versionVersão do AWS CLI
aws helpAjuda geral
aws <service> helpAjuda para um serviço
aws configure listExibir a configuração
aws sts get-caller-identityVerificar a identidade

Exemplos por serviço​

S3 (Armazenamento):

aws s3 ls                          # Listar buckets
aws s3 mb s3://meu-bucket # Criar um bucket
aws s3 cp arquivo.txt s3://bucket/ # Copiar um arquivo

EC2 (Compute):

aws ec2 describe-instances         # Listar instâncias
aws ec2 describe-vpcs # Listar VPCs
aws ec2 describe-security-groups # Listar Security Groups

Lambda (Serverless):

aws lambda list-functions          # Listar funções
aws lambda invoke --function-name X out.txt # Invocar

Opções Globais Importantes​

OpçãoDescrição
--profile <name>Usar um perfil específico
--region <region>Especificar a região
--output <format>Formato de saída (json, text, table)
--endpoint-url <url>URL personalizada (para LocalStack)
--query <jmespath>Filtrar a saída JSON

Exemplos com opções​

# Usar o perfil localstack
aws s3 ls --profile localstack

# Alterar a região
aws ec2 describe-instances --region eu-west-1

# Saída em tabela
aws ec2 describe-instances --output table

# Filtrar com JMESPath
aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId'

Teste da Instalação​

Sem LocalStack (verificação básica)​

# Verificar a versão
aws --version

# Verificar a configuração
aws configure list --profile localstack

Com LocalStack (após instalação do LocalStack)​

# Inicie o LocalStack primeiro (veja a próxima seção)

# Testar S3
aws --endpoint-url=http://localhost:4566 s3 ls --profile localstack

# Ou com o alias
awslocal s3 ls

Solução de Problemas​

Problema: "aws command not found"​

Windows:

  1. Feche e reabra o PowerShell
  2. Verifique o PATH: $env:PATH
  3. Reinstale o AWS CLI

macOS/Linux:

# Verificar o local
which aws

# Se vazio, adicione ao PATH
export PATH="/usr/local/bin:$PATH"

Problema: "Unable to locate credentials"​

# Verificar a configuração
aws configure list

# Se vazio, reconfigure
aws configure --profile localstack

Problema: "Connection refused"​

O LocalStack provavelmente não está iniciado. Veja a próxima seção.

Captura de Tela Esperada​

Após uma instalação bem-sucedida, você deve ver:

PS C:\Users\SeuNome> aws --version
aws-cli/2.15.0 Python/3.11.6 Windows/10 exe/AMD64 prompt/off

PS C:\Users\SeuNome> aws configure list --profile localstack
Name Value Type Location
---- ----- ---- --------
profile localstack manual --profile
access_key ****************test shared-credentials-file
secret_key ****************test shared-credentials-file
region us-east-1 config-file ~/.aws/config

Checklist de Validação​

  • AWS CLI v2 instalado (aws --version funcionando)
  • Perfil "localstack" configurado
  • Arquivos ~/.aws/config e ~/.aws/credentials criados
  • Alias awslocal criado (opcional)

Referência Rápida de Comandos AWS CLI​

Sintaxe Geral​

aws [service] [operation] [parametros] [options]

Exemplo:

aws iam get-policy --policy-arn arn:aws:iam::123456789:policy/MyPolicy

Comandos EC2​

AçãoComando
Modificar uma instânciaaws ec2 modify-instance-attribute --instance-id i-123 --instance-type m5.xlarge
Criar uma AMIaws ec2 create-image --instance-id i-123abc --name "Base_Image"
Copiar AMI para outra regiãoaws ec2 copy-image --source-image-id ami-123 --source-region us-east-1 --region eu-west-1 --name "prod-server"
Registrar uma AMIaws ec2 register-image --root-device-name /dev/sda1 --name "linux_ami"

Comandos EBS​

AçãoComando
Criar um volumeaws ec2 create-volume --size 80 --availability-zone us-east-1a --volume-type gp3
Anexar um volumeaws ec2 attach-volume --volume-id vol-123 --instance-id i-abc --device /dev/sdf

Comandos S3​

AçãoComando
Criar um bucket (API)aws s3api create-bucket --bucket meu-bucket
Criar um bucket (simples)aws s3 mb s3://meu-bucket
Listar bucketsaws s3 ls
Copiar um arquivoaws s3 cp arquivo.txt s3://meu-bucket/
Sincronizaraws s3 sync ./local s3://meu-bucket/

Comandos IAM​

AçãoComando
Listar usuáriosaws iam list-users
Obter uma policyaws iam get-policy --policy-arn arn:aws:iam::123:policy/X
Listar rolesaws iam list-roles

Metadata e UserData (a partir de uma instância EC2)​

# Recuperar metadados da instância
curl http://169.254.169.254/latest/meta-data/

# Exemplos de metadados
curl http://169.254.169.254/latest/meta-data/instance-id
curl http://169.254.169.254/latest/meta-data/public-ipv4
curl http://169.254.169.254/latest/meta-data/ami-id

# Recuperar o user-data (script de inicialização)
curl http://169.254.169.254/latest/user-data

Opções Globais Úteis​

OpçãoDescriçãoExemplo
--profileUsar um perfilaws s3 ls --profile prod
--regionEspecificar a regiãoaws ec2 describe-instances --region eu-west-1
--outputFormato de saídaaws ec2 describe-instances --output table
--queryFiltrar JSONaws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId'
--dry-runTestar sem executaraws ec2 run-instances --dry-run

Formatos de Saída​

# JSON (padrão)
aws ec2 describe-instances --output json

# Tabela legível
aws ec2 describe-instances --output table

# Texto puro
aws ec2 describe-instances --output text
Dica

Mantenha esta referência sempre à mão! Estes comandos são usados diariamente por administradores AWS.


Quiz de Validação​

  1. Qual comando verifica a versão do AWS CLI?
  2. Onde são armazenadas as credenciais AWS?
  3. Qual é o formato de um comando AWS CLI?
  4. Por que usamos --endpoint-url com o LocalStack?
  5. Qual comando lista os buckets S3?

Próxima seção: Cheatsheet AWS CLI Completo