Desenvolvimento com Amazon S3 local, FakeS3 + Docker.

Quando falamos de manter um ambiente de desenvolvimento homogêneo queremos dizer em outras palavras, “Manter um ambiente de desenvolvimento o mais próximo do de produção” para isso uma das melhores aplicações práticas de containers docker é poder construir infraestrutura de maneira rápida e fácil.

No desenvolvimento de um produto me deparei com o cenário de utilizar o serviço S3 (Simple Storage Service) juntamente com SDK da AmazonS3 , pensando em maneiras de reduzir o custo de desenvolvimento e também poder trabalhar localmente, sem perder todos os benefícios de se trabalhar no S3, encontrei a solução usando uma GEM feito em ruby que foi portada para um container docker chamada FakeS3.

A grande sacada está na habilidade de manipulação de network do docker, construindo bridges entre os containers.

Links funcionam como um bridge entre o container da aplicação e o container do proxy(fakes3ssl). Internamente quando um request for chamado a partir da URL yourbucket.s3.amazonaws.com será redirecionado para o container.

A sintaxe é basicamente container:aliascontainer, separados pelo caracter “:”.

O container ( fakes3sll ) é nada menos que um nginx proxy responsável por direcionar todos os requests para o container do FakeS3.

Lembrando que o FakeS3 é um aplicação feito em ruby que não reproduz todas as APIs da Amazon, porém na maioria dos casos é uma mão na roda para quem precisa dos serviços mais simplórios.

BONUS: -Dcom.amazonaws.sdk.disableCertChecking=true é necessário quando usado a SDK da AWS para ignorar erros sobre certificados inválidos.

Show your support

Clapping shows how much you appreciated Lucas Martins’s story.