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
- Dê um duplo clique no arquivo
AWSCLIV2.msi - Siga o assistente de instalação
- Aceite os termos de uso
- Clique em "Install"
- 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
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
| Comando | Descrição |
|---|---|
aws --version | Versão do AWS CLI |
aws help | Ajuda geral |
aws <service> help | Ajuda para um serviço |
aws configure list | Exibir a configuração |
aws sts get-caller-identity | Verificar 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ção | Descriçã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:
- Feche e reabra o PowerShell
- Verifique o PATH:
$env:PATH - 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 --versionfuncionando) - Perfil "localstack" configurado
- Arquivos ~/.aws/config e ~/.aws/credentials criados
- Alias
awslocalcriado (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ção | Comando |
|---|---|
| Modificar uma instância | aws ec2 modify-instance-attribute --instance-id i-123 --instance-type m5.xlarge |
| Criar uma AMI | aws ec2 create-image --instance-id i-123abc --name "Base_Image" |
| Copiar AMI para outra região | aws ec2 copy-image --source-image-id ami-123 --source-region us-east-1 --region eu-west-1 --name "prod-server" |
| Registrar uma AMI | aws ec2 register-image --root-device-name /dev/sda1 --name "linux_ami" |
Comandos EBS
| Ação | Comando |
|---|---|
| Criar um volume | aws ec2 create-volume --size 80 --availability-zone us-east-1a --volume-type gp3 |
| Anexar um volume | aws ec2 attach-volume --volume-id vol-123 --instance-id i-abc --device /dev/sdf |
Comandos S3
| Ação | Comando |
|---|---|
| Criar um bucket (API) | aws s3api create-bucket --bucket meu-bucket |
| Criar um bucket (simples) | aws s3 mb s3://meu-bucket |
| Listar buckets | aws s3 ls |
| Copiar um arquivo | aws s3 cp arquivo.txt s3://meu-bucket/ |
| Sincronizar | aws s3 sync ./local s3://meu-bucket/ |
Comandos IAM
| Ação | Comando |
|---|---|
| Listar usuários | aws iam list-users |
| Obter uma policy | aws iam get-policy --policy-arn arn:aws:iam::123:policy/X |
| Listar roles | aws 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ção | Descrição | Exemplo |
|---|---|---|
--profile | Usar um perfil | aws s3 ls --profile prod |
--region | Especificar a região | aws ec2 describe-instances --region eu-west-1 |
--output | Formato de saída | aws ec2 describe-instances --output table |
--query | Filtrar JSON | aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' |
--dry-run | Testar sem executar | aws 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
Mantenha esta referência sempre à mão! Estes comandos são usados diariamente por administradores AWS.
Quiz de Validação
- Qual comando verifica a versão do AWS CLI?
- Onde são armazenadas as credenciais AWS?
- Qual é o formato de um comando AWS CLI?
- Por que usamos
--endpoint-urlcom o LocalStack? - Qual comando lista os buckets S3?
Próxima seção: Cheatsheet AWS CLI Completo