Implementación de una aplicación de ASP.NET Core 2.0 en Amazon ECS (EC2) - AWS Kit de herramientas con Amazon Q

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Implementación de una aplicación de ASP.NET Core 2.0 en Amazon ECS (EC2)

En esta sección se describe cómo utilizar laPublicación de contenedor enAWSasistente, que se proporciona como parte de Toolkit for Visual Studio, para implementar una aplicación de ASP.NET Core 2.0 en un contenedor en Linux a través de Amazon ECS mediante el tipo de lanzamiento de EC2. Como las aplicaciones web están diseñadas para que se ejecuten continuamente, esta aplicación se implementará como un servicio.

Antes de publicar el contenedor

Antes de usar laPublicación de contenedor enAWSpara implementar la aplicación de ASP.NET Core 2.0:

Acceso al contenedor Publish Container toAWSasistente

Para implementar una aplicación de ASP.NET Core 2.0 en un contenedor en Linux, haga clic con el botón derecho en Solution Explorer (Explorador de soluciones) y seleccionePublicación de contenedor enAWS.

También puede seleccionarPublicación de contenedor enAWSen el menú Compilar de Visual Studio.

Publicación de contenedor enAWSAsistente

Account profile to use (Perfil de la cuenta que se va a usar): seleccione el perfil de la cuenta que se va a usar.

Region (Región): elija una región de implementación. El perfil y la región se utilizan para configurar los recursos del entorno de implementación y para seleccionar el registro de Docker predeterminado.

Configuration (Configuración): seleccione la configuración de compilación de la imagen de Docker.

Docker Repository (Repositorio de Docker): elija un repositorio de Docker existente o escriba el nombre de un nuevo repositorio. Este es el repositorio al que se enviará la imagen del contenedor compilada.

Tag (Etiqueta): seleccione una etiqueta existente o escriba el nombre de una nueva etiqueta. Las etiquetas pueden realizar un seguimiento de detalles importantes como la versión, las opciones u otros elementos exclusivos de la configuración del contenedor de Docker.

Deployment (Implementación): seleccione Service on an ECS Cluster (Servicio en un clúster de ECS). Utilice esta opción de implementación cuando su aplicación esté diseñada para ejecutarse de manera prolongada (como una aplicación web ASP.NET Core 2.0).

Guardar configuración enaws-docker-tools-defaults.jsony configurar el proyecto para la implementación de la línea de comandos- Seleccione esta opción si desea poder implementar desde la línea de comandos. Use dotnet ecs deploy desde el directorio del proyecto para implementar y ejecute el comando dotnet ecs publish en el contenedor.

Página Launch Configuration

ECS Cluster (Clúster de ECS): elija el clúster que ejecutará la imagen de Docker. Puedecrear un clúster de ECSUtilizando laAWSConsola de administración.

Launch Type (Tipo de lanzamiento): elija EC2. Para utilizar el tipo de lanzamiento de Fargate, consulte Implementación de una aplicación de ASP.NET Core 2.0 en Amazon ECS (Fargate).

Página Service Configuration

Service (Servicio): seleccione uno de los servicios de la lista desplegable para implementar el contenedor en un servicio existente. O bien elija Create New (Crear nuevo) para crear un nuevo servicio. Los nombres de servicio deben ser únicos dentro de un clúster, pero puede tener servicios con el mismo nombre en varios clústeres dentro de una región o en varias regiones.

Number of Tasks (Número de tareas): el número de tareas que desea implementar y mantener en ejecución en el clúster. Cada tarea es una instancia de su contenedor.

Minimum Healthy Percent (Porcentaje mínimo en buen estado): el porcentaje de tareas que deben permanecer en estado RUNNING durante la implementación, redondeado al entero superior más próximo.

Maximum Percent (Porcentaje máximo): el porcentaje de tareas que deben permanecer en estado RUNNING o PENDING durante la implementación, redondeado al entero inferior más próximo.

Placement Templates (Plantillas de ubicación): seleccione una plantilla de ubicación de las tareas.

Cuando se lanza una tarea en un clúster, Amazon ECS debe determinar dónde ubicar la tarea en función de los requisitos especificados en la definición de tareas, tales como CPU y memoria. Del mismo modo, cuando se reduce la escala del número de tareas, Amazon ECS debe determinar qué tareas debe terminar.

La plantilla de ubicación controla el modo en que las tareas se lanzan en un clúster:

  • AZ Balanced Spread (Distribución equilibrada AZ): distribuye las tareas en las zonas de disponibilidad y entre las instancias de contenedor dentro de cada zona de disponibilidad.

  • AZ Balanced BinPack (Distribución equilibrada BinPack): distribuye las tareas en las zonas de disponibilidad y entre las instancias de contenedor con la menor memoria disponible.

  • BinPack: distribuye las tareas en función de la cantidad mínima de CPU o memoria disponible.

  • One Task Per Host (Una tarea por host): coloca como máximo una tarea del servicio en cada instancia de contenedor.

Para obtener más información, consulte Ubicación de tareas de Amazon ECS.

Página Application Load Balancer

Configure Application Load Balancer (Configurar balanceador de carga de la aplicación): seleccione esta opción para configurar un balanceador de carga de la aplicación.

Select IAM role for service (Seleccionar rol de IAM para servicio): seleccione un rol existente o elija Create New (Crear nuevo) para crear uno nuevo.

Load Balancer (Balanceador de carga): seleccione un balanceador de carga o elija Create New (Crear nuevo) y escriba el nombre de un nuevo balanceador de carga.

Listener Port (Puerto de escucha): seleccione un puerto de escucha existente o elija Create New (Crear nuevo) y escriba un número de puerto. El puerto predeterminado, 80, es adecuado para la mayoría de las aplicaciones web.

Target Group (Grupo de destino): de forma predeterminada, el balanceador de carga envía las solicitudes a los destinos registrados mediante el protocolo y el puerto que ha especificado para el grupo de destino. Puede anular este puerto al registrar cada destino en el grupo de destino.

Path Pattern (Patrón de ruta): el balanceador de carga usará el direccionamiento basado en rutas. Acepte la opción / predeterminada o proporcione un patrón diferente. Los patrones de ruta distinguen entre mayúsculas y minúsculas, su longitud máxima es de 128 caracteres y contienen un conjunto específico de caracteres.

Health Check Path (Ruta de comprobación de estado): la ruta de ping que es el destino para los destinos en las comprobaciones de estado. De forma predeterminada, es / y es adecuado para las aplicaciones web. Especifique otra ruta si es necesario. Si la ruta que especifica no es válida, no se superará la comprobación de estado y se considerará que está en mal estado.

Si implementa varios servicios y cada servicio se implementa en una ruta o ubicación diferente, es posible que necesite rutas de comprobación personalizadas.

Página ECS Task Definition

Task Definition (Definición de tarea): seleccione una definición de tarea existente o elija Create New (Crear nueva) y escriba el nombre de una nueva definición de tarea.

Container (Contenedor): seleccione un contenedor existente o elija Create New (Crear nuevo) y escriba el nombre de un nuevo contenedor.

Memory (MiB) (Memoria (MiB): proporcione valores para Soft Limit (Límite flexible) o Hard Limit (Límite invariable) o para ambos.

El límite flexible (en MiB) de memoria que reservar para el contenedor. Docker intenta mantener la memoria del contenedor dentro del límite flexible. El contenedor puede consumir más memoria, hasta el el límite máximo especificado con el parámetro de memoria (si procede) o toda la memoria disponible en la instancia del contenedor, lo que ocurra primero.

El límite máximo (en MiB) de memoria a presentar al contenedor. Si su contenedor intenta superar la memoria especificada aquí, se cancela el contenedor.

Rol de tarea- Seleccione una tarea para un rol de IAM que conceda al contenedor permiso para llamar a laAWSAPIs especificadas en sus políticas asociadas en su nombre. Así es cómo se pasan las credenciales a la aplicación. ConsulteCómo especificarAWScredenciales de seguridad para su aplicación.

Port Mapping (Asignaciones de puerto): añada, modifique o elimine las asignaciones de puerto del contenedor. Si hay un balanceador de carga, el puerto de host estará establecido de forma predeterminada en 0 y la asignación de puertos será dinámica.

Environment Variables (Variables de entorno): añada, modifique o elimine las variables de entorno del contenedor.

Cuando esté satisfecho con la configuración, haga clic en Publish (Publicar) para iniciar el proceso de implementación.

Publicación de un contenedor enAWS

Los eventos se muestran durante la implementación. El asistente se cierra automáticamente una vez completado correctamente. Puede invalidarlo desactivando la casilla situada en la parte inferior de la página.

Puede encontrar la dirección URL de sus nuevas instancias en laAWSExplorador. Expanda Amazon ECS and Clusters y haga clic en su clúster.