Se utilizó Terraform para desplegar la infraestructura necesaria en AWS, incluyendo:
- Un par de claves (
aws_key_pair
) - Un grupo de seguridad (
aws_security_group
) - Una instancia EC2 (
aws_instance
)
terraform apply
Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
Direcciones IP obtenidas:
- IP privada:
172.31.81.68
- IP pública:
3.92.228.34
Se ingreso a la instancia de EC2 usando SSH
ssh -i ~/.ssh/id_rsa [email protected]
Se intentó copiar el archivo docker-compose.yml
a la instancia EC2 con scp
:
scp -i ~/.ssh/id_rsa docker-compose.yml [email protected]:~/app/docker-compose.yml
Se encontró un problema de permisos con la clave SSH.
Se verificaron las claves SSH con:
ls -l ~/.ssh/id_rsa
Se confirmó que el key_pair
estaba correctamente configurado en AWS:
aws ec2 describe-key-pairs --query "KeyPairs[*].KeyName"
Resultado:
[
"my-key"
]
Se instalaron los paquetes necesarios en la máquina virtual de AWS (EC2):
sudo apt update && sudo apt install -y docker.io docker-compose
Se verificó la instalación:
docker --version
docker-compose --version
Se añadió el usuario ubuntu
al grupo docker
para evitar permisos denegados:
sudo usermod -aG docker ubuntu
Se aplicaron los cambios sin reiniciar la sesión:
newgrp docker
Se utilizó nano
para modificar el archivo de configuración de Docker Compose:
nano docker-compose.yml
Servicios incluidos en el archivo:
config-server
discovery-server
customers-service
visits-service
vets-service
api-gateway
tracing-server
admin-server
grafana-server
prometheus-server
Se ejecutó el siguiente comando para levantar los servicios en la instancia EC2:
docker-compose up -d
Se encontró un problema de permisos al intentar acceder al socket de Docker:
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
Se ejecutó Docker con permisos de superusuario:
sudo docker-compose up -d
Se verificó el acceso al API Gateway en la instancia EC2 utilizando la IP pública:
curl http://3.92.228.34:8080
Se listaron las sesiones SSH activas:
ps aux | grep ssh
Para cerrar todas las sesiones SSH:
kill -9 <PID>
O simplemente cerrando la terminal activa con:
exit
- Se logró desplegar la infraestructura en AWS utilizando Terraform.
- Se configuró correctamente Docker y Docker Compose en la instancia EC2.
- Se levantaron los servicios del sistema PetClinic con Docker Compose.
- Se accedió al API Gateway a través de la IP pública de la instancia.
- Se resolvieron problemas de permisos en SSH y Docker.