Cloud9 es un servicio de AWS que permite tener un ambiente de desarrollo integrado (IDE) en el cloud de AWS. Se lanzó en noviembre de 2017 (Link), y esta en línea con la corriente de IDEs basados en cloud que estamos viendo en el mercado (https://idx.dev/, https://www.gitpod.io/, https://github.com/features/codespaces)
La intención de este artículo es mostrar como levantar y borrar un ambiente de Cloud9 utilizando CDK, esto permitir la agilidad y automatización de levantar un ambiente cuando lo necesitemos y tener el control del ciclo de vida de ese recurso.
Instalar CDK
Siguiendo los tutoriales de instalación de la herramienta: Link
# Install
npm install -g aws-cdk
# CDK version
cdk --version
# CDK Bootsraping
cdk bootstrap aws://ACCOUNT-NUMBER/REGION
Descargar el repositorio y configurar
En el siguiente repositorio de Github -> link está el código en CDK, a continuación contar como configurarlo para levantar nuestro ambiente de Cloud9.
//https://github.com/olcortesb/cdk-cloud9/blob/main/lib/cdk-cloud9-stack.ts
import * as cdk from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as cloud9 from 'aws-cdk-lib/aws-cloud9';
export class CdkCloud9Stack extends cdk.Stack {
constructor(scope: cdk.App , id: string, props?: cdk.StackProps) {
super(scope, id, props);
// Create a VPC for the Cloud9 environment
const vpc = new ec2.Vpc(this, 'Cloud9Vpc', {
maxAzs: 3, // Adjust as needed
});
// Create the Cloud9 environment
new cloud9.CfnEnvironmentEC2(this, 'MyCloud9Environment', {
instanceType: this.node.getContext('instance_type'), // Adjust as needed
connectionType: 'CONNECT_SSM',
name: this.node.getContext("name"),
ownerArn: this.node.getContext("user_arn"),
subnetId: vpc.publicSubnets[0].subnetId,
});
}
}
Este es el código para crear nuestro ambiente de Cloud9 , lo importante y lo que tenemos que modificar son las tres variables de entorno name
, instance_type
, user_arn
. Estos tres valores, como indican los nombres, nos permitían configurar las propiedades del ambiente. Estos valores los encontraremos en el archivo cdk.json
// https://github.com/olcortesb/cdk-cloud9/blob/main/cdk.json
...
"name": "Cloud9Env",
"user_arn": "arn:aws:iam::ACCOUNT-NUMBER:NAME",
"instance_type": "t2.micro"
}
}
name
: Nombre del Ambiente de Cloud9
instance_type
: Tipo de instancia EC2 donde se ejecutara nuestro entorno de Cloud9
user_arn
: La persona dentro de la organización que va a poder acceder a este Cloud9, para obtener este nombre para nuestro usuario, si trabajamos en nuestra cuenta se puede ejecutar el siguiente comando
aws sts get-caller-identity --query 'Arn' --output text
Este comando retornar una salida similar a esta:
"arn:aws:iam::ACCOUNT-NUMBER:NAME"
Que tenemos que remplazar en user_arn
y luego de configurar las variables levantamos el ambiente.
Deploy / Destroy el entorno de Cloud9
Con todo configurado a continuación procedemos a hacer deploy
cdk deploy --profile olcortesb
Ahora vamos a la consola de AWS y podemos ver nuestro Cloud9 listo para usar:
Y para destruir el ambiente hacemos destroy
desde el mismo repositorio
cdk destroy CdkCloud9Stack
Con esto nos aseguramos de no dejar encendido ninguno de los servicios asociados al Cloud9, recuerda que si no persistimos el volumen perdemos la información al destruir el ambiente.
¡Gracias por leer, quedo a cualquier comentario, Saludos!
Oscar Cortes
Top comments (0)