Durante los últimos años he estado desarrollando y distribuyendo aplicaciones web utilizando Servicios web de Amazon (AWS). Más recientemente, trabajé en un proyecto llamado Compromiso inicialcuyo objetivo es crear un sitio web y una serie de libros electrónicos que ayuden a los desarrolladores curiosos a aprender cómo se codifican sus programas favoritos.
En el proceso, descubrí una forma muy conveniente de implementar y alojar aplicaciones web en AWS mediante el servicio Elastic Beanstalk (EBS). Y hoy voy a compartir cómo implementar aplicaciones web .NET con AWS Elastic Beanstalk.
Hay dos razones principales por las que recomiendo usar AWS EBS para implementar y alojar su aplicación web: conveniencia y costo.
El factor de conveniencia proviene del hecho de que una vez que tenga una versión compilada del código de la aplicación, simplemente puede seguir la serie simple de pasos de configuración de EBS, que incluyen cargar un archivo ZIP que contiene el código de la aplicación.
Una vez que se completa la carga y la configuración, EBS le proporcionará una implementación con un solo clic que se encargará de iniciar un servidor web para alojar su aplicación y hará el trabajo sucio de configurarlo e implementar su aplicación web.
Si bien puede encontrarse con algunos errores de configuración persistentes en algunos casos que pueden requerir un poco de investigación de Google para descubrirlos, el trabajo involucrado será mucho menor que el que se requiere para configurar manualmente un servidor web, configurarlo e implementar su aplicación web Una vez que haya trabajado con EBS, volver a implementar una nueva versión de su código es un trabajo de un solo clic.
El factor de costo proviene del hecho de que los precios de AWS son muy razonables para lo que obtiene. Probablemente pagará un poco más de lo que pagaría por el alojamiento básico en otro sitio, pero en mi opinión, la confiabilidad y la conveniencia de AWS valen la inversión. Si planea comenzar con una aplicación relativamente pequeña, puede optar por la oferta T2-micro, que calificará para el «nivel gratuito» de AWS durante un año. Esto significa que el primer año de hospedaje puede ser gratuito a menos que elija una instancia de hospedaje más grande. En mi experiencia, ejecutar un sitio basado en una instancia T2-micro después de que expire el nivel gratuito cuesta alrededor de $ 30 por mes.
Empaquetado de código de aplicación .NET para AWS EBS
Antes de seguir los pasos para implementar su aplicación web con AWS EBS, analicemos algunos pasos para empaquetar el código de su aplicación para que EBS pueda digerirlo.
El código de la aplicación residirá en el directorio raíz del proyecto; en este ejemplo, llamémoslo `website1`. Luego, el directorio `sitio web1` contendrá el código de la aplicación compilado, que comprenderá principalmente un conjunto de archivos DLL junto con otros archivos de configuración, como JSON, PDB y otros archivos de configuración.
El directorio `sitio web1` debe estar comprimido en un archivo ZIP, asegurándose de omitir cualquier archivo o carpeta específico del sistema operativo que pueda causar problemas, como `__MACOSX` y `.DS_STORE` en OSX. Esto se puede hacer en un indicador de DOS o en una ventana de terminal, después de navegar a la carpeta `sitio web1`, usando el siguiente comando:
`CÓDIGO POSTAL -r sitio web1.zip. -x “.*” -x “__MACOSX” `
Ahora que hemos comprimido el código de la aplicación en un formato limpio, necesitamos crear un archivo de configuración de EBS llamado `aws-windows-deployment-manifest.json`. El contenido predeterminado para este archivo proporcionado en la documentación de AWS se proporciona aquí:
{
«Versión del manifiesto»: 1,
«distribuciones»: {
«AspNetCoreWeb»: [
{
“name”: “webapp1”,
“parameters”: {
“appBundle”: “website1.zip”,
“iisPath”: “/”,
“iisWebSite”: “Default Web Site”
}
}
]
}
}
Como puede ver, este archivo contiene información básica de metadatos sobre la implementación, como el nombre del `appBundle` que se está implementando y la ruta de implementación. Si este archivo no está presente, la distribución fallará.
Ahora, el último paso de empaquetado consiste en colocar el archivo ZIP del paquete de la aplicación, en nuestro caso `webapp1.zip`, y el archivo `aws-windows-deployment-manifest.json` en el mismo directorio. Ahora necesitamos comprimir estos dos archivos en un archivo ZIP, lo que podemos hacer usando el siguiente comando:
`zip -r webapp1.zip. -x “.*” -x “__MACOSX” `
Esto producirá nuestro paquete `webapp1.zip` final que estará listo para su distribución en AWS EBS.
Ahora veamos los pasos para implementar nuestra aplicación web .NET en AWS Elastic Beanstalk.
Implementación de la aplicación .NET empaquetada en AWS EBS
Paso 1: Navegue para crear una cuenta de AWS e inicie sesión en la consola de AWS con esa cuenta.
Paso 2– Configure su información de facturación ya que AWS comenzará a cobrar por sus servicios en el futuro. (Nota: no entraremos en más detalles sobre los pasos 1) y 2) ya que se explican por sí mismos).
Paso 3: Una vez que haya iniciado sesión en la consola de AWS, haga clic en el enlace «Servicios» en la esquina superior izquierda de la página.
Paso 4: En la sección «Calcular», haga clic en el enlace «Elastic Beanstalk» o búsquelo en el cuadro de búsqueda.
Paso 5: Haga clic en el enlace «Crear nueva aplicación» en la esquina superior derecha de la página.
Paso 6: Introduzca un nombre y una descripción para la aplicación y haga clic en el botón «Crear».
Paso 7: Haga clic en el enlace «Crear uno ahora». para crear un nuevo entorno en la nueva aplicación.
Paso 8: Elija «Entorno de servidor web» y haga clic en el botón «Seleccionar».
Paso 9: Desplácese hacia abajo hasta la sección «Configuración básica» y seleccione «.NET (Windows/IIS)» en el menú desplegable «Plataforma preconfigurada».
Paso 10: Desplácese hacia abajo y elija el botón de radio «Cargar su código» en la sección «Código de aplicación».
Paso 11: Haga clic en el botón «Elegir archivo», localice y seleccione el archivo ZIP del paquete fuente «webapp1.zip» creado anteriormente, luego haga clic en el botón «Cargar».
Paso 12: Haga clic en el botón «Crear entorno».
En este punto, AWS tardará unos minutos en lanzar su entorno. Una vez completado, proporcionará una URL, que puede usar para acceder a su aplicación en un navegador de Internet. Tenga en cuenta que, según su configuración específica, es posible que sea necesario cambiar algunos ajustes de configuración o seguridad en el entorno de Elastic Beanstalk o en el propio código de la aplicación antes de que la aplicación funcione correctamente.
Ahora que su aplicación está en funcionamiento, notará que Elastic Beanstalk tiene algunas características adicionales que facilitan el monitoreo, la actualización y la solución de problemas. La supervisión de alto nivel se logra mediante una verificación de estado en la página del entorno que aparece como una gran marca de verificación verde cuando está en buen estado.
Cuando se encuentran problemas, este ícono se vuelve rojo y se identifican las causas. A la derecha está el botón «Cargar e implementar», que le permitirá cargar fácilmente una nueva versión del código de su paquete y redistribuirlo con solo hacer clic en un botón.
Al desplazarse hacia abajo en la página del entorno, se muestra una tabla de eventos de aplicaciones recientes y puede acceder a registros detallados en la barra lateral izquierda para una solución de problemas más detallada.