SM CODES

¿Qué es LocalStack y cómo instalarlo?

¿Qués es LocalStack?

LocalStack es una herramienta que emula servicios de AWS en tu máquina local, permitiéndote desarrollar, probar y experimentar sin necesidad de conectarte a la nube real. Es ideal para desarrolladores que desean ahorrar costos y tiempo durante las pruebas.

LocalStack

Beneficios de LocalStack

    1. Ahorro de costos: Puedes emular servicios de AWS localmente sin pagar por los recursos en la nube.
    2. Desarrollo y pruebas más rápidas: No necesitas depender de una conexión a internet para probar servicios como S3, Lambda o DynamoDB.

    3. Entorno reproducible: Configura un entorno de desarrollo que imite los servicios de AWS y compártelo fácilmente con tu equipo.

    4. Fácil integración con herramientas: Compatible con AWS CLI, SDKs y herramientas populares como Terraform y Serverless Framework.

Cómo instalar LocalStack

LocalStack se puede instalar de diferentes maneras, dependiendo de tus necesidades y el entorno en el que trabajes.

Para conocer más detalles sobre todas estas opciones, consulta la documentación oficial de instalación de LocalStack.

En este tutorial, utilizaremos LocalStack con Docker como la opción principal de instalación, por lo que es necesario tener Docker previamente instalado en tu ordenador. También necesitarás contar con AWS CLI configurado, ya que lo emplearemos para interactuar con los servicios emulados.

Instalación de Docker

Puedes descargar e instalar Docker desde su sitio oficial. Sigue las instrucciones especificas para tu sistema operativo.

Instalación de AWS CLI

Descargar e instalar AWS CLI desde su sitio oficial. Sigue las instrucciones especificas para tu sistema operativo.

Instalar LocalStack con Docker 

Una vez instalado Docker, abrir una terminal y ejecutar el siguiente commando:

docker run --rm -p 4566:4566 -p 4510-4559 localstack/localstack

Este comando descargara la imagen de LocalStack y lo ejecutará en el puerto 4566.

Verificar si LocalStack se está ejecutando

Para comprobar que se esta ejecutando LocalStack, en la terminal ejecuta el siguiente comando:

curl http://localhost:4566/_localstack/health

Este comando devolverá un JSON con el estado de los servicios, por ejemplo:

{
   "services":{
      "acm":"available",
      "apigateway":"available",
      "cloudformation":"available",
      "cloudwatch":"available",
      "config":"available",
      "dynamodb":"available",
      "dynamodbstreams":"available",
      "ec2":"available",
      "es":"available",
      "events":"available",
      "firehose":"available",
      "iam":"available",
      "kinesis":"available",
      "kms":"available",
      "lambda":"available",
      "logs":"available",
      "opensearch":"available",
      "redshift":"available",
      "resource-groups":"available",
      "resourcegroupstaggingapi":"available",
      "route53":"available",
      "route53resolver":"available",
      "s3":"available",
      "s3control":"available",
      "scheduler":"available",
      "secretsmanager":"available",
      "ses":"available",
      "sns":"available",
      "sqs":"available",
      "ssm":"available",
      "stepfunctions":"available",
      "sts":"available",
      "support":"available",
      "swf":"available",
      "transcribe":"available"
   },
   "edition":"community",
   "version":"4.0.3.dev4"
}

Usar AWS CLI para probar un servicio

Para verificar que LocalStack está funcionando correctamente, podemos interactuar con los servicios emulados utilizando AWS CLI. Sin embargo, antes de hacerlo, es necesario configurar AWS CLI para que funcione con LocalStack.

1. Configurar AWS CLI para LocalStack

Ejecuta el siguiente comando para iniciar la configuración del perfil local

aws configure --profile local

Durante la configuración, proporciona los siguientes valores:

  • Access Key ID: Puedes usar cualquier valor ficticio (por ejemplo, test).
  • Secret Access Key: Similar al anterior, utiliza un valor ficticio (por ejemplo, test).
  • Region: Indica una región válida, como us-east-1.
  • Output format: Usa el formato que prefieras, como json o yaml.
AWS Access Key ID [****************test]: test
AWS Secret Access Key [****************test]: test
Default region name [us-east-1]: us-east-1
Default output format [json]: json

Esto asegura que AWS CLI funcione correctamente con LocalStack, ya que este no requiere credenciales reales.

2. Probar un servicio emulado (S3)

Ahora que AWS CLI está configurado, puedes probar un servicio como S3.

  1. Crear un bucket en S3 emulado:

aws s3 mb s3://test-bucket \
    --endpoint-url=http://localhost:4566 \
    --profile local

Esto crea un bucket llamado test-bucket en el servicio S3 emulado por LocalStack.

2. Listar los buckets existentes:

aws s3 ls \
    --endpoint-url=http://localhost:4566 \
    --profile local

Este comando devuelve una lista de los buckets creados en el entorno de LocalStack.

Si estos comandos se ejecutan sin errores, significa que LocalStack está funcionando correctamente y que AWS CLI está configurado adecuadamente.

Nota

El flag --endpoint-url=http://localhost:4566 redirige las solicitudes de AWS CLI al entorno emulado de LocalStack en lugar de enviarlas a los servicios reales de AWS. Además, si has configurado un perfil específico para LocalStack, como local, puedes usar el flag --profile=local para asegurarte de que AWS CLI utilice las credenciales y configuraciones correspondientes a ese perfil. Esto permite un control claro y seguro sobre las interacciones con el entorno emulado.

Enviar
¿Necesitas ayuda?
Whatsapp
¡Hola!
¿Cómo podemos ayudarte?