Obtenga información sobre cómo configurar FSx para sistemas de archivos de Windows File Server para Amazon ECS.
Obtenga información sobre cómo lanzar una instancia de Windows optimizada para Amazon ECS que aloje un sistema de archivos de FSx para Windows File Server y contenedores que puedan acceder al sistema de archivos. Para hacerlo, primero debe crear un Microsoft Active Directory AWS Directory Service administrado por AWS. A continuación, cree un sistema de archivos de FSx para Windows File Server y un clúster con una instancia de Amazon EC2 y una definición de tareas. Configure la definición de tareas de los contenedores para que utilicen el sistema de archivos FSx for Windows File Server. Por último, pruebe el sistema de archivos.
Cada vez que se lanza o se elimina el sistema de archivos Active Directory o FSx for Windows File Server, el proceso tarda entre 20 y 45 minutos. Prepárese para dedicar al menos 90 minutos a completar el tutorial o complételo en varias sesiones.
Requisitos previos para el tutorial
-
Un usuario administrativo. Consulte Configuración para utilizar Amazon ECS.
-
(Opcional) Un par de claves
PEM
para conectarse a la instancia EC2 de Windows a través del acceso RDP. Para obtener información acerca de cómo crear pares de claves, consulte Pares de claves de Amazon EC2 e instancias de Amazon EC2 en la Guía del usuario de Amazon EC2. -
Una VPC con al menos una subred pública y una subred privada, y un grupo de seguridad. Puede utilizar la VPC predeterminada. No necesita una gateway ni un dispositivo NAT. AWS Directory Service no admite la traducción de direcciones de red (NAT) en Active Directory. Para que esto funcione, Active Directory, el sistema de archivos FSx para Windows File Server, el clúster de ECS y la instancia de ECS deben ubicarse dentro de la VPC. Para obtener más información sobre las VPC y Active Directories, consulte Crear una VPC y Requisitos previos para crear un AWS Managed Microsoft AD.
-
Los permisos ecsInstanceRole y ecsTaskExecutionRole de IAM están asociados a la cuenta. Estos roles vinculados a servicios permiten que los servicios realicen llamadas a la API y accedan a los contenedores, los secretos, los directorios y los servidores de archivos en su nombre.
Paso 1: Crear roles de IAM de acceso
Cree un clúster desde la AWS Management Console.
-
Consulte Rol de IAM de instancia de contenedor de Amazon ECS para comprobar si dispone de un ecsInstanceRole y, si no dispone de ninguno, ver cómo puede crear uno.
-
Recomendamos personalizar las políticas de roles con permisos mínimos en un entorno de producción real. Para poder trabajar con este tutorial, compruebe que la siguiente política administrada por AWS esté asociada a ecsInstanceRole. Si la política aún no está asociada, asóciela ahora.
-
AmazonEC2ContainerServiceforEC2Role
-
AmazonSSMManagedInstanceCore
-
AmazonSSMDirectoryServiceAccess
Para asociar una política administrada por AWS
-
Abra la consola de IAM
. -
Seleccione Roles en el panel de navegación.
-
Elija un Rol administrado de AWS.
-
Elija Permisos y Asociar políticas.
-
Para reducir la lista de políticas disponibles a asociar, utilice la función Filter (Filtro).
-
Seleccione la política pertinente y, a continuación, elija Attach Policy (Asociar política).
-
-
Consulte Rol de IAM de ejecución de tareas de Amazon ECS para comprobar si dispone de un ecsTaskExecutionRole y, si no dispone de ninguno, ver cómo puede crear uno.
Recomendamos personalizar las políticas de roles con permisos mínimos en un entorno de producción real. Para poder trabajar con este tutorial, compruebe que las siguientes políticas administradas por AWS estén asociadas a ecsTaskExecutionRole. Si las políticas no están asociadas, asócielas ahora. Para asociar las políticas administradas por AWS, utilice el procedimiento indicado en la sección anterior.
-
SecretsManagerReadWrite
-
AmazonFSxReadOnlyAccess
-
AmazonSSMReadOnlyAccess
-
AmazonECSTaskExecutionRolePolicy
-
Paso 2: Crear Windows Active Directory (AD)
-
Siga los pasos que se indican en Creación del directorio de Microsoft AD administrado por AWS en la Guía de administración de AWS Directory Service. Utilice la VPC que haya designado para este tutorial. En el paso 3 de Creación de AWS Managed Microsoft AD, guarde el nombre de usuario y la contraseña del administrador para utilizarlos en el siguiente paso. Además, tenga en cuenta el nombre de DNS del directorio calificado completo para futuros pasos. Puede completar el siguiente paso mientras se crea Active Directory.
-
Cree un secreto de AWS Secrets Manager para utilizarlo en los siguientes pasos. Para obtener más información, consulte Introducción a Secrets Manager en la Guía del usuario de AWS Secrets Manager.
-
Abra la consola de Secrets Manager
. -
Haga clic en Store a new secret (Almacenar un nuevo secreto).
-
Seleccione Other type of secrets (Otro tipo de secretos).
-
En Secret key/value (Clave/valor secreto), cree una clave
username
con el valoradmin
en la primera fila. Haga clic en.+ Add a row (+ Agregar una fila). -
En la nueva fila, cree una clave
password
. Para el valor, escriba la contraseña que ingresó en el paso 3 de Creación del Directorio de AD administrado por AWS. -
Haga clic en el botón Next (Siguiente).
-
Proporcione un nombre y una descripción para el secreto. Haga clic en Next (Siguiente).
-
Haga clic en Next (Siguiente). Haga clic en Store (Almacenar).
-
En la lista que aparece en la página Secrets (Secretos), haga clic en el secreto que acaba de crear.
-
Guarde el ARN del nuevo secreto para utilizarlo en los pasos siguientes.
-
Puede continuar con el paso siguiente mientras se crea Active Directory.
-
Paso 3: Comprobar y actualizar el grupo de seguridad
En este paso, compruebe y actualice las reglas del grupo de seguridad que está utilizando. Para eso, puede utilizar el grupo de seguridad predeterminado que se creó para la VPC.
Verifique y actualice el grupo de seguridad.
Debe crear o editar el grupo de seguridad para que envíe datos a través de los puertos, que se describen en Grupos de seguridad de Amazon VPC en la Guía del usuario de FSx for Windows File Server. Para hacerlo, puede crear la regla de entrada del grupo de seguridad que se muestra en la primera fila de la siguiente tabla de reglas de entrada. Esta regla permite el tráfico entrante procedente de las interfaces de red (y las instancias asociadas) asignadas al mismo grupo de seguridad. Todos los recursos en la nube que cree están dentro de la misma VPC y asociados al mismo grupo de seguridad. Por lo tanto, esta regla permite que el tráfico se envíe a través del sistema de archivos FSx for Windows File Server, Active Directory y la instancia de ECS, según corresponda. Las otras reglas de entrada permiten que el tráfico atienda al sitio web y al acceso RDP para conectarse a la instancia de ECS.
En la tabla siguiente, se muestran las reglas de entrada del grupo de seguridad requeridas para este tutorial.
Tipo | Protocolo | Intervalo de puertos | Origen |
---|---|---|---|
Todo el tráfico |
Todos |
Todos |
|
HTTPS |
TCP |
443 |
0.0.0.0/0 |
RDP |
TCP |
3389 |
Dirección IP de la computadora portátil |
En la tabla siguiente, se muestran las reglas de salida del grupo de seguridad requeridas para este tutorial.
Tipo | Protocolo | Rango de puerto | Destino |
---|---|---|---|
Todo el tráfico |
Todos |
Todos |
0.0.0.0/0 |
-
Abra la consola de EC2
y seleccione Security Groups (Grupos de seguridad) en el menú de la izquierda. -
En la lista de grupos de seguridad que se muestra ahora, seleccione la casilla de verificación situada a la izquierda del grupo de seguridad que está utilizando para este tutorial.
Se muestran los detalles del grupo de seguridad.
-
Para editar las reglas de entrada y salida, seleccione las pestañas Inbound rules (Reglas de entrada) o Outbound rules (Reglas de salida) y elija los botones Edit inbound rules (Editar reglas de entrada) o Edit outbound rules (Editar reglas de salida). Edite las reglas para que coincidan con las que se muestran en las tablas anteriores. Después de crear la instancia de EC2 más adelante en este tutorial, edite el origen RDP de la regla de entrada con la dirección IP pública de la instancia de EC2 como se describe en Conectarse a una instancia de Windows mediante RDP en la Guía del usuario de Amazon EC2.
Paso 4: Crear un sistema de archivos FSx for Windows File Server
Después de comprobar y actualizar el grupo de seguridad y de crear Active Directory y dejarlo en estado activo, cree el sistema de archivos FSx for Windows File Server en la misma VPC en la que se encuentra Active Directory. Siga estos pasos para crear un sistema de archivos FSx for Windows File Server para las tareas de Windows.
Cree el primer sistema de archivos.
-
Abra la consola de Amazon FSx
. -
En el panel, elija Create file system (Crear sistema de archivos) para iniciar el asistente de creación de sistemas de archivos.
-
En la página Seleccionar tipo de sistema de archivos, elija FSx para Windows File Server y, a continuación, elija Siguiente. Aparece la página Crear sistema de archivos.
-
En la sección File system details (Detalles del sistema de archivos), proporcione un nombre para el sistema de archivos. Dar nombre a los sistemas de archivos hace que sea más fácil encontrarlos y administrarlos. Puede usar hasta 256 caracteres Unicode. Los caracteres permitidos son letras, números, espacios y los caracteres especiales signo más (+), signo menos (-), signo igual (=), punto (.), guion bajo (_), dos puntos (:) y barra inclinada (/).
-
En Deployment type (Tipo de implementación), elija Single-AZ (Zona de disponibilidad única) para implementar un sistema de archivos que se implemente en una sola zona de disponibilidad. Single-AZ 2 es la última generación de sistemas de archivos de zona de disponibilidad única y admite almacenamiento SSD y HDD.
-
En Storage type (Tipo de almacenamiento), elija HDD.
-
En Storage capacity (Capacidad de almacenamiento), ingrese la capacidad de almacenamiento mínima.
-
En el campo Throughput capacity (Capacidad de rendimiento), mantenga la configuración predeterminada.
-
En la sección Network & security (Red y seguridad), elija la misma Amazon VPC que eligió para el directorio AWS Directory Service.
-
En VPC Security Groups (Grupos de seguridad de la VPC), elija el grupo de seguridad que verificó en el Paso 3: Comprobar y actualizar el grupo de seguridad.
-
En Autenticación de Windows, elija AWS Managed Microsoft Active Directory y, a continuación, elija el directorio AWS Directory Service de la lista.
-
En Encryption (Cifrado), conserve el valor predeterminado aws/fsx (default) en el campo Encryption key (Clave de cifrado).
-
En Maintenance preferences (Preferencias de mantenimiento), conserve la configuración predeterminada.
-
Haga clic en el botón Next (Siguiente).
-
Revise la configuración del sistema de archivos que se muestra en la página Create File System (Crear sistema de archivos). Para su referencia, anote qué configuración del sistema de archivos puede modificar después de crear el sistema de archivos. Seleccione Crear sistema de archivos.
-
Anote el ID del sistema de archivos. Lo utilizará en un paso posterior.
Vaya a los pasos siguientes para crear un clúster y una instancia EC2 mientras se crea el sistema de archivos FSx for Windows File Server.
Paso 5: Crear un clúster de Amazon ECS
Crear un clúster mediante la consola clásica de Amazon ECS
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En la barra de navegación, seleccione la región a utilizar.
-
En el panel de navegación, seleccione Clusters (Clústeres).
-
En la página Clusters (Clústeres), elija Create Cluster (Crear clúster).
-
En Configuración de clúster, en Nombre del clúster, ingrese windows-fsx-cluster.
-
Expanda Infraestructura, desactive AWS Fargate (sin servidor) y, a continuación, seleccione Instancias de Amazon EC2.
-
Para crear un grupo de Auto Scaling, desde Auto Scaling group (ASG) (Grupo de Auto Scaling), seleccione Create new group (Crear nuevo grupo) y, a continuación, proporcione los siguientes detalles sobre el grupo:
-
En Sistema operativo/arquitectura, elija Windows Server 2019 Core.
-
Para el Tipo de instancia de EC2, seleccione t2.medium o t2.micro.
-
-
-
Seleccione Crear.
Paso 6: Crear una instancia de Amazon EC2 optimizada para Amazon ECS
Cree una instancia de contenedor de Amazon ECS para Windows.
Para crear una instancia de Amazon ECS
-
Utilice el comando
aws ssm get-parameters
para recuperar el nombre de la AMI de la región que aloja la VPC. Para obtener más información, consulte Recuperación de los metadatos de la AMI optimizada para Amazon ECS. -
Utilice la consola de Amazon EC2 para lanzar la instancia.
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En la barra de navegación, seleccione la región a utilizar.
-
En el panel de EC2, elija Launch Instance (Lanzar instancia).
-
En Name (Nombre), escriba un nombre único.
-
En Imágenes de aplicaciones y SO (Imagen de máquina de Amazon), en el campo Buscar, introduzca la AMI que recuperó.
-
En Tipo de instancia, seleccione t2.medium o t2.micro.
-
En Key pair (login) (Par de claves [inicio de sesión]), elija un par de claves. Si no especifica ningún para de clave
-
En Configuración de red, para VPC y Subred, elija su VPC y una subred pública.
-
En Network settings (Configuración de red), para Security groups (Grupo de seguridad), seleccione un grupo de seguridad existente o cree uno nuevo. Asegurarse de que el grupo de seguridad que elija tenga las reglas de entrada y salida definidas en Requisitos previos para el tutorial
-
En Network settings (Configuración de red), para Auto-assign Public IP (Asignar automáticamente una IP pública), selecciona Enable (Activar).
-
Expanda Detalles avanzados y, a continuación, en Directorio de unión a dominios, seleccione el ID del Active Directory que creó. Este dominio opcional se une al AD cuando se lanza la instancia EC2.
-
En Advanced details (Detalles avanzados), en IAM instance profile (Perfil de instancia de IAM), elija ecsInstanceRole.
-
Configure su instancia de contenedor de Amazon ECS con los siguientes datos de usuario. En Advanced details (Detalles avanzados), pegue el siguiente script en el campo User data (Datos de usuario), reemplazando
cluster_name
con el nombre de su clúster.<powershell> Initialize-ECSAgent -Cluster
windows-fsx-cluster
-EnableTaskIAMRole </powershell> -
Cuando esté listo, seleccione el campo de confirmación y después elija Launch Instances.
-
Verá una página de confirmación que indicará que la instancia se está lanzando. Elija View instances para cerrar la página de confirmación y volver a la consola.
-
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En el panel de navegación, seleccione Clústeres y, luego, seleccione windows-fsx-cluster.
-
Seleccione la pestaña Infraestructura y compruebe que la instancia se haya registrado en el clúster windows-fsx-cluster.
Paso 7: Registrar una definición de tareas de Windows
Antes de poder ejecutar los contenedores de Windows en el clúster de Amazon ECS, debe registrar una definición de tarea. El siguiente ejemplo de definición de tareas muestra una página web sencilla. La tarea lanza dos contenedores que tienen acceso al sistema de archivos FSx. El primer contenedor escribe un archivo HTML en el sistema de archivos. El segundo contenedor descarga el archivo HTML del sistema de archivos y atiende la página web.
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En el panel de navegación, elija Task Definitions (Definiciones de tareas).
-
Elija Create new task definition (Crear nueva definición de tarea) y Create new task definition with JSON (Crear nueva definición de tarea con JSON).
-
En el cuadro del editor JSON, sustituya los valores del rol de ejecución de tareas y los detalles del sistema de archivos FSx y, a continuación, elija Guardar.
{ "containerDefinitions": [ { "entryPoint": [ "powershell", "-Command" ], "portMappings": [], "command": ["New-Item -Path C:\\fsx-windows-dir\\index.html -ItemType file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>It Works!</h2> <p>You are using Amazon FSx for Windows File Server file system for persistent container storage.</p>' -Force"], "cpu": 512, "memory": 256, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "essential": false, "name": "container1", "mountPoints": [ { "sourceVolume": "fsx-windows-dir", "containerPath": "C:\\fsx-windows-dir", "readOnly": false } ] }, { "entryPoint": [ "powershell", "-Command" ], "portMappings": [ { "hostPort": 443, "protocol": "tcp", "containerPort": 80 } ], "command": ["Remove-Item -Recurse C:\\inetpub\\wwwroot\\* -Force; Start-Sleep -Seconds 120; Move-Item -Path C:\\fsx-windows-dir\\index.html -Destination C:\\inetpub\\wwwroot\\index.html -Force; C:\\ServiceMonitor.exe w3svc"], "mountPoints": [ { "sourceVolume": "fsx-windows-dir", "containerPath": "C:\\fsx-windows-dir", "readOnly": false } ], "cpu": 512, "memory": 256, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "essential": true, "name": "container2" } ], "family": "fsx-windows", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", "volumes": [ { "name": "fsx-windows-dir", "fsxWindowsFileServerVolumeConfiguration": { "fileSystemId": "fs-0eeb5730b2EXAMPLE", "authorizationConfig": { "domain": "example.com", "credentialsParameter": "arn:arn-1234" }, "rootDirectory": "share" } } ] }
Paso 8: Ejecutar una tarea y ver los resultados
Antes de ejecutar la tarea, compruebe que el estado del sistema de archivos FSx for Windows File Server sea Available (Disponible). Una vez que esté disponible, puede ejecutar una tarea mediante la definición de tareas que creó. La tarea comienza por crear contenedores que mezclan un archivo HTML entre ellos mediante el sistema de archivos. Después de la mezcla, un servidor web atiende la página HTML simple.
nota
Es posible que no pueda conectarse al sitio web desde una VPN.
Ejecute una tarea y observe los resultados con la consola de Amazon ECS.
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En el panel de navegación, seleccione Clústeres y, luego, seleccione windows-fsx-cluster.
-
Elija la pestaña de Tareas y, a continuación, Ejecutar nueva tarea.
-
En Launch Type, elija EC2.
-
En configuración de la implementación, en Definición de tareas, elija fsx-windows y, a continuación, elija Crear.
-
Cuando el estado de la tarea sea EN EJECUCIÓN, haga clic en el ID de la tarea.
-
En Contenedores, cuando el estado del contenedor1 sea DETENIDO, seleccione el contenedor 2 para ver los detalles del contenedor.
-
En Detalles del contenedor para container2, seleccione Enlaces de red y, a continuación, haga clic en la dirección IP externa asociada al contenedor. Se abrirá el navegador y mostrará el siguiente mensaje.
Amazon ECS Sample App It Works! You are using Amazon FSx for Windows File Server file system for persistent container storage.
nota
Puede que transcurran unos minutos hasta que se muestre el mensaje. Si no ve este mensaje después de unos minutos, compruebe que no se esté ejecutando en una VPN y asegúrese de que el grupo de seguridad de la instancia de contenedor permita el tráfico HTTP de red entrante en el puerto 443.
Paso 9: limpiar
nota
El proceso de eliminación del sistema de archivos FSx for Windows File Server o el AD tarda entre 20 y 45 minutos. Debe esperar hasta que se hayan completado las operaciones de eliminación del sistema de archivos FSx for Windows File Server antes de iniciar las operaciones de eliminación de AD.
Elimine el sistema de archivos de FSx para Windows File Server.
-
Abra la consola de Amazon FSx
. -
Elija el botón de la radio a la izquierda del sistema de archivos FSx para Windows File Server que acaba de crear.
-
Elija Acciones.
-
Seleccione Delete file system (Eliminar sistema de archivos).
Eliminar AD.
-
Abra la consola de AWS Directory Service
. -
Haga clic en el botón de radio situado a la izquierda del AD que acaba de crear.
-
Elija Acciones.
-
Seleccione Delete directory (Eliminar directorio).
Eliminar el clúster.
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En el panel de navegación, seleccione Clústeres y, luego, seleccione fsx-windows-cluster.
-
Seleccione Delete cluster (Eliminar clúster).
-
Escriba la frase y, a continuación, elija Eliminar.
Termine la instancia de EC2.
-
Abra la consola de Amazon EC2
. -
En el menú de la izquierda, seleccione Instances (Instancias).
-
Marque la casilla de verificación situada a la izquierda de la instancia de EC2 que creó.
-
Haga clic en el botón Estado de instancia y en Terminar instancia.
Elimine el secreto.
-
Abra la consola de Secrets Manager
. -
Seleccione el secreto que creó para este ejercicio.
-
Haga clic en Actions (Acciones).
-
Seleccione Delete secret (Eliminar secreto).