Usando emulador para rodar infraestrutura AWS localmente
Desenvolver infraestrutura testando diretamente na Cloud sempre foi um desafio. Primeiro, porque o período de testes gratuitos é curto e não cobre todos os principais recursos. Outro problema é que esse modelo de trabalho é lento e há grandes chances de o desenvolvedor esquecer de excluir recursos, o que pode resultar em custos inesperados.
É aqui que entram os emuladores.
Emuladores nas principais clouds
Hoje existem emuladores para as principais plataformas:
GCP
Possui uma boa oferta de emuladores oficiais, além de alternativas comunitárias com ampla cobertura.
Azure
Conta com menos emuladores oficiais, mas oferece suporte ao desenvolvimento local por meio do Azure SDK e do Docker, ainda que com cobertura limitada.
AWS
Não foca em emuladores oficiais, mas possui um ecossistema robusto de ferramentas, como:
- LocalStack
- DynamoDB Local
- Moto
- AWS SAM CLI
O ponto de mudança: LocalStack
Por muito tempo, o LocalStack foi a principal solução open-source para simular serviços da AWS localmente.
No entanto, em março de 2026, o projeto mudou seu modelo, impactando diretamente a comunidade de desenvolvedores que dependia dele no dia a dia.
Foi nesse contexto que surgiu uma nova alternativa.
Apresentando o Floci
O Floci é um projeto recente, criado em 2026 como uma alternativa open-source (licença MIT), com algumas características interessantes:
- 100% gratuito
- Sem autenticação
- Sem limitações de uso
- Inicialização rápida
- Endpoint único: http://localhost:4566
O foco do projeto é oferecer compatibilidade prática com os serviços da AWS, priorizando simplicidade e velocidade.
Para utilizá-lo, você precisa apenas de:
- Docker
- Docker Compose
- AWS CLI
Como rodar o Floci localmente
De fato, a configuração é bastante simples e pode ser feita em dois passos:
Passo 1: docker-compose
Criar um docker-compose.yml básico:
services:
floci:
image: hectorvent/floci:latest
ports:
- "4566:4566"
environment:
- FLOCI_HOSTNAME=floci
- QUARKUS_LOG_LEVEL=DEBUG
- QUARKUS_HTTP_PORT=4566
- FLOCI_DEFAULT_REGION=us-east-1
- FLOCI_DEFAULT_ACCOUNT_ID=000000000000
- FLOCI_BASE_URL=http://localhost:4566
Passo 2:
Depois, definir as credenciais do ambiente simulado da AWS:
export AWS_ENDPOINT_URL=http://localhost:4566 \
export AWS_DEFAULT_REGION=us-east-1 \
export AWS_ACCESS_KEY_ID=test \
export AWS_SECRET_ACCESS_KEY=test
Testando com AWS CLI
Por fim, com o Floci em execução, os testes via AWS CLI podem ser realizados. Seguem abaixo alguns comandos sugeridos:
Criando um bucket S3:
aws s3 mb s3://floci-bucket
Implementando uma fila SQS:
aws sqs create-queue --queue-name floci-queue
Instância EC2:
aws ec2 run-instances \
--image-id ami-0000000000 \
--count 1 \
--instance-type t2.micro \
--key-name floci-app \
--security-group-ids sg-default \
--subnet-id subnet-default-a
Uso com IaC
Além de tudo que já foi apresentado, o Floci também pode ser utilizado em cenários de Infraestrutura como Código (IaC).
Nos testes realizados:
- Excelente compatibilidade com SDKs (principalmente Java)
- Funcionou bem com Terraform (cobertura de testes reduzida)
- Ainda possui cobertura limitada de serviços
Links úteis
Finalmente, se você gostou do conteúdo e gostaria de conhecer mais sobre o Floci, segue abaixo alguns links que podem ajudar nas próximas etapas:
Repositório dos testes usando Terraform: https://github.com/marceloweb/floci-demo
Site oficial do projeto: https://floci.io/