Primeiros Passos

Por quê?

O AWS CLI é uma ferramenta muito útil para realizar tarefas simples na AWS (até algumas mais elaboradas), explorar algumas chamadas de API e fazer pequenos experimentos.

O objetivo deste guia não é transformar você em um ninja do AWS CLI, mas ensinar a usá-lo de uma maneira efetiva. Você aprenderá alguns comandos para desenvolver a intuição e, mais tarde, com o apoio da ajuda embutida conseguirá rapidamente localizar, entender e usar qualquer comando disponível.

Este guia também pode ser útil para quem já usou o AWS CLI antes, mas quer aprender como usá-lo melhor (ajuda, profiles, AWS_DEFAULT_REGION, parâmetro --query).

Checando os Pré-requisitos

Para seguir este guia, você deve ter:

  • Uma conta na AWS
  • Um usuário com super poderes na conta da AWS
  • Um computador com Windows, MacOS ou Linux
  • Um editor de texto (ex: notepad, vi, VS Code)

Instalando

O AWS CLI está disponível nos principais sistemas operacionas: Windows, Linux e MacOS. O passo-a-passo de como instalá-lo está disponível em AWS CLI.

Neste guia, iremos usar o AWS CloudShell, uma forma rápida e gratuita de ter acesso ao AWS CLI disponível na console da AWS para que você não precise gastar tempo neste passo. Entretanto, você também pode instalar o AWS CLI no seu computador para seguir este tutorial.

Para isto, basta acessar o AWS console e clicar no ícone do CloudShell (parte superior direita) como mostrado abaixo.

AWS CloudShell

Após clicar no ícone do CloudShell, após alguns minutos um shell deve aparecer.

AWS CloudShell

Configurando

Se você usar o AWS CloudShell, as credenciais serão obtidas automaticamente a partir do usuário que se autenticou na console. Você pode pular este passo.

Se você optar por instalar o AWS CLI no seu computador, você precisará configurá-lo, isto é, basicamente informar as credencias que serão usadas para autenticar os comandos e a sua região de preferência. Isto pode ser feito com o comando aws configure, mas antes você precisa obter uma access-key e a respectiva secret-key. Para isto, siga as instruções em How do I create an AWS access key?.

aws configure
AWS Access Key ID [None]: <digite-sua-access-key>
AWS Secret Access Key [None]: <digite-sua-secret-key>
Default region name [None]: us-east-1
Default output format [None]:

Pronto, você configurou o AWS CLI!

Começando com a Ajuda

Você está começando de um página em branco, estão vamos recorrer a ajuda do AWS CLI. Ao longo deste guia, você verá que saber usar a ajuda efetivamente permitirá ir bem longe, mesmo sem contar com o google.

Sendo assim, vamos começar com a ajuda geral. Para isto basta digitar aws help.

aws help
NAME
       aws -

DESCRIPTION
       The  AWS  Command  Line  Interface is a unified tool to manage your AWS
       services.

SYNOPSIS
          aws [options] <command> <subcommand> [parameters]

       Use aws command help for information on a  specific  command.  Use  aws
       help  topics  to view a list of available help topics. The synopsis for
       each command shows its parameters and their usage. Optional  parameters
       are shown in square brackets
OPTIONS
       --debug (boolean)

       Turn on debug logging.
...

O resultado mostra a estrutura geral de um comando e costuma ser bem útil. Vamos explorar algumas partes:

  • NAME - o nome do comando
  • DESCRIPTION - um resumo do que ele faz
  • SYNOPSYS - o formato de como usá-lo
  • OPTIONS - as opções disponíveis

Como a ajuda é do comando aws a explicação é bem genérica, mas você verá que ela trará informações mais relevantes nos passos seguintes. Lembre-se o foco é desenvolver a intuição de como usar o AWS CLI.

Neste caso, a parte mais útil é a que mostra a lista dos serviços disponíveis (AVAILABLE SERVICES) dentro do AWS CLI. Ela pode ser encoontrada rolando para baixo (apertando espaço) até chegar em AVAILABLE SERVICES. Outra forma é usando a busca para encontrar o texto desejado (isto não renderiza bem no CloudShell), basta digitar /<texto-a-ser-encontrado>, neste caso, /AVAIL. A partir dali você poderá ver todos os serviços suportados pelo AWS CLI e encontrar ajuda adicional para um serviço específico.

...
AVAILABLE SERVICES
       o accessanalyzer

       o acm

       o acm-pca

       o alexaforbusiness
...

Uma vez que você souber o identificador do serviço, que geralmente é o nome do serviço em letras minúsculas, você poderá pedir a ajuda específica digitando aws <identificador-do-servico> help. Suponha que você queira saber o que está disponível no comando acm (AWS Certificate Manager), basta digitar aws acm help.

aws acm help
...
DESCRIPTION
       Welcome to the AWS Certificate Manager (ACM) API documentation.

       You  can use ACM to manage SSL/TLS certificates for your AWS-based web-
       sites and applications. For general information about  using  ACM,  see
       the       `      AWS      Certificate      Manager      User      Guide
       https://docs.aws.amazon.com/acm/latest/userguide/
       `
       __ .

AVAILABLE COMMANDS
       o add-tags-to-certificate

       o delete-certificate

       o describe-certificate

       o export-certificate

       o get-certificate
...

Olhando a descrição (DESCRIPTION) você ter uma ideia bem melhor do que o serviço oferece, mesmo que você não o conhecesse.

You can use ACM to manage SSL/TLS certificates for your AWS-based web-sites and applications.

O próximo passo é olhar os comandos listados na sessão AVAILABLE COMMANDS. Por exemplo, se você quiser exportar um certificado, o comando export-certificate parece promissor, mas, neste momento, o mais importante é você desenvolver a intuição de como navegar na ajuda.

Na próxima sessão, vamos usar estes aprendizados em um caso prático.

Aprendendo um Comando do Zero

Vamos começar com um objetivo simples e ver como usar o AWS CLI para endereçá-lo.

Suponha que seu gerente pediu para você criar um novo bucket no S3 para armazenar um arquivo. Usando o aprendizado da sessão anterior, você descobrirá que o serviço S3 é identificado no AWS CLI como s3.

Vamos começar, listando os buckets existentes na conta para evitar erros durante a criação. Então como listamos os buckets? Vamos recorrer a ajuda, iniciando pelos comandos disponíveis dentro AWS CLI para o S3.

aws s3 help
...
AVAILABLE COMMANDS
       o cp

       o ls

       o mb

       o mv

       o presign

       o rb

       o rm

       o sync

       o website

Olhando a lista de comandos disponíveis (AVAILABLE COMMANDS), parece que o ls (list) é o mais promissor. Então, vamos ver os detalhes dele usando novamente a ajuda. Ao invés de digitar aws s3 help iremos usar aws s3 ls help. Note que o help vai ficando mais específico aws <identificador-do-servico> <comando-do-servico> help.

aws s3 ls help
...
SYNOPSIS
            ls
          <S3Uri> or NONE
          [--recursive]
          [--page-size <value>]
          [--human-readable]
          [--summarize]
          [--request-payer <value>]
...

O comando pode ser usado de várias maneiras informando uma S3Uri ou não informando (NONE). Além disto, ele parece oferecer alguns parâmetros opcionais (representados entre []) como --recursive e --human-readable, mas iremos ignorá-los nesta sessão. Portanto, vamos ver o que ele retorna sem nenhum parâmetro.

aws s3 ls
2016-11-30 14:43:57 lost-corner-bucket-1
2017-10-11 10:58:10 lost-corner-bucket-2
...
2020-07-26 15:15:32 lost-corner-bucket-n

Agora que já vimos os buckets existentes na conta, vamos usar o AWS CLI para criar um novo bucket. Vamos começar entendendo como usar o comando de criar um bucket aws s3 mb (make bucket).

aws s3 mb help
...

NAME
       mb -

DESCRIPTION
       Creates an S3 bucket.

       See 'aws help' for descriptions of global parameters.

SYNOPSIS
            mb
          <S3Uri>

Fácil, não?! Note que o comando precisa de uma S3Uri e não o nome do bucket, isto é, você deverá usar s3://nome-do-bucket ao invés de somente nome-do-bucket. Os nomes dos buckets no S3 são globalmente únicos, isto é, se você tentar criar um bucket com o mesmo nome que você, alguém da sua empresa ou mesmo outro cliente já usou, o S3 não deixará. Para evitar isto, melhor adicionar algum prefixo “único” ao nome, por exemplo, seu nome, alias do email ou nome da empresa. Neste caso, usarei <seu-prefixo> para dizer que deverá trocar pelo seu prefixo. Você pegou a ideia, portanto não copie sem substituir.

aws s3 mb s3://<seu-prefixo>-meu-bucket

Pronto, você criou o seu primeiro bucket usand o AWS CLI.

Agora vamos copiar um arquivo para o bucket. Você pode usar qualquer arquivo com informações não sensíveis do seu computar ou criar um (echo "teste" > arquivo.txt).

Vamos começar explorando o comando de cópia do AWS CLI. Para isto, parece que o comando cp (copy), parece o correto. Vamos checar…

aws s3 cp help
...
DESCRIPTION
       Copies  a local file or S3 object to another location locally or in S3.

       See 'aws help' for descriptions of global parameters.

SYNOPSIS
            cp
          <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
          [--dryrun]
...

Olhando a descrição (DESCRIPTION) parece que é ele mesmo que estamos buscando (“Copies a local file … to another location”). Vamos para a descrição (SYNOPSIS) e vemos que precisamos do caminho local seguido de um S3Uri. O comando traz várias opções de cópia, mas iremos ignorá-las agora.

Então de posso de todas as informações, vamos fazer a cópia.

aws s3 cp arquivo.txt s3://<seu-prefixo>-meu-bucket

E para finalizar, vamos ver se o arquivo está no bucket.

aws s3 ls s3://<seu-prefixo>-meu-bucket

Parabéns, você completou a tarefa! 👏👏👏

Praticando

Agora o que já aprendeu como manipular alguns comando do S3, que tal um desafio?

Você não vai querer deixar o arquivo de teste que subiu na parte anterior ocupando espaço no S3. Que tal usar o AWS CLI para apagá-lo? Boa sorte!

Travou?! Deixe a sua dúvida no comentários no final da página ou aguarde a próxima parte que trará um exemplo de solução.

Fechando

Na primeira parte do guia você aprendeu a:

  • instalar o AWS CLI
  • abrir e usar o AWS CloudShell
  • dar os primeiros passos com o AWS CLI
  • entender as principais sessões da ajuda e usá-la de uma maneira efetiva
  • resolver um problema do dia-a-dia

Se você gostou deste guia, não esqueça de deixar a sua opinião e o que gostaria ver nas próximas partes nos comentários.

Para saber sobre as próximas atualizações, deixe o seu e-mail na caixa abaixo. Não iremos mandar spam!

Referências


Comentários

comments powered by Disqus