Despliega Sonarqube en AWS Fargate

Jose del Castillo Salazar
Caleidos
Published in
2 min readJan 11, 2023

SonarQube es la herramienta más utilizada para asegurar la calidad de los desarrollos de software, sin embargo su instalación y sobretodo el mantenimiento suelen ser tareas complejas que nos quitan más tiempo del deseado.

En este post te presentamos como instalar SonarQube como contenedor en un AWS ECS Fargate para que te olvides de administrar el servidor y pongas todo tu esfuerzo en mejorar el proceso de desarrollo.

0.- Arquitectura:

1.- Prerrequisitos:

  • Instalar Terraform
  • Crear VPC, subnets privadas, subnets públicas, subnet para la base de datos y certificado de seguridad a usar para exponer la web de SonarQube.

2.- Módulo de terraform:

Para instanciar el módulo de terraform del repositorio, primero se deben definir los datos en las variables locales:

  • VPC_ID: id de la VPC donde se colocará el ECS
  • private_subnets: lista de las subnets privadas a usar por SonarQube
  • public_subnets: lista de las subnets públicas a usar por Sonarqube, en caso no se quiera exponer a intertnet se puede colocar las mismas subnets privadas.
  • alb_tls_cert_arn: ARN del certificado TLS a usar por el ALB de SonarQube
  • database_subnet_group_name: lista de subnets de la base de datos

locals {
vpc_id="%MI_VPC_ID%"
private_subnets=["%MI_PRIVATE_SUBNETS%"]
public_subnets=["%MI_PUBLIC_SUBNETS%"]
alb_tls_cert_arn="arn:aws:acm:us-east-1:1111111111:certificate/1224-12242-124242-122"
database_subnet_group_name=["%DATABASE_SUBNETS%"]
}
module "sonar" {
source = "github.com/caleidosmedia/daas-sonar-module.git?ref=2.0.0"
vpc_id = local.vpc_id
subnets = local.private_subnets
public_subnets = local.public_subnets
alb_tls_cert_arn = local.alb_tls_cert_arn
name = "prd-dvop-sonar"
alb_logs_bucket_name = "prd-dvop-sonar-alb-logs"
container_image = "public.ecr.aws/docker/library/sonarqube:9.5.0-community"
internal_load_balancer = true
db_subnet_group_name = local.database_subnet_group_name
}

3. Ejecutar los cambios

Luego de completar los datos, se debe ejecutar la secuencia de comandos de terraform:

#inicializar módulos requeridos de terraform
terraform init
#revisar el plan de los cambios a ejecutar
terraform plan
#ejecutar los cambios sobre la cuenta de AWS
terraform apply

Luego de ejecutar los cambios, se puede ver el ECS generado en la consola de AWS:

4. Validar aplicación

Si ingresamos a la URL definida para sonarqube podremos ver la pantalla de login

--

--