# Amazon Q CLI: a IA que usei para trabalhar com AWS

> Como usei o Amazon Q CLI no terminal para listar EC2 e criar infraestrutura com Terraform e SSM. Aula de jul/2025; IA muda rápido.

- Autor: Henrylle Maia, consultor AWS
- Publicado em: 2026-10-15
- Assuntos: IA
- URL: https://pages.formacaoaws.com.br/blog/amazon-q-cli-ia-para-trabalhar-com-aws/
- Aula de origem: "Conheça a melhor IA para trabalhar com AWS" (https://www.youtube.com/watch?v=qpEKtvfxseo)

Usei o Amazon Q CLI, a IA da AWS que roda no terminal, para listar instâncias, gerar relatórios e criar uma EC2 com Terraform e acesso por SSM. Neste post mostro o passo a passo, os prompts e por que ele foi a IA que mais usei no dia a dia com AWS.

> **Importante:** gravei esta aula em julho de 2025. Ferramentas de IA mudam rápido: nomes, planos, modelos e comandos podem ter mudado desde então. Use o que está aqui como método e confira os detalhes atuais na documentação oficial da AWS.

## Qual IA para qual tarefa

Nos meses anteriores à gravação, testei quatro IAs e passei a pagar por três. Cada uma ficou com um papel:

- **ChatGPT:** geração de imagem e construção de copy, pouco para desenvolvimento.
- **Cursor:** desenvolvimento, no modo agent. Encadeia bem as operações quando você passa contexto, mas para o que depende do terminal ainda o acho lento.
- **Amazon Q:** o campeão da minha rotina. Uso no modo agent e no terminal, onde ele tem o contexto da sua aplicação e da sua máquina.

No modo **ask**, a IA responde e você executa. No modo **agent**, ela executa as tarefas por você, com a sua autorização.

Para programação, os modelos da Claude (4, 3.7 e 3.5, disponíveis no Cursor e no Amazon Q) são os melhores que usei. O que decidiu foi a especialização em AWS: tentei as mesmas operações no Cursor e no Amazon Q, e o Cursor não chegou perto. Com um prompt contextualizado e completo, o Amazon Q entregou o que eu buscava com quase zero interrupção.

## Passo 1: instale e abra o Amazon Q CLI

A documentação "Installing Amazon Q for command line" traz o passo a passo para macOS, Linux e Windows (no Windows, via WSL). Depois de habilitar, o plano gratuito me serviu por uns 10 a 12 dias; passado esse período, contratei o plano Pro.

Para abrir o assistente, digite:

```bash
q
```

Por estar no terminal, ele alcança o que está na sua máquina. Dentro da sessão, você executa um comando bash digitando `!` na frente dele.

## Passo 2: configure as credenciais só na sessão

Minha primeira recomendação: configure as credenciais **a nível de sessão** e não trabalhe com profile. Quem tem vários profiles pode esquecer de informar qual usar e mexer no ambiente errado. O meu medo não é o Amazon Q fazer algo errado, é eu pedir algo errado e ele executar.

Para testar, perguntei em linguagem natural:

```text
quantas instâncias eu tenho rodando na virginia
```

Ele usou a CLI da AWS e listou as 5 instâncias EC2 da região: 4 de um cluster ECS com instâncias spot e uma de demonstração, todas T3 micro.

## Passo 3: escolha o modelo e conheça o MCP

O comando `/model` mostra os modelos e deixa você escolher. Eu trabalhava com o Claude 4 Sonnet. O `/help` lista os demais comandos, e o que merece destaque é o **MCP**.

Imagine pedir um relatório de custos e, quando terminar, um aviso por Telegram. O relatório usa as credenciais da sessão; o aviso depende de o agente chegar ao seu Telegram. O MCP Server é essa porta USB que pluga a IA a um serviço, como e-mail, Telegram ou banco de dados.

```text
/mcp
```

O comando lista os MCP servers configurados. No meu caso, havia um para o Postgres: depois de configurar o acesso uma vez, é só pedir para ele se conectar ao banco.

## Passo 4: peça uma infraestrutura completa

O teste da gravação foi criar uma EC2 com Terraform. O resultado depende do prompt: quanto mais contexto e requisito, menos interrupção. Este foi o meu pedido:

```text
No meu diretório 2-iac-code-generation, crie um novo diretório para um novo projeto de exemplo Terraform. Será um projeto web. Quero apenas um hello-world e dizer que o projeto foi criado com o Amazon Q. O acesso será através de SSM: crie uma role de acesso SSM para essa finalidade. Crie também um security group que vai estar aberto apenas na porta 80.
```

O Amazon Q pede autorização antes de cada ação (criar o diretório, criar o `main.tf`). Você acompanha e libera. Ao terminar, ele entrega o projeto com um README: copie o `terraform.tfvars.example` para `terraform.tfvars` e edite os valores (região, ambiente, tipo da instância, volume e se quer IP elástico).

Antes de aplicar, revisei o código: provider da AWS na versão 5 ou superior, Amazon Linux 2, entrada só na porta 80, role IAM com instance profile e `user_data`.

**Fluxo:** Prompt (contexto completo) → Autorização (você aprova cada ação) → Terraform (projeto e README) → Plan e apply (EC2 no ar) → Conferência (console e destroy)

## Passo 5: aplique, confira no console e destrua

Pedi que ele entrasse no diretório, inicializasse e rodasse um plan e, na sequência, um apply. Os comandos são os do Terraform:

```bash
terraform init
terraform plan
terraform apply
```

O `init` prepara o projeto, o `plan` mostra o que será criado e o `apply` cria. Em seguida, conferi no console da AWS:

- **EC2:** a instância Hello World Web Server já estava sendo criada, com IP público.
- **Role:** a política era a `AmazonSSMManagedInstanceCore`.
- **Security group:** entrada só na porta 80.

Abri o link que ele me entregou e a página respondeu.

![A página Hello World no ar, servida pela EC2 criada pelo Terraform, com SSM e porta 80 informados](https://pages.formacaoaws.com.br/blog/assets/posts/amazon-q-cli-ia-para-trabalhar-com-aws/hello-world-no-ar.webp)

Faltou acertar um detalhe: no rodapé, Hostname e Data aparecem como o texto literal `$(hostname)` e `$(date)`. Eu poderia pedir a correção ao Amazon Q.

Para não deixar nada cobrando, pedi que ele destruísse os recursos:

```bash
terraform destroy
```

> **Importante:** o grande trunfo é você entender o que precisa ser feito. Na primeira versão do Terraform que ele gerou para preparar a aula, a porta 22 do SSH veio liberada globalmente. Pedi a correção e a migração para SSM. Quem não sabe o que pedir nem o que conferir não sai do lugar, e a IA deixa passar o que você não vigia.

## O que mais a IA entregou: relatórios

O Amazon Q também gerou relatórios em HTML. Um deles, de troubleshooting, documentou a migração de acesso por SSH para SSM numa aplicação web: objetivo, mudanças, log do sistema, link para a aplicação e botão para imprimir.

O outro foi um relatório de análise de custo e otimização, com gráfico de custo por serviço, análise das instâncias e recomendações. Os dados dele não são reais: pedi para modificar os dados da minha conta e combinei com dados de outras, só para mostrar o que é possível. Na segurança, ele apontou que as instâncias ainda usavam o IMDSv1 em vez do IMDSv2 e sugeriu criptografia por padrão, e fechou com um plano de ação em semanas.

![Ações imediatas de segurança do relatório: restringir a porta 22, habilitar IMDSv2 e criptografia por padrão](https://pages.formacaoaws.com.br/blog/assets/posts/amazon-q-cli-ia-para-trabalhar-com-aws/acoes-de-seguranca.webp)

![Plano de ação do relatório em três semanas: ações imediatas, melhorias de segurança e otimização de custos](https://pages.formacaoaws.com.br/blog/assets/posts/amazon-q-cli-ia-para-trabalhar-com-aws/plano-de-acao.webp)

Usei o Amazon Q também para mover várias EC2 de uma subnet para outra. O prompt pedia, para cada instância, gerar uma AMI, migrar mantendo IAM role, IPv4, security group e user data, e passar as informações da nova subnet.

## Checklist

- Abra o Amazon Q CLI com `q` e escolha o modelo com `/model`.
- Configure as credenciais AWS só na sessão do terminal, sem profile.
- Teste com uma pergunta simples, como quantas instâncias EC2 estão rodando numa região.
- Use `/mcp` para ver os MCP servers e plugar a IA nos serviços que você usa.
- Escreva o prompt com contexto e requisitos completos: diretório, acesso por SSM, security group na porta 80.
- Autorize cada ação só depois de entender o que ela faz.
- Rode `terraform plan` e `terraform apply`, confira role, security group e instância no console e use `terraform destroy` ao terminar.

A IA acelera o trabalho, mas quem sabe o que pedir e o que conferir continua sendo você.
