> For the complete documentation index, see [llms.txt](https://aws101.leandronsp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://aws101.leandronsp.com/configurar-aws-cli.md).

# Configurar AWS CLI

Após termos uma conta devidamente criada, a seguir é necessário que façamos a instalação e configuração do executável [AWS CLI](https://aws.amazon.com/cli/) na linha de comando do terminal.&#x20;

### Instalação

Siga [este passos](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) para instalação de acordo com teu sistema operacional.

### Configuração

Vamos começar por executar `aws configure --profile personal`. O CLI irá pedir a chave de acesso e a senha, que estão no `.csv` gerado no momento da criação do IAM user.

Irá pedir também a `region` e `output`, que podem ser `us-east-1` (North Virginia) e `json`, respectivamente.&#x20;

No fim, o CLI deverá ter criado os arquivos `~./.aws/credentials` e `~/.aws/config`. Pode conferir com o comando `cat`:

```bash
leandronsp:~ $ cat ~/.aws/credentials 
[personal]
aws_access_key_id = AKIA******Y9
aws_secret_access_key = aBTL***************DroW
```

```bash
leandronsp:~ $ cat ~/.aws/config
[profile personal]
region = us-east-1
output = json
```

### Utilizando a API do AWS CLI

A [API do AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/index.html) é vasta, cobrindo quase todos senão todos os serviços existentes na AWS. Praticamente tudo o que conseguimos fazer pela console web, deveríamos também conseguir pelo AWS CLI.&#x20;

Isto abre portas para todo um mundo de automação, e sendo esta capacidade não exclusiva apenas à AWS, outros cloud-providers como GCP e Microsoft Azure  possuem também seus respectivos CLI's com acesso a todos os serviços existentes.&#x20;

Se você digitar `aws` no terminal, verá que ele mostra a utilização do comando, que tem o seguinte padrão:

```bash
aws <command> <subcommand>
```

Onde "command" representa um serviço específico da AWS (como `ec2`, `s3`, etc) e "subcommand" é uma das ações disponíveis para aquele serviço em específico.

#### Listar as instâncias virtuais no EC2

```bash
aws --profile personal ec2 describe-instances

### note que o "profile", quando passado como opção, 
### vai utilizar as credenciais [personal] do arquivo 
### ~/.aws/credentials. 
#
### caso queira omitir, tem que executar o `aws configure` sem o profile,
### para que seja utilizado como profile default.
```

Output:

```bash
{
    "Reservations": []
}
```

No nosso caso, ainda não temos nenhuma instância virtual criada, pelo que será o objetivo das próximas sessões.&#x20;
