AWS Toolkit for Visual Studio
Guía del usuario

Implementación de una aplicación ASP.NET tradicional en Elastic Beanstalk

En esta sección se describe cómo utilizar el asistente Publish to Elastic Beanstalk (Publicar en Elastic Beanstalk), que se proporciona como parte del Toolkit for Visual Studio, para implementar una aplicación a través de Elastic Beanstalk. Para practicar, puede utilizar una instancia de un proyecto de inicio de aplicación web creado en Visual Studio o usar su propio proyecto.

nota

En este tema se explica cómo utilizar el asistente para implementar aplicaciones ASP.NET tradicionales. El asistente también es compatible con la implementación de aplicaciones ASP.NET Core. Para obtener más información acerca de ASP.NET Core, consulte Implementación de aplicaciones ASP.NET Core en Elastic Beanstalk.

nota

Para poder utilizar el asistente Publish to Elastic Beanstalk (Publicar en Elastic Beanstalk), debe descargar e instalar Web Deploy. El asistente se basa en Web Deploy para implementar aplicaciones web y páginas web en servidores web de Internet Information Services (IIS).

Para crear un proyecto de inicio de aplicación web de muestra

  1. En Visual Studio, desde el menú File (Archivo), elija New (Nuevo) y, a continuación, elija Project (Proyecto).

  2. En el panel de navegación del cuadro de diálogo Nuevo proyecto, expanda Instalado, expanda Plantillas, expanda Visual C# y, a continuación, elija Web.

  3. En la lista de plantillas de proyectos web, elija cualquier plantilla que contenga las palabras Web y Application en su descripción. Para este ejemplo, elija ASP.NET Web Forms Application (Aplicación de formularios Web Forms ASP.NET).

  4. En el cuadro Name (Nombre), escriba AEBWebAppDemo.

  5. En el cuadro Location (Ubicación), escriba la ruta hasta una carpeta de soluciones en su equipo de desarrollo o elija (Examinar) y, a continuación, busque y elija una carpeta de soluciones y elija Select Folder (Seleccionar carpeta).

  6. Confirme que se ha seleccionado el cuadro Crear directorio para la solución. En la lista desplegable Solution (Solución), confirme que se ha seleccionado Create new solution (Crear solución nueva) y, a continuación, elija OK (Aceptar). Visual Studio creará una solución y un proyecto basados en la plantilla del proyecto ASP.NET Web Forms Application. Visual Studio mostrará, a continuación, Solution Explorer donde aparecerán la solución y el proyecto nuevos.

Para implementar una aplicación utilizando el asistente Publish to Elastic Beanstalk

  1. En Solution Explorer, abra el menú contextual (con el botón derecho) de la carpeta del proyecto AEBWebAppDemo que creó en la sección anterior o abra el menú contextual correspondiente a la carpeta del proyecto para su propia aplicación y elija Publish to AWS Elastic Beanstalk (Publicar en AWS Elastic Beanstalk).

    Aparece el asistente Publish to Elastic Beanstalk (Publicar en Elastic Beanstalk).

  2. En Profile (Perfil), elija de la lista desplegable Account profile to use for deployment (Perfil de cuenta que utilizar para implementación) el perfil de la cuenta de AWS que desea usar para la implementación.

    Opcionalmente, si tiene una cuenta de AWS que desee utilizar, pero aún no ha creado un perfil de cuenta de AWS, puede elegir el botón con el signo + (+) para agregar un perfil de cuenta de AWS.

  3. En la lista desplegable Region (Región), elija la región en la que desea que Elastic Beanstalk implemente la aplicación.

  4. En Deployment Target (Destino de implementación), puede elegir entre Create a new application environment (Crear un nuevo entorno de aplicación) para realizar una implementación inicial de una aplicación o Redeploy to an existing environment (Volver a implementar en un entorno existente) para volver a implementar una aplicación implementada anteriormente. (Las implementaciones anteriores pueden haberse realizado con el asistente o con la herramienta de implementación individual). Si elige Redeploy to an existing environment (Volver a implementar en un entorno existente), podría producirse un retraso mientras el asistente recupera información de implementaciones anteriores que se están ejecutando en este momento.

    nota

    Si elige Redeploy to an existing environment (Volver a implementar en un entorno existente), elija un entorno en la lista y, a continuación, elija Next (Siguiente); el asistente le llevará directamente a la página Application Options (Opciones de la aplicación). Si opta por esta ruta, avance hasta llegar a las instrucciones que aparecen más adelante en esta sección que describen cómo utilizar la página Application Options (Opciones de la aplicación).

  5. Seleccione Next (Siguiente).

  6. En la página Application Environment (Entorno de la aplicación), en el área Application (Aplicación), la lista desplegable Name (Nombre) propone un nombre predeterminado para la aplicación. Para cambiar el nombre predeterminado, seleccione otro nombre en la lista desplegable.

  7. En el área Environment (Entorno), en la lista desplegable Name (Nombre), escriba un nombre para su entorno de Elastic Beanstalk. En este contexto, el término entorno hace referencia a los aprovisionamientos de Elastic Beanstalk de la infraestructura para su aplicación. Es posible que ya se haya propuesto un nombre predeterminado en esta lista desplegable. Si aún no se ha propuesto un nombre predeterminado, puede escribir uno o elegir uno en la lista desplegable, si hay nombres adicionales disponibles. El nombre del entorno no puede tener una longitud superior a 23 caracteres.

  8. En el área URL, el cuadro propone un subdominio predeterminado de .elasticbeanstalk.com que será la URL para su aplicación web. Para cambiar el subdominio predeterminado, escriba un nombre nuevo de subdominio.

  9. Elija Check availability (Comprobar disponibilidad) para comprobar que la dirección URL para su aplicación web no se esté utilizando ya.

  10. Si puede utilizarse la dirección URL para su aplicación web, elija Next (Siguiente).

  1. En la página AWS Options (Opciones de AWS), en Amazon EC2 Launch Configuration (Configuración de lanzamiento de Amazon EC2), elija de la lista desplegable Container type (Tipo de contenedor) el tipo de Imagen de máquina de Amazon (AMI) que se utilizará para su aplicación.

  2. En la lista desplegable Instance type (Tipo de instancia), especifique un tipo de instancia Amazon EC2 que se usará. Para este ejemplo, recomendamos que utilice Micro. Esto reducirá al mínimo el costo asociado con la ejecución de la instancia. Para obtener más información acerca de los precios de Amazon EC2, consulte la página Precios de EC2.

  3. En la lista desplegable Key pair (Par de claves), elija un par de claves de instancia Amazon EC2 que se usarán para iniciar sesión en las instancias que se utilizarán para su aplicación.

  4. En el cuadro Use custom AMI (Utilizar AMI personalizada), puede especificar una AMI personalizada que sustituirá a la AMI especificada en la lista desplegable Container type (Tipo de contenedor). Para obtener más información sobre cómo crear una AMI personalizada, vaya a Uso de AMI personalizadas en la Guía para desarrolladores de AWS Elastic Beanstalk y Cree una AMI a partir de una instancia de Amazon EC2.

  5. Si desea lanzar sus instancias en una VPC, seleccione el cuadro Use a VPC (Usar una VPC).

  6. Si desea lanzar una sola instancia Amazon EC2 y, a continuación, implementar la aplicación, seleccione el cuadro Single instance environment (Entorno de instancia individual).

    Si selecciona este cuadro, Elastic Beanstalk seguirá creando un grupo de Auto Scaling, pero no lo configurará. Si desea configurar el grupo de Auto Scaling más adelante, puede utilizar la Consola de administración de AWS.

  7. Si desea controlar las condiciones bajo las cuales se implementa su aplicación a las instancias, seleccione el cuadro Enable Rolling Deployments (Habilitar implementaciones continuas). Únicamente puede seleccionar este cuadro si no ha seleccionado el cuadro Single instance environment (Entorno de instancia individual).

  8. Si la aplicación utiliza servicios de AWS como Amazon S3 y DynamoDB, la mejor forma de proporcionar credenciales es utilizar un rol de IAM. En el área Deployed Application Permissions (Permisos de la aplicación implementada) puede o bien elegir un rol de IAM existente o crear uno que el asistente utilizará para lanzar su entorno. Las aplicaciones que utilizan el AWS SDK para .NET utilizarán automáticamente las credenciales proporcionadas por este rol de IAM cuando realice una solicitud a un servicio de AWS.

  9. Si la aplicación obtiene acceso a una base de datos de Amazon RDS, en la lista desplegable en el área Relational Database Access (Acceso de base de datos relacional), seleccione los cuadros situados junto a cualquiera de los grupos de seguridad de Amazon RDS que el asistente actualizará de manera que sus instancias Amazon EC2 puedan obtener acceso a esa base de datos.

  10. Seleccione Next (Siguiente).

    • Si seleccionó Use a VPC (Usar una VPC), aparecerá la página VPC Options (Opciones de VPC).

    • Si seleccionó Enable Rolling Deployments (Habilitar implementaciones continuas), pero no seleccionó Use a VPC (Usar una VPC), aparecerá la página Rolling Deployments (Implementaciones continuas). Avance hasta llegar a las instrucciones que aparecen más adelante en esta sección que describen cómo utilizar la página Rolling Deployments (Implementaciones continuas).

    • Si no seleccionó Use a VPC (Usar una VPC) o Enable Rolling Deployments (Habilitar implementaciones continuas), aparecerá la página Application Options (Opciones de la aplicación). Avance hasta llegar a las instrucciones que aparecen más adelante en esta sección que describen cómo utilizar la página Application Options (Opciones de la aplicación).

  11. Si seleccionó Use a VPC (Usar una VPC), especifique información en la página VPC Options (Opciones de VPC) para lanzar su aplicación en una VPC.

    Se tiene que haber creado ya la VPC. Si creó la VPC en el Toolkit for Visual Studio, el Toolkit for Visual Studio completará esta página automáticamente. Si ha creado la VPC en la consola de administración de AWS, escriba información sobre su VPC en esta página.

Consideraciones clave para la implementación en una VPC

  • La VPC necesita al menos un subred pública y una subred privada.

  • En la lista desplegable ELB Subnet (Red de ELB), especifique la subred pública. El Toolkit for Visual Studio implementa el balanceador de carga de Elastic Load Balancing para su aplicación a la subred privada. La subred pública está asociada a una tabla de ruteo que tiene una entrada que señala a una gateway de Internet. Puede reconocer una puerta de enlace de Internet porque tiene un ID que comienza por igw- (por ejemplo, igw-83cddaex). Las subredes públicas que crea mediante el Toolkit for Visual Studio tienen valores de etiqueta que las identifica como públicas.

  • En la lista desplegable Instances Subnet (Subred de instancias), especifique la subred privada. El Toolkit for Visual Studio implementa las instancias Amazon EC2 para su aplicación a la subred privada.

  • Las instancias Amazon EC2 para su aplicación se comunican desde una subred privada con Internet a través de una instancia Amazon EC2 en la subred pública que realiza la conversión de las direcciones de red (NAT). Para habilitar esta comunicación, necesitará un grupo de seguridad VPC que permita que el tráfico fluya desde la subred privada a la instancia NAT. Especifique este grupo de seguridad VPC en la lista desplegable Security Group (Grupo de seguridad).

Para obtener más información acerca de cómo implementar una aplicación Elastic Beanstalk en una VPC, consulte la Guía para desarrolladores de AWS Elastic Beanstalk.

  1. Una vez que haya completado toda la información en la página VPC Options (Opciones de VPC), elija Next (Siguiente).

    • Si seleccionó Enable Rolling Deployments (Habilitar implementaciones continuas), aparecerá la página Rolling Deployments (Implementaciones continuas).

    • Si no seleccionó Enable Rolling Deployments (Habilitar implementaciones continuas), aparecerá la página Application Options (Opciones de la aplicación). Avance hasta llegar a las instrucciones que aparecen más adelante en esta sección que describen cómo utilizar la página Application Options (Opciones de la aplicación).

  2. Si seleccionó Enable Rolling Deployments (Habilitar implementaciones continuas), debe especificar información en la página Rolling Deployments (Implementaciones continuas) para configurar cómo se implementan las versiones nuevas de las aplicaciones a las instancias en un entorno equilibrado de carga. Por ejemplo, si tiene cuatro instancias en su entorno y desea cambiar el tipo de instancia, puede configurar el entorno para cambiar dos instancias a la vez. Esto ayuda a garantizar que la aplicación se sigue ejecutando mientras se realizan cambios.

  3. En el área Application Versions (Versiones de la aplicación), elija una opción para controlar las implementaciones a un porcentaje o número de instancias a la vez. Especifique el porcentaje o el número deseado.

  4. En el área Environment Configuration (Configuración del entorno), seleccione el cuadro si desea especificar el número de instancias que permanecen en servicio durante las implementaciones. Si selecciona esta casilla, especifique el número máximo de instancias que deben modificarse a la vez, el número mínimo de instancias que deben permanecer en servicio a la vez, o ambos.

  5. Seleccione Next (Siguiente).

  6. En la página Application Options (Opciones de la aplicación), debe especificar información acerca de los ajustes de la compilación, de Internet Information Services (IIS) y de la aplicación.

  7. En el área Build and IIS Deployment Settings (Configuración de implementación de IIS y de compilación), en la lista desplegable Project build configuration (Configuración de proyecto de compilación), seleccione la configuración de compilación de destino. Si el asistente puede encontrarla, aparece Release (Versión), de lo contrario en el cuadro se muestra la configuración activa.

  8. En la lista desplegable App pool (Grupo de aplicaciones), seleccione la versión de .NET Framework que necesita su aplicación. Debería visualizarse la versión de .NET Framework correcta.

  9. Si su aplicación es de 32 bits, seleccione el cuadro Enable 32-bit applications (Habilitar aplicaciones de 32 bit).

  10. En el cuadro App path (Ruta de la aplicación), especifique la ruta que IIS utilizará para implementar la aplicación. De forma predeterminada, se especifica Default Web Site/ (Sitio web predeterminado/), que normalmente se traduce en la ruta c:\inetpub\wwwroot. Si especifica una ruta distinta a Default Web Site/ (Sitio web predeterminado/), el asistente pondrá un redireccionamiento en la ruta Default Web Site/ (Sitio web predeterminado/) que apunte a la ruta que ha especificado.

  11. En el área Application Settings (Configuración de la aplicación), en el cuadro Health check URL (URL de comprobación de estado), escriba una URL para que Elastic Beanstalk compruebe si su aplicación web sigue teniendo capacidad de respuesta. Esta URL es relativa a la URL del servidor raíz. De forma predeterminada, se especifica la URL del servidor raíz. Por ejemplo, si la URL completa es example.com/site-is-up.html, escribiría /site-is-up.html.

  12. En el área correspondiente a Key (Clave) y Value (Valor), puede especificar cualquier par de claves y valores que desee añadir al archivo Web.config de su aplicación.

    nota

    Aunque no se recomienda, puede utilizar el área correspondiente a Key (Clave) y Value (Valor), para especificar las credenciales de AWS bajo las que debe ejecutarse su aplicación. Se recomienda especificar un rol de IAM en la lista desplegable Identity and Access Management Role (Rol de Identity and Access Management) en la página AWS Options (Opciones de AWS). Sin embargo, si debe utilizar las credenciales de AWS en lugar de un rol de IAM para ejecutar su aplicación, en la fila Key (Clave), elija AWSAccessKey. En la fila Value (Valor), escriba la clave de acceso. Repita estos pasos para AWSSecretKey.

  13. Seleccione Next (Siguiente).

  14. En la página Review (Revisar), revise las opciones que configuró y seleccione el cuadro Open environment status window when wizard closes (Abrir ventana de estado de entorno cuando se cierra el asistente).

  15. Si lo desea, puede guardar la configuración de la implementación en un archivo de texto que podrá utilizar, a continuación, con la herramienta de implementación independiente. Para guardar la configuración, seleccione Generate AWSDeploy configuration (Generar configuración de AWSDeploy), elija Choose File (Elegir un archivo) y , a continuación, especifique un archivo donde guardar la configuración. También puede guardar la configuración de la implementación en un archivo de texto una vez que se ha completado la implementación. En AWS Explorer, abra el menú contextual (con el botón derecho) y, a continuación, elija Save Configuration (Guardar configuración).

  16. Si todo parece estar correcto, elija Deploy (Implementar).

    nota

    Al implementar la aplicación, la cuenta activa generará un costo por los recursos de AWS utilizados por la aplicación.

    La información sobre la implementación aparecerá en la barra de estado de Visual Studio y en la ventana Output (Salida). Esta operación puede tardar varios minutos. Cuando se haya completado la implementación, aparecerá un mensaje de confirmación en la ventana Output (Salida).

  17. Para eliminar la implementación, en AWS Explorer, expanda el nodo Elastic Beanstalk, abra el menú contextual (con el botón derecho) del subnodo para la implementación y, a continuación, elija Delete (Eliminar). Este proceso de eliminación puede tardar unos minutos.