Implementar una aplicación web en AWS Elastic Beanstalk

GUÍA DE INTRODUCCIÓN

Módulo 3: implementar una aplicación web

En este módulo, implementaremos su aplicación en la nube.

Introducción

En este módulo, aprenderá a empaquetar su aplicación de NodeJS de modo que pueda ser implementada. También aprenderá cómo aprovisionar todos los recursos de AWS Elastic Beanstalk que creó en el Módulo 2 mediante AWS CDK.

Lo que aprenderá

  • Empaquetar su aplicación de NodeJS
  • Crear e implementar su aplicación de CDK
  • Actualizar la implementación de la aplicación de NodeJS

 Tiempo de realización

10 minutos

 Requisitos previos del módulo

  • Una cuenta de AWS con acceso de nivel de administrador**
  • Navegador recomendado: la última versión de Chrome o Firefox

[**] Es posible que las cuentas creadas en las últimas 24 horas aún no tengan acceso a los servicios necesarios para este tutorial.

Implementación

Empaquetar su aplicación de NodeJS

En el Módulo 2, aprendió que cargaremos la aplicación en un archivo .zip a S3 mediante el módulo Activo de S3 desde AWS CDK.

Para que eso ocurra, debe crear un archivo .zip de su aplicación de NodeJS y colocarlo en el directorio raíz de su aplicación de AWS CDK.  Nombre el archivo .zip “app.zip”. Para hacerlo, ejecute el siguiente comando:

zip -r ../app.zip ./*
gsg_build_elb_3

Arrancar el CDK en su cuenta

Si es la primera vez que utiliza AWS CDK en esta cuenta y en esta región, deberá arrancarlo. Cuando se implementan aplicaciones de AWS CDK en una cuenta y región de AWS, CDK necesita aprovisionar recursos necesarios para llevar a cabo implementaciones. Estos recursos incluyen un bucket de Amazon S3 para almacenar los archivos de implementación y roles de IAM para conceder los permisos necesarios para realizar implementaciones. El aprovisionamiento de esos recursos iniciales se denomina proceso de arranque.

Para realizar el proceso de arranque de su cuenta y región de AWS, ejecute

cdk bootstrap aws://ACCOUNT-NUMBER-1/REGION-1

Esto debería verse así:

cdk bootstrap aws://123456789012/us-east-1

Puede conseguir el número de cuenta de su consola de administración de AWS y el nombre de la región de esta lista.

Crear e implementar su aplicación de CDK

Después de empaquetar su aplicación de NodeJS y colocarla en la raíz de su directorio de aplicación de CDK y realizar el proceso de arranque de su cuenta y región de AWS, está listo para crear e implementar su aplicación de CDK.

El primer paso es crear la aplicación de CDK.

node run build

Si no hay errores en su aplicación, este proceso se llevará a cabo correctamente y podrá implementar la aplicación de CDK en la nube.

cdk deploy

Primero, se le pedirá que confirme que quiere realizar cambios en el nivel de seguridad de su cuenta, porque creamos un nuevo rol.

gsg_build_elb_4

Responda con “y” (sí) y, a continuación, comenzará la implementación. Tardará unos minutos en completarse. Cuando el proceso haya finalizado, recibirá un mensaje del ARN (nombre de recurso de Amazon) de la pila de CloudFormation que esta implementación ha creado para usted.

Si abre la consola de administración de CloudFormation, verá que contiene dos nuevas pilas.

gsg_build_elb_5

La pila llamada CdkEbInfraStack es la que contiene todos los recursos de Elastic Beanstalk que creamos en el módulo anterior: la aplicación, la versión de la aplicación, el perfil de instancias y el entorno de Beanstalk.

La otra pila (con la cadena aleatoria) la creó Elastic Beanstalk, y contiene todos los recursos que la aplicación de Elastic Beanstalk necesita para su ejecución: grupos de Auto Scaling, instancias, alarmas y métricas de Amazon CloudWatch, balanceadores de carga y grupos de seguridad.

Visualizar su aplicación en la nube

Si quiere ver su aplicación implementada en la nube, lo primero que debe hacer es encontrar la URL de la aplicación web. Puede encontrar esta URL si se dirige al servicio de Elastic Beanstalk en la consola de AWS, y busca el entorno llamada MyWebAppEnvironment.

gsg_build_elb_6

Allí verá la URL. Haga clic en ella y la aplicación web debe lanzarse.

Actualizar la implementación de la aplicación de NodeJS

Si quiere realizar un cambio en su aplicación web y quiere reimplementarla en la nube, puede seguir los siguientes pasos:

  • Hacer el cambio en la aplicación web
  • Empaquetarla en un archivo app.zip
  • Colocar el archivo app.zip en el directorio raíz de su aplicación de CDK
  • Crear el proyecto CDK: npm run build
  • Implementar el proyecto CDK: cdk deploy

Ahora, puede verificar que hay una nueva versión de la aplicación Elastic Beanstalk implementada. Además, si visita la URL de la aplicación web, se implementará la versión nueva; este proceso demora un tiempo, así que debe fijarse en la consola para ver cuándo se ha completado.

gsg_build_elb_7

Errores comunes

Compresión de la aplicación

Si obtiene este error cuando su aplicación de NodeJS se carga en Elastic Beanstalk.

Failed to find package.json. Node.js may have issues starting. Verify package.json is valid or place code in a file named server.js or app.js.

Un problema puede ser la forma en la que está comprimiendo su aplicación. Elimine package-lock.json y el directorio node_modules y ejecute este comando dentro del directorio de la aplicación web.

zip -r app.zip .

Esto hará que se empaqueten los archivos en .zip correctamente para Elastic Beanstalk.

Módulos de nodos al empaquetar su aplicación

Puede empaquetar su directorio node_modules con todas sus dependencias descargadas en el archivo .zip de su aplicación web.

Cuando tiene este directorio, Elastic Beanstalk asume que no se necesitan dependencias para descargarse.

Puede obtener más información en las instrucciones sobre administración de dependencias de NodeJS en los paquetes de Elastic Beanstalk.

Conclusión

En esta guía, aprendió cómo empaquetar una aplicación web de NodeJS e implementarla con Elastic Beanstalk, además de cómo implementar toda la infraestructura como una aplicación de CDK.

Siguiente: Eliminación de recursos

Háganos saber su opinión.

Agradecemos sus comentarios
Nos alegra que esta página le haya ayudado. ¿Le gustaría compartir detalles adicionales para ayudarnos a seguir mejorando?
Cerrar
Agradecemos sus comentarios
Lamentamos que esta página no le haya ayudado. ¿Le gustaría compartir detalles adicionales para ayudarnos a seguir mejorando?
Cerrar