Cómo usar AWS Cloud Development Kit con Java
Aprende a utilizar AWS Cloud Development Kit (AWS CDK) con Java para definir y desplegar infraestructura en la nube mediante código.

En este artículo aprenderás a utilizar AWS Cloud Development Kit con Java. ¡Empecemos!
También te puede interesar: «React 18: novedades principales»
Introducción a AWS Cloud Development Kit
AWS CDK permite crear aplicaciones en la nube con la capacidad expresiva de un lenguaje de programación. Está pensado para personas con una experiencia media o avanzada en los servicios de AWS. Veamos algunos conceptos clave para crear aplicaciones con AWS CDK.

- Una aplicación utiliza AWS CDK para definir la infraestructura de AWS. Puedes escribir aplicaciones CDK en lenguajes compatibles con AWS, como TypeScript, JavaScript, Python, Java o C#.
- Una aplicación puede contener una o varias pilas.
- Las pilas contienen constructos y equivalen a las pilas de AWS CloudFormation.
- Los constructos definen recursos de AWS, como Amazon RDS, DynamoDB, buckets de S3 o funciones Lambda.
- Las pilas, los constructos y las aplicaciones se representan mediante clases. Los constructos se instancian dentro de una pila para declararlos en AWS y conectarlos entre sí mediante interfaces bien definidas.
Estos conceptos resultarán más claros después de implementar la aplicación de ejemplo sample-cdk-project.
Requisitos previos
Primero, instala AWS CLI en tu equipo. También necesitarás una clave de acceso y una clave secreta proporcionadas por la persona administradora de la cuenta de AWS.
Comprueba que la instalación se ha completado correctamente con el siguiente comando:
aws –version
A continuación, configura AWS CLI en tu equipo:
aws configure
Introduce el identificador de la clave de acceso de AWS, la clave de acceso secreta, la región predeterminada y el formato de salida predeterminado.

Primeros pasos con AWS CDK y Java
Instalar AWS CDK Toolkit
CDK Toolkit es una herramienta para trabajar con aplicaciones y pilas de AWS CDK. Permite convertir una o varias pilas en plantillas de CloudFormation y sus recursos asociados, además de desplegarlas en una cuenta de AWS. Instala AWS CDK Toolkit mediante Node Package Manager con el siguiente comando:
npm install -g aws-cdk
Inicializar una aplicación CDK de ejemplo
Crea un directorio para la aplicación CDK de ejemplo:
mkdir sample-cdk-project
Después, conviértelo en el directorio de trabajo.
cdk sample-cdk-project
Ejecuta el siguiente comando para crear una aplicación CDK de ejemplo con Java:
cdk init --language java
Veamos qué contiene el proyecto.
Entender la aplicación CDK de ejemplo
Puedes abrir el proyecto en el IDE que prefieras. El directorio tendrá la estructura que se muestra a continuación. Revisaremos los archivos SampleCdkProjectStack.java y SampleCdkProjectApp.java por separado.

SampleCdkProjectStack.java
Esta es la pila predeterminada de sample-cdk-project. Para empezar, descomenta el recurso de ejemplo. SampleCdkProjectStack extiende la clase base Stack e incluye una cola de Amazon SQS con un tiempo de espera de 300 segundos para procesar cada mensaje. Los constructos representan componentes de la nube y son las unidades básicas de una aplicación AWS CDK. En el ejemplo siguiente, la cola de Amazon SQS es un constructo. Todos los constructos reciben tres parámetros al inicializarse: scope, id y props.
scopees el constructo dentro del cual se define el nuevo constructo.ides un identificador que debe ser único dentro de ese ámbito.propsreúne las propiedades o los argumentos con nombre —según el lenguaje— que definen la configuración inicial del constructo.
public class SampleCdkProjectStack extends Stack {
public SampleCdkProjectStack(final Construct scope, final String id) {
this(scope, id, null);
}
public SampleCdkProjectStack(final Construct scope, final String id, final StackProps props) {
super(scope, id, props);
// The code that defines your stack goes here
/* final Queue queue = Queue.Builder.create(this, "SampleCdkProjectQueue")
.visibilityTimeout(Duration.seconds(300))
.build(); */
}
}SampleCdkProjectApp.java
Veamos ahora SampleCdkProjectApp.java. En este archivo se instancia la pila definida anteriormente dentro de un ámbito para poder desplegarla. La clase crea una instancia de SampleCdkProjectStack y genera la plantilla de AWS CloudFormation definida por la pila. También inicializa el constructo App, que se utiliza como ámbito de la instancia de SampleCdkProjectStack.
public class SampleCdkProjectApp {
public static void main(final String[] args) {
App app = new App();
new SampleCdkProjectStack(app, "SampleCdkProjectStack", StackProps.builder()
/*If you don't specify 'env', this stack will be environment-agnostic.
Account/Region-dependent features and context lookups will not work,
but you can deploy a single synthesized template anywhere.
Uncomment the next block to specialize this stack for the AWS Account
and Region that is implied by the current CLI configuration. */
/* .env(Environment.builder()
.account(System.getenv("CDK_DEFAULT_ACCOUNT"))
.region(System.getenv("CDK_DEFAULT_REGION"))
.build()) */
/*Uncomment the next block if you know exactly what Account and Region you
want to deploy the stack to */
.env(Environment.builder()
.account("123456789012")
.region("us-east-1")
.build()) */
//For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html
.build());
app.synth();
}
}En la clase anterior, descomenta el código que adapta la pila a la cuenta y la región de AWS indicadas en la configuración actual de AWS CLI.
Preparar el entorno de la aplicación CDK
Al desplegar aplicaciones AWS CDK en un entorno de AWS, pueden hacer falta recursos auxiliares, como un bucket de Amazon S3 para almacenar archivos o roles de IAM con los permisos necesarios. El proceso que crea estos recursos se denomina bootstrapping.
Estos recursos se definen en una pila de AWS CloudFormation llamada CDKToolkit. El siguiente comando despliega esa pila de preparación:
cdk bootstrap

Puedes consultar los recursos en la plantilla de CloudFormation de CDKToolkit.

Sintetizar la plantilla de CloudFormation
El siguiente comando sintetiza y muestra la plantilla de CloudFormation. Si la aplicación contiene más de una pila, tendrás que indicar cuál quieres procesar. En este ejemplo no es necesario porque solo hay una.
cdk synth

Desplegar la aplicación CDK
Ejecuta el siguiente comando para desplegar los recursos definidos en la pila de la aplicación CDK:
cdk deploy

Puedes consultar los recursos en la plantilla de CloudFormation de SampleCdkProjectStack.

Esta es la cola de Amazon SQS definida en la pila.

Por último, elimina los recursos de sample-cdk-project con el siguiente comando:
cdk destroy

Conclusión
Ya conoces los fundamentos de AWS Cloud Development Kit y has creado una aplicación CDK con Java. Si quieres seguir practicando, consulta el repositorio oficial de ejemplos de AWS CDK en GitHub, que incluye varios proyectos desarrollados en Java.
Seguiremos publicando contenidos prácticos como este. Puedes dejarnos tus comentarios y sugerencias.
¡Buen aprendizaje!
Referencia
https://docs.aws.amazon.com/cdk/v2/guide/home.html
Unimedia Technology
En Unimedia Technology contamos con un equipo de especialistas en desarrollo cloud native que puede ayudarte a crear aplicaciones complejas en AWS y Azure.
Seguir leyendo
Más sobre AWS

Unimedia Technology presenta Cloud-Trim: Optimiza tu entorno en la nube de AWS de forma fácil y gratuita
Cloud-Trim es la solución definitiva para las empresas que buscan optimizar sus entornos en la nube de AWS.
AWS

Maximizar la precisión de las previsiones con la ayuda de Amazon Forecast y la IA generativa
Aumenta la precisión de tus previsiones con Amazon Forecast y Generative AI. Descubre cómo estas herramientas pueden revolucionar tu desarrollo de software.
AWS

Dominar la latencia de AWS: Guía esencial para el desarrollo de software a medida
Conoce todo sobre la latencia de AWS en nuestra guía para el desarrollo de software a medida. Te aconsejamos sobre monitorización, mitigación y mejores prácticas.
AWS