Saiba como configurar sistemas de arquivos do FSx para Windows File Server para o Amazon ECS - Amazon Elastic Container Service

Saiba como configurar sistemas de arquivos do FSx para Windows File Server para o Amazon ECS

Saiba como iniciar uma instância do Windows otimizada para o Amazon ECS que hospeda um sistema de arquivos do FSx para Windows File Server e contêineres que podem acessar o sistema de arquivos. Para fazer isso, você primeiro criará um Microsoft Active Directory gerenciado pela AWS do AWS Directory Service. Em seguida, você cria um sistema de arquivos do FSx para Windows File Server e um cluster com uma instância do Amazon EC2 e uma definição de tarefa. Configure a definição de tarefa para os contêineres usarem o sistema de arquivos do FSx for Windows File Server. Finalmente, teste o sistema de arquivos.

Entre 20 e 45 minutos são necessários toda vez que você inicia ou exclui o Active Directory ou o sistema de arquivos do FSx for Windows File Server. Esteja preparado para reservar pelo menos 90 minutos para concluir o tutorial ou conclua o tutorial em algumas sessões.

Pré-requisitos para o tutorial

  • Um usuário administrativo. Consulte Configuração para usar o Amazon ECS.

  • (Opcional) Um par de chaves PEM para se conectar à instância do Windows do EC2 por acesso RDP. Para obter informações sobre como criar pares de chaves, consulte Pares de chaves do Amazon EC2 e instâncias do Windows no Guia do usuário para instâncias do Windows.

  • Uma VPC com pelo menos uma sub-rede pública e uma privada e um grupo de segurança. É possível usar a VPC padrão. Você não precisa de um gateway ou dispositivo NAT. O AWS Directory Service não oferece suporte à conversão de endereços de rede (NAT) com o Active Directory. Para que isso funcione, o Active Directory, o sistema de arquivos do FSx for Windows File Server, o cluster do ECS e a instância do EC2 devem estar localizados na VPC. Para obter mais informações sobre VPCs e Diretórios Ativos, consulte Configurações do assistente de console da Amazon VPC e Pré-requisitos do Microsoft AD gerenciados pela AWS.

  • As permissões do IAM ecsInstanceRole e ecsTaskExecutionRole estão associadas à sua conta. Esses perfis vinculados ao serviço permitem que os serviços façam chamadas de API e acessem contêineres, segredos, diretórios e servidores de arquivos em seu nome.

Etapa 1: criar funções de acesso do IAM

Crie um cluster com o AWS Management Console
  1. Consulte Função do IAM de instância de contêiner do Amazon ECS para verificar se você tem uma ecsInstanceRole e ver como será possível criar uma, caso não tenha.

  2. Recomendamos que as políticas de função sejam personalizadas para permissões mínimas em um ambiente de produção real. Com a finalidade de trabalhar neste tutorial, verifique se a política gerenciada pela AWS a seguir está anexada a ecsInstanceRole. Anexe a política, caso ela ainda não esteja anexada.

    • AmazonEC2ContainerServiceforEC2Role

    • AmazonSSMManagedInstanceCore

    • AmazonSSMDirectoryServiceAccess

    Para anexar políticas gerenciadas pela AWS

    1. Abra o console do IAM.

    2. No painel de navegação, escolha Perfis.

    3. Escolha um perfil gerenciado da AWS.

    4. Escolha Permissões, Anexar políticas.

    5. Para restringir as políticas disponíveis a serem anexadas, use Filter.

    6. Selecione a política apropriada e escolha Attach policy (Anexar política).

  3. Consulte Função do IAM de execução de tarefas do Amazon ECS para verificar se você tem uma ecsTaskExecutionRole e ver como será possível criar uma, caso não tenha.

    Recomendamos que as políticas de função sejam personalizadas para permissões mínimas em um ambiente de produção real. Com a finalidade de trabalhar neste tutorial, verifique se as políticas gerenciadas pela AWS a seguir estão anexadas a ecsTaskExecutionRole Anexe as políticas, caso elas ainda não estejam anexadas. Use o procedimento indicado na seção anterior para anexar as políticas gerenciadas pela AWS.

    • SecretsManagerReadWrite

    • AmazonFSxReadOnlyAccess

    • AmazonSSMReadOnlyAccess

    • AmazonECSTaskExecutionRolePolicy

Etapa 2: criar o Windows Active Directory (AD)

  1. Siga as etapas descritas em Criar seu diretório do AD gerenciado pela AWS no Guia de administração do Directory Service da AWS. Use a VPC que você designou para este tutorial. Na Etapa 3 de Criar seu diretório do AD gerenciado pela AWS, salve o nome do usuário e a senha para uso em uma etapa a seguir. Além disso, anote o nome de domínio totalmente qualificado para etapas futuras. É possível continuar e concluir a etapa a seguir enquanto o Active Directory está sendo criado.

  2. Crie um segredo do AWS Secrets Manager a ser usado nas etapas a seguir. Para obter mais informações, consulte Conceitos básicos do AWS Secrets Manager no Guia do usuário do Secrets Manager da AWS.

    1. Abra o console do Secrets Manager.

    2. Clique em Store a new secret (Armazenar um novo segredo).

    3. Selecione Other type of secrets (Outro tipo de segredos).

    4. Em Secret key/value (Chave/valor secreto), na primeira linha, crie uma chave username com valor admin. Clique em + Add row (+ Adicionar linha).

    5. Na nova linha, crie uma chave password. Em valor, digite a senha inserida na Etapa 3 de Criar seu diretório do AD gerenciado pela AWS.

    6. Clique no botão Next (Avançar).

    7. Forneça um nome e uma descrição do segredo. Clique em Next.

    8. Clique em Next. Clique em Store (Armazenar).

    9. Na lista da página Segredos, clique no segredo que você acabou de criar.

    10. Salve o ARN do novo segredo para uso nas próximas etapas,

    11. É possível ir para a próxima etapa enquanto seu Active Directory está sendo criado.

Etapa 3: verificar e atualizar o grupo de segurança

Nesta etapa, você verificará e atualizará as regras do grupo de segurança que você estiver usando. Para isso, você pode usar o grupo de segurança padrão que foi criado para a VPC.

Verifique e atualize o grupo de segurança.

Você precisa criar ou editar o grupo de segurança para enviar dados de e para as portas, que são descritas em Grupos de segurança da Amazon VPC no Guia do usuário do FSx for Windows File Server. É possível fazer isso criando a regra de entrada do grupo de segurança mostrada na primeira linha da tabela de regras de entrada a seguir. Essa regra permite tráfego de entrada de interfaces de rede (e das instâncias associadas) atribuídas ao grupo de segurança. Todos os recursos de nuvem criados estão dentro da mesma VPC e anexados ao mesmo grupo de segurança. Portanto, essa regra permite o tráfego entre o sistema de arquivos do FSx for Windows File Server, o Active Directory e a instância do ECS conforme necessário. As outras regras de entrada permitem que o tráfego atenda ao site e ao acesso RDP para conexão à instância do ECS.

A tabela a seguir mostra quais regras de entrada do grupo de segurança são necessárias para este tutorial.

Tipo Protocolo Intervalo de portas Origem

Todo o tráfego

Tudo

Todos

sg-securitygroup

HTTPS

TCP

443

0.0.0.0/0

RDP

TCP

3389

endereço IP do seu laptop

A tabela a seguir mostra quais regras de saída do grupo de segurança são necessárias para este tutorial.

Tipo Protocolo Intervalo de portas Destino

Todo o tráfego

Tudo

Tudo

0.0.0.0/0

  1. Abra o Console do EC2 e selecione Security groups (Grupos de segurança) no menu à esquerda.

  2. Na lista de grupos de segurança exibida, marque a caixa de seleção à esquerda do grupo de segurança que você está usando para este tutorial.

    Os detalhes do security group são exibidos.

  3. Edite as regras de entrada e de saída selecionando as guias Inbound rules (Regras de entrada) ou Outbound rules (Regras de saída) e escolhendo os botões Edit inbound rules (Editar regras de entrada) ou Edit outbound rules (Editar regras de saída). Edite as regras para corresponder às regras exibidas nas tabelas anteriores. Depois de criar a instância do EC2 posteriormente neste tutorial, edite a origem RDP da regra de entrada com o endereço IP público da instância do EC2, conforme descrito em Conectar-se à sua instância do Windows no Guia do usuário do Amazon EC2 para instâncias do Windows.

Etapa 4: criar um sistema de arquivos do FSx for Windows File Server

Depois que o grupo de segurança for verificado e atualizado e o Active Directory for criado e estiver no status ativo, crie o sistema de arquivos do FSx for Windows File Server na mesma VPC do Active Directory. Use as etapas a seguir para criar um sistema de arquivos do FSx for Windows File Server para as tarefas do Windows.

Crie seu primeiro sistema de arquivos.
  1. Abra o console do Amazon FSx.

  2. No painel, escolha Create file system (Criar sistema de arquivos) para iniciar o assistente de criação de sistemas de arquivos.

  3. Na página Selecionar tipo de sistema de arquivos, escolha FSx for Windows File Server e, em seguida, selecione Next (Avançar). A página Criar sistema de arquivos é exibida.

  4. Na seção Detalhes do sistema de arquivos, forneça um nome para o sistema de arquivos. Nomear seus sistemas de arquivos torna mais fácil encontrar e gerenciar seus sistemas. Podem ser usados até 256 caracteres Unicode. Os caracteres permitidos são letras, números, espaços e os caracteres especiais sinal de mais (+). sinal de menos (-), sinal de igual (=), ponto (.), sublinhado (_), dois-pontos (:) e barra (/).

  5. Em Deployment type (Tipo de implantação), escolha Single-AZ para implantar um sistema de arquivos implantado em uma única zona de disponibilidade. Single-AZ 2 é a geração mais recente de sistemas de arquivos de zona de disponibilidade única. É compatível com armazenamento SSD e HDD.

  6. Em Storage type (Tipo de armazenamento), escolha HDD.

  7. Em Storage capacity (Capacidade de armazenamento), insira a capacidade mínima de armazenamento.

  8. Mantenha a Capacidade de Throughput na configuração padrão.

  9. Na seção Rede e segurança, escolha a mesma Amazon VPC que você escolheu para o diretório do AWS Directory Service.

  10. Em VPC Security Groups (Grupos de segurança da VPC), escolha o grupo de segurança que você verificou na Etapa 3: verificar e atualizar o grupo de segurança.

  11. Em Windows authentication (Autenticação do Windows), escolha AWS Managed Microsoft Active Directory (Microsoft Active Directory gerenciado pela ) e, depois, escolha o diretório do AWS Directory Service na lista.

  12. Em Encryption (Criptografia), mantenha a configuração padrão da Encryption key (Chave de criptografia) como aws/fsx (default).

  13. Mantenha as configurações padrão para Preferências de manutenção.

  14. Clique no botão Next (Avançar).

  15. Verifique a configuração do sistema de arquivos mostrada na página Criar sistema de arquivos. Para sua referência, anote quais configurações do sistema de arquivos você pode modificar após a criação do sistema de arquivos. Escolha Create file system (Criar sistema de arquivos).

  16. Anote o ID do sistema de arquivos. Você precisará usá-lo em uma etapa posterior.

    É possível seguir para as próximas etapas para criar um cluster e uma instância do EC2 enquanto o sistema de arquivos do FSX for Windows File Server está sendo criado.

Etapa 5: criar um cluster do Amazon ECS

Criar um cluster usando o console do Amazon ECS
  1. Abra o console em https://console.aws.amazon.com/ecs/v2.

  2. Na barra de navegação, selecione a Região a ser usada.

  3. No painel de navegação, escolha Clusters.

  4. Na página Clusters, escolha Create Cluster (Criar cluster).

  5. Em Configuração do cluster), para Nome do cluster, insira windows-fsx-cluster.

  6. Expanda Infraestrutura, desmarque AWS Fargate (tecnologia sem servidor) e selecione Instâncias do Amazon EC2.

    1. Para criar um grupo do Auto Scaling, a partir de Auto Scaling group (ASG) (Grupo do Auto Scaling (ASG)), selecione Create new group (Criar novo grupo) e, em seguida, forneça os seguintes detalhes sobre o grupo:

      • Em Sistema operacional/Arquitetura, escolha Windows Server 2019 Core.

      • Em Tipo de instância do EC2, escolha t2.medium ou t2.micro.

  7. Escolha Criar.

Etapa 6: criar uma instância do Amazon ECS otimizada para o Amazon EC2

Crie uma instância de contêiner do Windows do Amazon ECS.

Para criar uma instância do Amazon ECS
  1. Use o comando aws ssm get-parameters para recuperar o nome da AMI para a região que hospeda sua VPC. Para obter mais informações, consulte Recuperar os metadados da AMI otimizada para Amazon ECS.

  2. Use o console do Amazon EC2 para iniciar a instância.

    1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

    2. Na barra de navegação, selecione a Região a ser usada.

    3. No Painel do EC2, escolha Launch Instance (Iniciar instância).

    4. Em Name (Nome), insira um nome exclusivo.

    5. Em Imagens de aplicações e SO (Amazon Machine Image), no campo pesquisar, insira o nome da AMI que você recuperou.

    6. Em Tipo de instância, escolha t2.medium ou t2.micro.

    7. Em Key pair (login) (Par de chaves [login]), escolha um par de chaves. Se você não especificar um par de chaves, você

    8. Em Configurações de rede, para VPC e sub-rede, escolha sua VPC e uma sub-rede pública.

    9. Em Network settings (Configurações de rede), em Security group (Grupo de segurança), selecione um grupo de segurança existente ou crie outro. Certifique-se de que o grupo de segurança escolhido tenha as regras de entrada e saída definidas em Pré-requisitos para o tutorial

    10. Em Network settings (Configurações de rede), em Auto-assign Public IPC (Atribuir IP público automaticamente), selecione Enable (Habilitar).

    11. Expanda Detalhes avançados, e em Associar diretório a domínio, selecione o ID do Active Directory que você criou. Esse domínio se junta ao AD quando a instância do EC2 é iniciada.

    12. Em Advanced details (Detalhes avançados), em IAM instance profile (Perfil de instância do IAM), escolha ecsInstanceRole.

    13. Configure a instância de contêiner do Amazon ECS com os dados de usuário a seguir. Em Advanced Details (Detalhes avançados), cole o seguinte script no campo User data (Dados do usuário), substituindo cluster_name pelo nome do cluster.

      <powershell> Initialize-ECSAgent -Cluster windows-fsx-cluster -EnableTaskIAMRole </powershell>
    14. Quando estiver pronto, selecione o campo de confirmação e, então, escolha Launch Instances.

    15. Uma página de confirmação informa que sua instância está sendo executada. Selecione Visualizar instâncias para fechar a página de confirmação e voltar ao console.

  3. Abra o console em https://console.aws.amazon.com/ecs/v2.

  4. No painel de navegação, escolha Clusters e, em seguida, escolha windows-fsx-cluster.

  5. Selecione a guia Infraestrutura e verifique se a sua instância foi registrada no cluster windows-fsx-cluster.

Etapa 7: registrar uma definição de tarefa do Windows

Para executar contêineres do Windows no cluster do Amazon ECS, você deve registrar uma definição de tarefa. O exemplo de definição de tarefa a seguir exibe uma página da Web simples. A tarefa inicia dois contêineres que têm acesso ao sistema de arquivos do FSx. O primeiro contêiner grava um arquivo HTML no sistema de arquivos. O segundo contêiner baixa o arquivo HTML do sistema de arquivos e serve a página da Web.

  1. Abra o console em https://console.aws.amazon.com/ecs/v2.

  2. No painel de navegação, escolha Task definitions (Definições de tarefa).

  3. Escolha Create new task definition (Criar nova definição de tarefa), Create new task definition with JSON (Criar nova definição de tarefa com JSON).

  4. NA caixa do editor JSON, substitua os valores do seu perfil de execução da tarefa e os detalhes sobre o sistema de arquivos FSx e, em seguida, escolha Salvar.

    { "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" } } ] }

Etapa 8: executar uma tarefa e visualizar os resultados

Antes de executar a tarefa, verifique se o status do sistema de arquivos do FSx for Windows File Server está Available (Disponível). Depois que ele estiver disponível, será possível executar uma tarefa usando a definição de tarefa criada. A tarefa começa ao criar contêineres que embaralham um arquivo HTML entre eles usando o sistema de arquivos. Após o embaralhamento, um servidor Web atende à página HTML simples.

nota

Talvez você não seja capaz de se conectar ao site a partir de uma VPN.

Execute uma tarefa e veja os resultados no console do Amazon ECS.
  1. Abra o console em https://console.aws.amazon.com/ecs/v2.

  2. No painel de navegação, escolha Clusters e, em seguida, escolha windows-fsx-cluster.

  3. Escolha a guia Tarefas e, em seguida, escolha Executar nova tarefa.

  4. Em Launch Type, selecione EC2.

  5. Em Configuração de implantação, para Definição de tarefa, escolha fsx-windows e, em seguida, escolha Criar.

  6. Quando o status da tarefa for EM EXECUÇÃO, escolha o ID da tarefa.

  7. Em Contêineres, quando o status do contêiner1 for INTERROMPIDO, selecione contêiner2 para ver os detalhes do contêiner.

  8. Em Detalhes de contêiner para o contêiner2, selecione Ligações de rede e clique no endereço IP externo associado ao contêiner. O navegador abrirá e exibirá a mensagem a seguir.

    Amazon ECS Sample App
    It Works! 
    You are using Amazon FSx for Windows File Server file system for persistent container storage.
    nota

    Pode demorar alguns minutos para que a mensagem seja exibida. Se você não vir a mensagem após alguns minutos, certifique-se de que as execuções não estejam ocorrendo em uma VPN e de que o grupo de segurança das instâncias de contêiner permita o tráfego HTTP da rede de entrada na porta 443.

Etapa 9: limpar

nota

Demora de 20 a 45 minutos para excluir o sistema de arquivos do FSx for Windows File Server ou o AD. Você deve aguardar até que as operações de exclusão do sistema de arquivos do FSx for Windows File Server sejam concluídas antes de iniciar as operações de exclusão do AD.

Exclua o sistema de arquivos do FSx for Windows File Server
  1. Abra o console do Amazon FSx.

  2. Escolha o botão de opção à esquerda do sistema de arquivos do FSx for Windows File Server que você acabou de criar.

  3. Escolha Ações.

  4. Selecione Delete file system (Excluir sistema de arquivos).

Excluir AD.
  1. Abra o console de AWS Directory Service.

  2. Escolha o botão de opção à esquerda do AD que você acabou de criar.

  3. Escolha Ações.

  4. Selecione Delete directory (Excluir diretório).

Excluir o cluster.
  1. Abra o console em https://console.aws.amazon.com/ecs/v2.

  2. No painel de navegação, escolha Clusters e, em seguida, escolha fsx-windows-cluster.

  3. Escolha Delete Cluster (Excluir cluster).

  4. Insira a frase e, em seguida, escolha Excluir.

Encerra a instância do EC2.
  1. Abra o console do Amazon EC2.

  2. No menu à esquerda, selecione Instances (Instâncias).

  3. Marque a caixa de seleção à esquerda da instância do EC2 que você criou.

  4. Clique no Estado da instância, Encerrar instância.

Excluir segredo.
  1. Abra o console do Secrets Manager.

  2. Selecione o segredo que você criou para esta demonstração.

  3. Clique em Actions (Ações)

  4. Selecione Delete secret Excluir segredo).