

# Configurar os sistemas de arquivos do Amazon EFS para o Amazon ECS usando o console
<a name="tutorial-efs-volumes"></a>

Saiba como usar os sistemas de arquivos do Amazon Elastic File System (Amazon EFS) com o Amazon ECS.

## Etapa 1: criar um cluster do Amazon ECS
<a name="efs-create-cluster"></a>

Use as etapas a seguir para criar um cluster do Amazon ECS. 

**Para criar um novo cluster (console do Amazon ECS)**

Antes de começar, atribua a permissão apropriada do IAM. Para obter mais informações, consulte [Exemplos de clusters do Amazon ECS](security_iam_id-based-policy-examples.md#IAM_cluster_policies).

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

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

1. No painel de navegação, escolha **Clusters**.

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

1. Em **Configuração do cluster**, em **Nome do cluster**, insira `EFS-tutorial` para o nome do cluster.

1. (Opcional) Para alterar a VPC e as sub-redes onde suas tarefas e serviços são iniciados, em **Networking** (Redes), execute qualquer uma das operações a seguir:
   + Para remover uma sub-rede, em **Subnets** (Sub-redes), escolha **X** para cada sub-rede que você deseja remover.
   + Para alterar para uma VPC diferente do **padrão**, em **VPC**, escolha uma **VPC** existente e depois, em **Sub-redes**, selecione cada sub-rede.

1.  Para adicionar instâncias do Amazon EC2 ao seu cluster, expanda **Infraestrutura** e selecione **Instâncias do Amazon EC2**. Em seguida, configure o grupo do Auto Scaling que atua como o provedor de capacidade:

   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/arquitetura operacional**, escolha Amazon Linux 2.
     + Em **EC2 instance type (Tipo de instância do EC2)**, escolha `t2.micro`.

        Em **SSH key pair** (Par de chaves de SSH), escolha o par que prova sua identidade quando você se conecta à instância.
     + Em **Capacidade**, insira `1`.

1. Escolha **Criar**.

## Etapa 2: criar um grupo de segurança para instâncias do Amazon EC2 e o sistema de arquivos Amazon EFS
<a name="efs-security-group"></a>

Nesta etapa, você criará um grupo de segurança para suas instâncias do Amazon EC2 que permite tráfego de rede de entrada na porta 80 e seu sistema de arquivos Amazon EFS que permite o acesso de entrada das suas instâncias de contêiner. 

Crie um grupo de segurança para suas instâncias do Amazon EC2 com as opções a seguir:
+ **Nome do grupo de segurança**: um nome exclusivo para seu grupo de segurança.
+ **VP**: a VPC identificada anteriormente para o cluster.
+ **Regra de entrada**
  + **Tipo**: **HTTP**
  + **Origem** - **0.0.0.0/0**.

Crie um grupo de segurança seu sistema de arquivos Amazon EFS com as opções a seguir:
+ **Nome do grupo de segurança**: um nome exclusivo para seu grupo de segurança. Por exemplo, `EFS-access-for-sg-dc025fa2`.
+ **VP**: a VPC identificada anteriormente para o cluster.
+ **Regra de entrada**
  + **Tipo**: **NFS**
  + **Origem**: **Personalizada** com o ID do grupo de segurança que você criou para suas instâncias.

Para obter informações sobre como criar um grupo de segurança, consulte [Criar um grupo de segurança para sua instância do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-security-group.html) no *Guia do usuário do Amazon EC2*.

## Etapa 3: criar um sistema de arquivos do Amazon EFS
<a name="efs-create-filesystem"></a>

Nesta etapa, você cria um sistema de arquivos do Amazon EFS.

**Para criar um sistema de arquivos do Amazon EFS para tarefas do Amazon ECS.**

1. Abra o console do Amazon Elastic File System em [https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/).

1. Escolha **Create file system (Criar sistema de arquivos)**.

1. Insira um nome para seu sistema de arquivos e escolha a VPC na qual suas instâncias de contêiner estão hospedadas. Por padrão, cada sub-rede na VPC especificada recebe um destino de montagem que usa o grupo de segurança padrão para essa VPC. Em seguida, escolha **Personalizar**.
**nota**  
Este tutorial pressupõe que o sistema de arquivos do Amazon EFS, o cluster do Amazon ECS, as instâncias de contêiner e as tarefas estejam na mesma VPC. Para obter mais informações sobre a montagem de um sistema de arquivos em uma VPC diferente, consulte [Walkthrough: Mount a file system from a different VPC](https://docs.aws.amazon.com/efs/latest/ug/efs-different-vpc.html) no *Guia do usuário do Amazon EFS*.

1. Na página **Configurações do sistema de arquivos**, defina as configurações opcionais e, em **Configurações de performance**, escolha o modo de throughput **Intermitente** para seu sistema de arquivos. Depois de definir as configurações, selecione **Avançar**.

   1. (Opcional) Adicione tags ao sistema de arquivos. Por exemplo, você pode especificar um nome exclusivo para o sistema de arquivos inserindo esse nome na coluna **Value (Valor)** ao lado da chave **Name (Nome)**.

   1. (Opcional) Habilite o gerenciamento do ciclo de vida para economizar dinheiro em armazenamento acessado com pouca frequência. Para obter mais informações, consulte [Gerenciamento de ciclo de vida do EFS](https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html) no *Guia do usuário do Amazon Elastic File System*.

   1. (Opcional) Habilitar criptografia. Marque a caixa de seleção para habilitar a criptografia do sistema de arquivos do Amazon EFS em repouso.

1. Na página **Acesso à rede**, em **Montar destinos**, substitua a configuração do grupo de segurança existente para cada zona de disponibilidade pelo grupo de segurança que você criou para o sistema de arquivos [Etapa 2: criar um grupo de segurança para instâncias do Amazon EC2 e o sistema de arquivos Amazon EFS](#efs-security-group) e escolha **Avançar**.

1.  Não é preciso configurar a **Política do sistema de arquivos** para este tutorial, de modo que é possível pular a seção escolhendo **Avançar**.

1. Revise as opções do sistema de arquivos e escolha **Criar** para concluir o processo.

1. Na tela **Sistemas de arquivo**, registre o **ID do sistema de arquivos**. Na próxima etapa, você fará referência a esse valor na definição de tarefa do Amazon ECS.

## Etapa 4: adicionar conteúdo ao sistema de arquivos do Amazon EFS
<a name="efs-add-content"></a>

Nesta etapa, você monta o sistema de arquivos do Amazon EFS em uma instância do Amazon EC2 e adiciona conteúdo a ela. Esta etapa é para fins de teste neste tutorial, a fim de ilustrar a natureza persistente dos dados. Ao usar esse recurso, você normalmente teria sua aplicação ou outro método de gravação de dados no seu sistema de arquivos do Amazon EFS.

**Para criar uma instância do Amazon EC2 e montar o sistema de arquivos do Amazon EFS**

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

1. Escolha **Executar instância**.

1. Em **Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)**, selecione a **AMI do Amazon Linux 2 (HVM)**.

1. Em **Tipo de instância**, mantenha o tipo de instância padrão, `t2.micro`.

1.  Em **Par de chaves (login)**, selecione um par de chaves para acesso por SSH à instância.

1. Em **Configurações de rede**, selecione a VPC especificada para o sistema de arquivos Amazon EFS e o cluster do Amazon ECS. Selecione uma sub-rede e o grupo de segurança da instância criado em [Etapa 2: criar um grupo de segurança para instâncias do Amazon EC2 e o sistema de arquivos Amazon EFS](#efs-security-group). Configure o grupo de segurança da instância. Verifique se **Atribuir automaticamente IP público** está habilitado.

1. Em **Configurar armazenamento**, escolha o botão **Editar** para sistemas de arquivos e, em seguida, escolha **EFS**. Selecione o sistema de arquivos que você criou em [Etapa 3: criar um sistema de arquivos do Amazon EFS](#efs-create-filesystem). Opcionalmente, é possível alterar o ponto de montagem ou deixar o valor padrão.
**Importante**  
É necessário selecionar uma sub-rede antes de adicionar um sistema de arquivos à instância.

1. Desmarque **Criar e anexar grupos de segurança automaticamente**. Deixe a outra caixa de seleção marcada. Selecione **Add shared file system** (Adicionar sistema de arquivos compartilhado).

1. Em **Advanced Details** (Detalhes avançados), certifique-se de que o script de dados do usuário seja preenchido automaticamente com as etapas de montagem do sistema de arquivos do Amazon EFS.

1.  Em **Resumo**, verifique se o **Número de instâncias** é **1**. Escolha **Iniciar instância**.

1. Na página **Iniciar uma instância** escolha **Visualizar todas instâncias** para ver o status das suas instâncias. Inicialmente, o **Estado da instância** é `PENDING`. Depois que o estado mudar para `RUNNING` e a instância passar por todas as verificações de status, a instância estará pronta para uso.

Agora, você se conecta à instância do Amazon EC2 e adiciona conteúdo ao sistema de arquivos do Amazon EFS.

**Para conectar-se à instância do Amazon EC2 e adicionar conteúdo ao sistema de arquivos do Amazon EFS**

1. SSH para a instância do Amazon EC2 que você criou. Para obter mais informações, consulte [Conectar-se à instância do Linux usando SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) no *Guia do usuário do Amazon EC2*.

1. Na janela do terminal, execute o comando **df -T** para verificar se o sistema de arquivos Amazon EFS está montado. Na saída a seguir, destacamos a montagem do sistema de arquivos do Amazon EFS.

   ```
   $ df -T
   Filesystem     Type            1K-blocks    Used        Available Use% Mounted on
   devtmpfs       devtmpfs           485468       0           485468   0% /dev
   tmpfs          tmpfs              503480       0           503480   0% /dev/shm
   tmpfs          tmpfs              503480     424           503056   1% /run
   tmpfs          tmpfs              503480       0           503480   0% /sys/fs/cgroup
   /dev/xvda1     xfs               8376300 1310952          7065348  16% /
   127.0.0.1:/    nfs4     9007199254739968       0 9007199254739968   0% /mnt/efs/fs1
   tmpfs          tmpfs              100700       0           100700   0% /run/user/1000
   ```

1. Navegue até o diretório no qual o sistema de arquivos do Amazon EFS está montado. No exemplo acima, ele é `/mnt/efs/fs1`.

1. Crie um arquivo chamado `index.html` com o seguinte conteúdo:

   ```
   <html>
       <body>
           <h1>It Works!</h1>
           <p>You are using an Amazon EFS file system for persistent container storage.</p>
       </body>
   </html>
   ```

## Etapa 5: criar uma definição de tarefa
<a name="efs-task-def"></a>

A definição de tarefa a seguir cria um volume de dados chamado `efs-html`. O contêiner `nginx` monta o volume de dados do host na raiz de NGINX, `/usr/share/nginx/html`.

**Para criar uma nova definição de tarefa usando o console do Amazon ECS**

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

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

1. 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).

1. Na caixa do editor JSON, copie e cole o seguinte texto JSON, substituindo `fileSystemId` pelo ID do sistema de arquivos do Amazon EFS.

   ```
   {
       "containerDefinitions": [
           {
               "memory": 128,
               "portMappings": [
                   {
                       "hostPort": 80,
                       "containerPort": 80,
                       "protocol": "tcp"
                   }
               ],
               "essential": true,
               "mountPoints": [
                   {
                       "containerPath": "/usr/share/nginx/html",
                       "sourceVolume": "efs-html"
                   }
               ],
               "name": "nginx",
               "image": "public.ecr.aws/docker/library/nginx:latest"
           }
       ],
       "volumes": [
           {
               "name": "efs-html",
               "efsVolumeConfiguration": {
                   "fileSystemId": "fs-1324abcd",
                   "transitEncryption": "ENABLED"
               }
           }
       ],
       "family": "efs-tutorial",
       "executionRoleArn":"arn:aws:iam::111122223333:role/ecsTaskExecutionRole"
   }
   ```
**nota**  
O perfil do IAM de execução de tarefas do Amazon ECS não exige nenhuma permissão específica relacionada ao Amazon EFS para montar um sistema de arquivos do Amazon EFS. Por padrão, se a política baseada em recursos do Amazon EFS não existir, o acesso será concedido a todas as entidades principais (\$1) na criação do sistema de arquivos.  
O perfil da tarefa do Amazon ECS será necessário apenas se a “autorização do IAM para EFS” estiver habilitada na definição da tarefa do Amazon ECS. Quando habilitada, a identidade do perfil da tarefa deverá ter o acesso permitido ao sistema de arquivos do Amazon EFS na política baseada em recursos do Amazon EFS, e o acesso anônimo deverá ser desabilitado.

1. Escolha **Criar**.

## Etapa 6: executar uma tarefa e visualizar os resultados
<a name="efs-run-task"></a>

Agora que o sistema de arquivos do Amazon EFS foi criado e há conteúdo da Web para o contêiner NGINX atender, você pode executar uma tarefa usando a definição de tarefa criada. Os servidores web do NGINX fornecem sua página HTML simples. Se você atualizar o conteúdo no sistema de arquivos do Amazon EFS, essas alterações serão propagadas para todos os contêineres que também tenham montado este sistema de arquivos.

A tarefa é executada na sub-rede que você definiu para o cluster.

**Para executar uma tarefa e visualizar os resultados usando o console**

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Na página **Clusters**, selecione o cluster que contém a tarefa autônoma.

   Determine o recurso no qual você inicia o serviço.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/tutorial-efs-volumes.html)

1. (Opcional) Escolha como a tarefa programada é distribuída em toda a infraestrutura do cluster. Expanda **Compute configuration** (Configuração de computação) e realize estas ações:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/tutorial-efs-volumes.html)

1. Em **Application type** (Tipo de aplicação), escolha **Task** (Tarefa).

1. Em **Definição de tarefa**, escolha a definição de tarefa `efs-tutorial` que você criou anteriormente.

1. Em **Tarefas desejadas**, insira `1`.

1. Escolha **Criar**.

1. Na página **Cluster**, escolha **Infraestrutura**.

1. Em **Instâncias de contêiner**, escolha a instância de contêiner com a qual deseja estabelecer conexão.

1. Na página **Instância de contêiner**, Em **Redes**, registre o **IP público** para sua instância.

1. Abra um navegador e insira o endereço IP público. Você deve ver a mensagem a seguir:

   ```
   It works!
   You are using an Amazon EFS file system for persistent container storage.
   ```
**nota**  
Se você não vir a mensagem, verifique se o grupo de segurança para suas instâncias de contêiner permite o tráfego de rede de entrada na porta 80 e se o grupo de segurança do seu sistema de arquivos permite acesso de entrada a partir da instância de contêiner.