DEV Community

Thiago da Silva Adriano
Thiago da Silva Adriano

Posted on

Trabalhando com AWS em um ambiente localhost

Veja neste artigo como explorar alguns dos recursos da AWS no seu ambiente localhost.

É isso mesmo, pessoal, existe uma forma de explorarmos alguns dos recursos da AWS sem a necessidade de usarmos o nosso cartão de crédito, e neste artigo demonstrarei para vocês como criar um exemplo prático utilizando esse recurso.

Isso é possível através da utilização de algo com o qual trabalhamos há um bom tempo: a combinação do Docker com o LocalStack.

O Docker já faz parte das nossas principais stacks há algum tempo, por esse motivo, pularei a apresentação dele, avançando para o [LocalStack]](https://www.localstack.cloud/).

LocalStack é uma ferramenta de simulação de nuvem que permite desenvolver e testar aplicações baseadas na nuvem da Amazon Web Services (AWS) em um ambiente local (127.0.0.1), sem a necessidade de consumir recursos da nuvem real da AWS.

Essa ferramenta simula vários serviços da AWS, oferecendo uma forma econômica e eficiente para que possamos testar a nossas aplicações antes de implantá-las no ambiente da AWS.

Bom, avançando para parte prática, você precisa:

  • Ter o docker configurado na sua máquina;
  • Baixar um instalador da LocalStack de acordo com o seu S.O (Sistema Operacional), no seguinte link: Download.

Com a etapa dos recursos OK, o próximo passo será iniciar o localstack. Para isso, abra um terminal no seu computador e execute o seguinte comando nele:

localstack start -d
Enter fullscreen mode Exit fullscreen mode

Esse comando deve subir os recursos da AWS no seu ambiente local.

Agora para verificar se o seu ambiente esta funcionando corretamente, abra a url: Dash Localstack

Em seguida clique em Default Instance para verificar todos recursos que estão disponiveis para você testar:

Image description

Bom, com o ambiente configurado vamos a um exemplo prático. Para isso, vamos configurar o nosso aws cli com o nosso ambiente local, em seguida vamos criar um bucket no s3 e subir um site estático nele.

Execute o seguinte comando no seu terminal:

aws configure --profile localstack
Enter fullscreen mode Exit fullscreen mode

Quando solicitado, você pode inserir valores fictícios para AWS Access Key ID e AWS Secret Access Key. Para a região, use uma região válida da AWS (por exemplo, us-east-1) e para o output format, você pode deixar como json.

Image description

Com a etapa da AWS CLI configurada e apotando para o localstack, vamos criar um Bucket no S3 do LocalStack.

No seu terminal, digite o seguinte comando:

aws --endpoint-url=http://localhost:4566 s3 mb s3://nome-do-seu-buck --profile localstack
Enter fullscreen mode Exit fullscreen mode

Para verificar se o bucket foi criado corretamente, você pode acessar o dash a clicar no S3:

Image description

Agora vamos fazer upload do nosso site para o S3. Para pular a etapa de criação de um novo projeto, eu utilizarei um site que eu criei para este artigo, caso tenha interesse em utilizar ele, segue o seu link no meu Github: site-exemplo

Ainda no seu terminal e dentro do diretório onde esta o seu site, execute os seguintes comandos nele:

aws --endpoint-url=http://localhost:4566 --profile localstack s3api put-bucket-website --bucket site-moto --website-configuration file://configuracao.json
Enter fullscreen mode Exit fullscreen mode

Este comando vai configurar o nosso bucket para hospedar um site.

Agora execute o seguinte comando para fazer upload dos seus arquivos para o S3:

thiagoadriano@Thiagos-MBP exemplo_html % aws --endpoint-url=http://localhost:4566 --profile localstack s3 cp ./ s3://site-moto/ --recursive
Enter fullscreen mode Exit fullscreen mode

Para verificar se os passos anteriores funcionaram corretamente, abra o seguinte endereço no seu navegador:

http://localhost:4566/nome-do-seu-bucket/index.html
Enter fullscreen mode Exit fullscreen mode

No meu exemplo ficou:

http://localhost:4566/site-moto/index.html
Enter fullscreen mode Exit fullscreen mode

Image description

Bem legal né? Espero que tenham gostado e até um próximo artigo pessoal :)

Top comments (0)