Olá pessoal, hoje vamos ver como podemos utilizar os serviços da AWS em ambiente local utilizando o LocalStack.
AWS e Localstack
AWS
Antes de entrarmos em detalhes sobre o localstack, precisamos entender como que funciona os recursos de um cloud provider, no caso a AWS, ela nos fornece uma dezenas de serviços que podemos utilizar dentro de nossos projetos, sendo alguns deles:
- S3;
- SQS;
- SNS;
- Lambda;
- RDS.
Para utilizarmos esses serviços, precisamos criar uma conta válida e configurar os serviços que nossa aplicação irá utilizar, aqui podemos pensar, se temos uma unica conta, como vamos testar as funcionalidades da aplicação antes de subir para produção ?
Existem várias estratégias para testar aplicações que usam algum serviço da cloud, segue algumas delas:
- Ter contas separadas para Desenvolvimento, Homologação, Produção, etc;
- Criar VPCs para ambientes Desenvolvimento, Homologação, Produção, etc;
- Utilizar o AWS Organizations para gerenciar contas e ambientes.
Todas essas possibilidades são válidas e são muito utilizadas, mas com o uso do Localstack, podemos reduzir os custos de termos várias contas, ou ambientes exclusivos de desenvolvimento e homologação.
Localstack
O Localstack é uma ferramenta que permite simular os serviços da AWS em ambiente local, ele ajuda no processo de desenvolvimento, onde podemos testar as funcionalidades da aplicação sem a necessidade de uma conta do cloud provider.
Utilizando o Localstack
Instalação
Para utilizarmos o localstack, antes precisamos realizar a sua instalação, existem algumas formas que podemos ver aqui, neste exemplo, iremos utilizar o localstack através do Docker.
AWS CLI
Uma outra ferramenta necessária é o AWS CLI, este é utilizado para realizar configuração e provisionar recursos na AWS através da linha de comando, a comunicação com o Localstack também acontece através do CLI, bastando apenas especificar o atributo endpoint-url.
Utilizando o LocalStack com AWS S3
Como sabemos, o S3 é um serviço da AWS para armazenar arquivos e objetos, para demostrar o uso do LocalStack com S3, vamos seguir os passos abaixo:
Criando o container LocalStack
docker run -d -p 4566:4566 -e SERVICES=s3 localstack/localstack:0.12.2
Aqui podemos passar através da variável SERVICES quais serviços queremos utilizar, no caso, queremos apenas o S3.
Após criação do container, podemos verificar o funcionamento:
http://localhost:4566/health
Criando um S3 Bucket
aws s3 mb s3://example-bucket --endpoint-url http://localhost:4566
Aqui criamos um bucket chamado example-bucket, e passamos o atribuito --endpoint-url com o endereço do LocalStack, esta flag seta no AWS CLI qual é o endpoint do cloud provider.
Listando os S3 Buckets
aws s3 ls --endpoint-url http://localhost:4566
Aqui listamos todos os buckets criados.
Enviando arquivos para o S3 Bucket
aws s3api put-object --bucket example-bucket --key README.md --body README.md --endpoint-url http://localhost:4566
Neste exemplo, iremos enviar um arquivo chamado README.md para o bucket criado anteriormente.
Recuperando arquivos do S3 Bucket
Após podemos recuperar o arquivo através da URL:
http://http://localhost:4566/example-bucket/README.md
Excluindo S3 Bucket
aws s3 rb s3://example-bucket --endpoint-url http://localhost:4566 --force
Aqui iremos excluir o bucket example-bucket, perceba que passamos a flag --force, esta força a remoção mesmo que o bucket não esteja vazio.
Código de exemplo
Comentários
Postar um comentário