Trabalhando com AWS em um ambiente localhost
Tags: aws, localhost
Published: 2024-02-15 19:57:34

---
title: Trabalhando com AWS em um ambiente localhost
published: true
description: 
tags: AWS, 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](https://docs.localstack.cloud/getting-started/installation/).


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:

```shell
localstack start -d
```

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](https://app.localstack.cloud/dashboard) 

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

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/75lr4kkulbzoq4vm0hm4.png)


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:

```shell
aws configure --profile localstack
```

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h5sy8zmh33hzx9axoclw.png)


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:

```shell
aws --endpoint-url=http://localhost:4566 s3 mb s3://nome-do-seu-buck --profile localstack
```

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


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2dmg9llpsjm979ny503m.png)

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](https://github.com/programadriano/exemplo-aws-local) 

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

```shell
aws --endpoint-url=http://localhost:4566 --profile localstack s3api put-bucket-website --bucket site-moto --website-configuration file://configuracao.json
```

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:

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

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

```shell
http://localhost:4566/nome-do-seu-bucket/index.html
```

No meu exemplo ficou:

```shell
http://localhost:4566/site-moto/index.html
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9v230cbei8o9404ds0w3.png)

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