Skip to content

blais3pasc4l/UserHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UserHub

AWS | RDS | Terraform

El objetivo principal de este proyecto es crear una infraestructura de AWS utilizando Terraform para desplegar un microservicio de gestión de usuarios. Este microservicio será capaz de llevar a cabo las siguientes acciones:

  1. Crear un nuevo usuario con nombre y dirección de correo electrónico.
  2. Obtener información de un usuario existente basada en su identificador.
  3. Actualizar información de un usuario existente.
  4. Eliminar un usuario existente.

Service Example Architecture

Docker compose

En el directorio app correr:

$ cd app &&  sudo sh run sh

Con esto esta expuesta la app y la base de datos en el puerto localhost:4000

Subir a ECR

$ docker build -t <AWS_ACCOUNT_ID>.dkr.ecr.us-west-1.amazonaws.com/app:latest 

Autentique la CLI de Docker para usar el registro ECR:

$ aws ecr get-login --region us-west-1 --no-include-email

Push image:

$ docker push <AWS_ACCOUNT_ID>.dkr.ecr.us-west-1.amazonaws.com/app:latest

Terraform infraestructura

Aquí, definimos el proveedor de AWS. Deberá proporcionar sus credenciales de AWS para poder autenticarse. Defínelas como variables de entorno:

$ export AWS_ACCESS_KEY_ID="YOUR_AWS_ACCESS_KEY_ID"
$ export AWS_SECRET_ACCESS_KEY="YOUR_AWS_SECRET_ACCESS_KEY"

En el archivo de variables nuevamente, asegúrese de reemplazar <AWS_ACCOUNT_ID> con su ID de cuenta de AWS. (linea 75 de el archivo de variables)

variable "docker_image_url_app" {
  description = "Docker image to run in the ECS cluster"
  default     = "<AWS_ACCOUNT_ID>.dkr.ecr.us-west-1.amazonaws.com/app:latest"
}

Ahora debemos crear la imagen del Nginx, recuerde cambiar la region de donde desea crear el recurso

$ docker build -t <AWS_ACCOUNT_ID>.dkr.ecr.us-west-1.amazonaws.com/nginx:latest .
$ docker push <AWS_ACCOUNT_ID>.dkr.ecr.us-west-1.amazonaws.com/nginx:latest
$ terraform init

$ terraform plan

$ terraform apply

NOTA: El nombre DNS del balanceador de carga se enviará a la terminal. (alb_hostname)

Derribar la infraestructura una vez hecho:

$ terraform destroy

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published