Neste artigo vamos abordar a Localstack, que simula localmente alguns dos serviços da cloud AWS.
Assim como o uso de containers tornou-se um padrão de ambiente para desenvolvimento de software desde alguns anos atrás, creio que podemos dizer o mesmo da Localstack quando o foco é o desenvolvimento para a cloud AWS.
A Localstack é um conjunto de ferramentas que simula o ambiente cloud AWS, com isto podemos desenvolver e testar localmente soluções como microsserviços ou funções, acessando serviços existentes na AWS, em nossa própria máquina para então quando estiver tudo ok, fazer o deploy na cloud AWS.
A maneira que considero mais fácil e rápida para termos a Localstack rodando, é fazendo uso da imagem oficial para containers. Para isso podemos criar um arquivo com o nome compose.yml para o Podman com o conteúdo abaixo:
version: "3.8"
services:
localstack:
container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}"
image: localstack/localstack:1.3.1
ports:
- "127.0.0.1:4566:4566" # LocalStack Gateway
- "127.0.0.1:4510-4559:4510-4559" # external services port range
environment:
- DEBUG=${DEBUG-}
- DOCKER_HOST=unix:///var/run/docker.sock
volumes:
- "${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
Aqui estou usando o gerenciador de containers Podman, caso você utilize o Docker nomeie o arquivo acima como docker-compose.yml
E então via podman-compose subir o container com o comando:
podman-compose up -d
Novamente, se você usa Docker substitua no comando acima podman-compose por docker-compose
Certo, agora temos a Localstack operante em nossa máquina local, mas como podemos interagir com ela? Bem, da mesma forma que interagimos com a cloud AWS. Pode ser pela AWS CLI, por AWS SDK e outra forma que muitas pessoas gostam é através de uma console web e para isso temos uma console disponível, onde você pode fazer um cadastro gratuito e então essa console web interage com a sua Localstack rodando na sua máquina local. Alguns "serviços" requerem uma assinatura paga para utilização, mas vários serviços trivais são gratuitos.
Para a instalação do AWS CLI, que é super fácil, você pode seguir o tutorial da própria AWS, link nas referências ao final do artigo.
Creio que seja uma boa prática você criar um perfil próprio para a Localstack pois facilita a separação do seu Localstack para uma possível conta na cloud AWS e você pode criar este perfil com o comando abaixo:
aws configure --profile localstack
Sugestão de preenchimento dos valores que são pedidos na criação do perfil:
AWS Access Key ID [None]: teste_access_id
AWS Secret Access Key [None]: teste_access_secret
Default region name [None]: us-east-1
Default output format [None]: json
Agora para testar vamos criar um bucket S3 na nossa Localstack:
aws s3api create-bucket \
--endpoint=http://localhost:4566 \
--bucket meu-bucket \
--profile localstack
A saída deste comando deverá ser:
{
"Location": "/meu-bucket"
}
E para listarmos nossos buckets S3 utilizamos o comando abaixo:
aws s3 ls \
--endpoint=http://localhost:4566 \
--profile localstack
E teríamos uma saída como:
2023-11-05 15:20:06 meu-bucket
Era isso que eu queria trazer neste artigo, mostrar mesmo que de forma superficial o poder e a utilidade da Localstack para podermos desenvolver e testar localmente antes de subirmos para a cloud AWS.
Top comments (0)