- Ingresar a: https://us-east-1.console.aws.amazon.com/cloud9/home/create
- Crear un nombre al espacio de Cloud9 y darle clic en siguiente.
- Configuraremos el tipo de instancia en t3.small para este workshop y dejamos el resto de valores por defecto.
- Ejecutamos los siguientes comandos para descargar AWS Copilot.
curl -Lo copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-linux && chmod +x copilot && sudo mv copilot /usr/local/bin/copilot && copilot --help
- Iniciamos el servicio de docker:
sudo service docker start
- Ahora vamos a Settings y desactivamos las credenciales administradas
- Creamos una política para Cloud9 llamada Cloud9CDK
https://us-east-1.console.aws.amazon.com/iam/home#/policies$new?step=edit
con la siguiente estructura: \
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1665503038650",
"Action": "*",
"Effect": "Allow",
"Resource": "*"
}
]
}
- Creamos un rol para Cloud9 seleccionando el tipo AWS Service y seleccionamos EC2 https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/roles/create?step=selectEntities
- Y le asignamos la política creada previamente.
- Ahora vamos a cambiar el rol de la instancia de EC2 que usaremos en el laboratorio. Vamos a https://us-east-1.console.aws.amazon.com/ec2/home?region=us-east-1#Instances:instanceState=running
- Y seleccionamos la instancia que contenga Cloud9 en el nombre y que esté activa. Para luego darle clic en Actions>Security>Modify IAM role
- Una vez ahí nos pedirá indicar el rol, ahí seleccionaremos el recién creado.
- Finalmente crearemos un usuario programático y le asignaremos la política creada previamente.
- Necesitaremos configurar credenciales de AWS para poder continuar por lo que crearemos un usuario de terminal y ejecutaremos>
aws configure
- Ahora vamos a poner manos a la obra, comenzamos clonando el repositorio del workshop.
git clone https://github.com/develozombie/cdk-and-copilot
- Nos ubicamos en el directorio cdk-and-copilot/aws-cdk Y exploramos los archivos del proyecto.
- Tenemos que instalar nuestro proyecto antes de comenzar, por lo que ejecutaremos
npm install
- Y ahora vamos a ver como CDK termina siendo la abstracción de CloudFormation ejecutando
cdk synth
- Y finalmente vamos a ejecutar los cambios con
npm run-script deploy
- Nos saldrá un error, eso es debido a que no hemos podido asociar una cuenta a nuestro proyecto
cdk bootstrap
- Vamos a intentar hacer un cambio en el proyecto y ver los cambios con
npm run-script diff
- Nos ubicamos en el directorio copilot de nuestro repo y exploramos los archivos.
- Ahora debemos iniciar el ambiente de trabajo:
copilot init
- Nos pedirá un nombre de aplicación, la llamaremos hits
- Vamos a llamar a nuestro servicio hits, cuando nos lo pida.
- Esperamos a que el servicio termine de configurarse.
- Nos preguntará si queremos desplegar un ambiente de test y ponemos que sí (Y)
- Así como en CDK acá también tenemos que crear nuestra tabla de DynamoDB, para ello usaremos el siguiente comando:
copilot storage init
- Usaremos los siguientes atributos:
- DynamoDB
- Table Name: hits
- Table PK: counter
- Table PK Type: String
- Sort Table: N
- Ya estamos listos para el siguiente paso, que será desplegar la solución.
copilot deploy