Dynamodb: la base de datos de clave-valor y documentos de Amazon que ofrece rendimiento en milisegundos de un solo dígito a cualquier escala.

02/02/2020 | Autor: Eduardo Enriquez

Estos últimos días estuve jugando con algunas herramientas de aws. Entre ellas estuvo dynamodb: una base de datos nosql bastante económica en comparacion a postgres o mysql/

Los tutoriales están bastante buenos y son para distintos lenguajes. Pero cuando arrancó a praticar con una herramienta nueva, no me gusta tener que empezar a instalar cosas porque todavia estoy en fase de descubrimiento y muchas veces no sé porque instalo lo que estoy instalando. Y después me olvido de desinstalarlo.

Por eso me gusta usar docker, porque en el peor de los casos borro todas las images, containers y volumenes y ya está. Pero muchas veces es dificil de encontrar el docker-compose que más no sirve. Así que aquí les comparto uno que armé

Aquí tengo 3 imagenes:

  • Una de python donde van a ir todos los scripts que utilizaré para practicar.
  • Otra imagenes para el container especifico de dynamodb.
  • Y un tercero para una gui, una interfaz browsable, para poder interactuar con dynamodb. Digamos que esta ultima es como un pgadmin/phpmyadmin/adminer.

Ademas de esta imagen se necesita un archivo .env para compartir con los containers las credenciales y la region


DYNAMO_ENDPOINT=http://dynamodb:8000
AWS_REGION=argland
AWS_ACCESS_KEY_ID=bar
AWS_SECRET_ACCESS_KEY=foo

El Dockerfile para python es muy sencillo


FROM python:3.8-alpine

RUN apk add --update --no-cache --virtual .build-deps \
    build-base \
    gcc \
    musl-dev \
    libffi-dev 

WORKDIR /code
RUN pip install -U pip
RUN pip install boto3 ipython ipdb black pylint

COPY . /code 

CMD ["ash"]

Para empezar a jugar solo resta ejecutar: docker-compose run --rm pydy ipython


Tags