DEV Community

olcortesb for AWS Español

Posted on • Originally published at olcortesb.hashnode.dev on

AWS:Crear un entorno de Cloud9 con CDK

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

Enter fullscreen mode Exit fullscreen mode

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,
    });
  }
}

Enter fullscreen mode Exit fullscreen mode

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"
  }
}

Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

Este comando retornar una salida similar a esta:

"arn:aws:iam::ACCOUNT-NUMBER:NAME"

Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

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

Referencias:

Top comments (0)