AWS LocalStack: Develop and test your cloud apps offline

AWS LocalStack: Develop and test your cloud apps offline

La llegada del Cloud supuso un antes y un después, pero también es cierto, complicó un tanto la vida para poder validar los correctos funcionamientos de nuestras aplicaciones ya que, teníamos que replicar entornos, por ejemplo de Integración, elevando sus costes.

Pues bien, el proyecto LocalStack es una fantástica solución para “simular” nuestro AWS Cloud en local, sea instalado localmente o bien desplegado en su versión Docker.

Requirements

Para poder ejecutar cualquier tipo de interacción con nuestro LocalStack tendremos que tener instaladas las AWS CLI (Command Line Interface), veamos:

pip install awscli

pip install awscli-local

Docker LocalStack

Si hemos decidido lanzar nuestro Stack mediante Docker, podremos ejecutar docker-compose:

docker-compose up -d

Creating network "localstack_default" with the default driver
Pulling localstack (localstack/localstack:)...
latest: Pulling from localstack/localstack
169185f82c45: Pull complete
80e1b3e484f0: Pull complete
93e33f1be740: Pull complete
47e1b8813443: Pull complete
ff45e85b6519: Pull complete
2919c1066b16: Pull complete
daaf1829ffd2: Pull complete
a40122322c01: Pull complete
d8544918a40e: Pull complete
63bbfb6b6356: Pull complete
6131a976989d: Pull complete
9682f8e6bd3f: Pull complete
aac8eff1291e: Pull complete
61cbe42e3010: Pull complete
50418b8d43c0: Pull complete
f911cc1362c0: Pull complete
54714f3c0077: Pull complete
2775087e07c4: Pull complete
057db23e2cb9: Pull complete
2b2dae22161d: Pull complete
97753b97ac90: Pull complete
2652d0de4c8b: Pull complete
ac15d6dc8a23: Pull complete
03bbdfa4404a: Pull complete
Digest: sha256:f5ca88ffddd9ae1723f5695371e06c6bad4281b06ea66aae94f76de882ee5e0a
Status: Downloaded newer image for localstack/localstack:latest
Creating localstack_localstack_1 ... done

Estará creado el Stack en Docker.

Endpoints de LocalStack

A título informativo comentar que LocalStack levanta muchos servicios, como son API Gateway, DynamoDB, S3, SQS, etc… y por ello utilizará bastantes puertos, veamos:

Creando un S3 Bucket LocalStack

Para poder crear un nuevo Bucket en nuestro S3 LocalStack deberemos tener claro que el endpoint será: http://localhost:4572/ y lanzaremos, en nuestro local y mediante las awscli locales de LocalStack el siguiente command:

awslocal --endpoint-url=http://localhost:4572 s3 mb s3://mytestbucket

Podremos ver en su Dashboard de control (http://localhost:8080) que se ha creado el Bucket correctamente y el ARN de publicación.

AWS-LocalStack-OverviewS3BucketDashboard

Creando una Queue en SQS LocalStack

Otro buen ejemplo podría ser la creación de una cola en nuestro SQS LocalStack, para ello utilizaremos el endpoint: http://localhost:4576 y el siguiente command:

awslocal --endpoint-url=http://localhost:4576 sqs create-queue --queue-name test_queue

Podremos ver también en su Dashboard de control (http://localhost:8080) que se ha creado la nueva cola correctamente y el ARN de publicación.

AWS-LocalStack-OverviewS3BucketDashboard

Review

Es interesante poder estar al día del proyecto, poder descubrir muchas de sus utilidades y, también, si queremos iniciarnos con otros de sus servicios existe una documentación muy interesante creada por Manish Pandit y publicada en su GitHub.

Autor: Joakim Vivas

comments powered by Disqus