Tutorial: criar um sistema de arquivos do EFS e montá-lo em uma instância do EC2 usando a AWS CLI - Amazon Elastic File System

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: criar um sistema de arquivos do EFS e montá-lo em uma instância do EC2 usando a AWS CLI

Crie um sistema de arquivos do EFS criptografado, monte-o em um instância do EC2 na sua VPC e teste a configuração usando a AWS CLI.

nota

No tutorial Conceitos básicos, você usa o console para criar recursos do Amazon EC2 e do EFS. Neste tutorial, você usa a AWS CLI para fazer o mesmo, principalmente para se familiarizar com a API do Amazon EFS.

Neste tutorial, você cria os seguintes recursos da AWS em sua conta:

  • Recursos do Amazon EC2:

    • Dois grupos de segurança (para sua instância do EC2 e para o sistema de arquivos do EFS).

      Adicione regras a esses grupos de segurança para autorizar o acesso de entrada/saída apropriado. Isso permite que sua instância do EC2 possa se conectar ao sistema de arquivos por meio do destino de montagem usando uma porta TCP NFSv4.1 padrão.

    • Uma instância do EC2 na sua VPC.

  • Recursos do Amazon EFS:

    • Um sistema de arquivos.

    • Um destino de montagem para o sistema de arquivos.

      Para montar o sistema de arquivos em uma instância do EC2, é necessário criar um destino de montagem na sua VPC. Você pode criar um destino de montagem em cada uma das zonas de disponibilidade na sua VPC. Para ter mais informações, consulte Como o Amazon EFS funciona.

Em seguida, o sistema de arquivos é testado na sua instância do EC2. A etapa de limpeza no final do tutorial fornece informações para remover esses recursos.

O tutorial cria todos esses recursos na região Oeste dos EUA (Oregon, us-west-2). Seja qual for a região da Região da AWS que você usar, certifique-se de usá-la de forma consistente. Todos os seus recursos (sua VPC, recursos do EC2 e recursos do EFS) devem estar na mesma Região da AWS.

Pré-requisitos

  • Você pode usar as credenciais raiz da sua conta da Conta da AWS para fazer login no console e testar o exercício de conceitos básicos. No entanto, o AWS Identity and Access Management (IAM) recomenda que você não use as credenciais raiz da sua conta da Conta da AWS. Em vez disso, crie um usuário administrador em sua conta e use essas credenciais para gerenciar recursos na sua conta. Em vez disso, crie um usuário administrador em sua conta e use essas credenciais para gerenciar recursos na sua conta. Para obter mais informações, consulte Atribuir a um usuário do IAM Identity Center acesso a uma Conta da AWS no Manual do usuário do AWS IAM Identity Center.

  • Você pode usar uma VPC padrão ou uma VPC personalizada que tenha criado em sua conta. A configuração padrão da VPC funciona para esta demonstração. No entanto, se você usar uma VPC personalizada, verifique o seguinte:

    • Os nomes de hosts DNS estão ativados. Para ter mais informações, consulte Atributos de DNS para sua VPC no Guia do usuário da Amazon VPC.

    • O gateway da Internet está conectado à VPC. Para obter mais informações, consulte Estabelecer conexão com a Internet usando um gateway da Internet no Guia do usuário da Amazon VPC.

    • As sub-redes da VPC são configuradas para solicitar endereços IP públicos para instâncias iniciadas em sub-redes da VPC. Para obter mais informações, consulte Endereçamento IP para suas VPCs e sub-redes no Manual do usuário da Amazon VPC.

    • A tabela de rotas da VPC inclui uma regra para enviar todos os tráfegos vinculados à internet para o gateway da internet.

  • Você precisa configurar a AWS CLI e adicionar o perfil de adminuser.

Configuração da AWS CLI

Use as instruções a seguir para configurar a AWS CLI e o perfil de usuário.

Para configurar a AWS CLI
  1. Faça download e configure a AWS CLI. Para obter instruções, consulte Get started with the AWS CLI no Guia do usuário da AWS Command Line Interface.

  2. Definir perfis.

    As credenciais de usuário são armazenadas no arquivo da AWS CLI config. Os comandos de exemplo da CLI neste tutorial especificam o perfil de adminuser. Crie o perfil de adminuser no arquivo config. Você também pode definir o perfil de usuário de administrador como padrão no arquivo config, como mostrado.

    [profile adminuser] aws_access_key_id = admin user access key ID aws_secret_access_key = admin user secret access key region = us-west-2 [default] aws_access_key_id = admin user access key ID aws_secret_access_key = admin user secret access key region = us-west-2

    O perfil anterior também define a região padrão da Região da AWS. Se você não especificar uma região no comando da CLI, a região presumida será us-west-2.

  3. Verifique a configuração inserindo o comando a seguir no prompt de comando. Ambos os comandos não fornecem credenciais explicitamente, de forma que são usadas as credenciais do perfil padrão.

    • Experimente o comando de ajuda

      Você também pode especificar o perfil de usuário explicitamente adicionando o parâmetro --profile.

      aws help
      aws help \ --profile adminuser

Etapa 1: criar recursos do EC2

Nesta etapa, faça o seguinte:

  • Crie dois security groups.

  • Adicione regras aos security groups para autorizar acesso adicional.

  • Inicie uma instância do EC2. Na próxima etapa, é criado e montado um sistema de arquivos do EFS nessa instância.

Etapa 1.1: criar dois grupos de segurança

Nesta seção, você cria grupos de segurança na VPC para sua instância do EC2 e o destino de montagem do EFS. Posteriormente, no tutorial, esses grupos de segurança são atribuídos a uma instância do EC2 e a um destino de montagem do EFS. Para obter mais informações sobre grupos de segurança, consulte Amazon EC2 security groups for Linux instances.

Para criar grupos de segurança
  1. Crie dois grupos de segurança usando o comando create-security-group da CLI.

    1. Crie um grupo de segurança (efs-walkthrough1-ec2-sg) para sua instância do EC2 e forneça o ID da sua VPC.

      $ aws ec2 create-security-group \ --region us-west-2 \ --group-name efs-walkthrough1-ec2-sg \ --description "Amazon EFS walkthrough 1, SG for EC2 instance" \ --vpc-id vpc-id-in-us-west-2 \ --profile adminuser

      Anote o ID do security group. O seguinte é um exemplo de resposta.

      { "GroupId": "sg-aexample" }

      Você pode encontrar o ID da VPC usando o seguinte comando.

      $ aws ec2 describe-vpcs

    2. Crie um grupo de segurança (efs-walkthrough1-mt-sg) para seu destino de montagem do EFS. Você precisa fornecer o ID da sua VPC.

      $ aws ec2 create-security-group \ --region us-west-2 \ --group-name efs-walkthrough1-mt-sg \ --description "Amazon EFS walkthrough 1, SG for mount target" \ --vpc-id vpc-id-in-us-west-2 \ --profile adminuser

      Anote o ID do security group. O seguinte é um exemplo de resposta.

      { "GroupId": "sg-aexample" }
  2. Verificar os security groups.

    aws ec2 describe-security-groups \ --group-ids list of security group IDs separated by space \ --profile adminuser \ --region us-west-2

    Ambos devem ter apenas uma regra de saída que permita que todo o tráfego saia.

    Na próxima seção, você autorizará o acesso adicional, que permite o seguinte:

    • Permite que você se conecte à sua instância do EC2.

    • Permita o tráfego entre uma instância do EC2 e um destino de montagem do EFS (ao qual você associará esses grupos de segurança mais adiante neste tutorial).

Etapa 1.2: adicionar regras para grupos de segurança para autorizar o acesso de entrada/saída

Nesta etapa, você adiciona regras aos security groups para autorizar o acesso de entrada/saída.

Para adicionar regras
  1. Autorize conexões SSH de entrada ao grupo de segurança para sua instância do EC2 (efs-walkthrough1-ec2-sg), de forma que você possa se conectar à sua instância do EC2 usando SSH de qualquer host.

    $ aws ec2 authorize-security-group-ingress \ --group-id id of the security group created for EC2 instance \ --protocol tcp \ --port 22 \ --cidr 0.0.0.0/0 \ --profile adminuser \ --region us-west-2

    Verifique se o security group tem a regra de entrada e de saída adicionada.

    aws ec2 describe-security-groups \ --region us-west-2 \ --profile adminuser \ --group-id security-group-id
  2. Autorize o acesso de entrada ao grupo de segurança para o destino de montagem do EFS (efs-walkthrough1-mt-sg).

    No prompt de comando, execute o seguinte comando da AWS CLI authorize-security-group-ingress usando o perfil de adminuser para adicionar a regra de entrada.

    $ aws ec2 authorize-security-group-ingress \ --group-id ID of the security group created for Amazon EFS mount target \ --protocol tcp \ --port 2049 \ --source-group ID of the security group created for EC2 instance \ --profile adminuser \ --region us-west-2
  3. Verifique se, agora, os security groups autorizam o acesso de entrada.

    aws ec2 describe-security-groups \ --group-names efs-walkthrough1-ec2-sg efs-walkthrough1-mt-sg \ --profile adminuser \ --region us-west-2

Etapa 1.3: Iniciar uma instância do EC2

Nesta etapa, você inicia uma instância do EC2.

Para iniciar uma instância do EC2
  1. Obtenha as seguintes informações que você precisa fornecer ao iniciar uma instância do EC2:

    • Nome do par de chaves Para obter instruções sobre como criar um par de chaves, consulte Criar um par de chaves para sua instância do Amazon EC2 no Manual do usuário do Amazon EC2.

    • O ID da imagem de máquina da Amazon (AMI) que você deseja iniciar.

      O comando da AWS CLI que você usa para iniciar uma instância do EC2 exige o ID da imagem de máquina da Amazon (AMI) que você deseja implantar como parâmetro. O exercício usa a AMI de HVM do Amazon Linux.

      nota

      Você pode usar a maioria das AMIs baseadas em Linux de uso geral. Se você usar outro Linux AMI, certifique-se de usar o gerenciador de pacote de distribuição para instalar o cliente NFS na instância. Além disso, pode ser necessário adicionar pacotes de software conforme necessário.

      Para o a AMI de HVM do Amazon Linux, você pode encontrar os IDs mais recente na AMI do Amazon Linux. Você escolhe o valor de ID da tabela de IDs de AMI do Amazon Linux da seguinte forma:

      • Escolha a região US West Oregon (Oeste dos EUA (Oregon)). Esta demonstração pressupõe que você está criando todos os recursos na região Oeste dos EUA (Oregon, us-west-2).

      • Escolha o tipo EBS-backed HVM 64-bit (HVM baseada em EBS de 64 bits) (porque no comando da CLI, você especifica o tipo de instância t2.micro, que não é compatível com o armazenamento de instâncias).

    • ID do security group que você criou para uma instância do EC2.

    • Região da AWS. Esta demonstração usa a região us-west-2.

    • Seu ID da sub-rede da VPC na qual você deseja iniciar a instância. Você pode obter a lista de sub-redes usando o comando describe-subnets.

      $ aws ec2 describe-subnets \ --region us-west-2 \ --filters "Name=vpc-id,Values=vpc-id" \ --profile adminuser

      Depois de escolher o ID de sub-rede, anote os seguintes valores do resultado de describe-subnets:

      • ID de sub-rede: você precisa desse valor ao criar um destino de montagem. Neste exercício, você cria um destino de montagem na mesma sub-rede em que você inicia uma instância do EC2.

      • Zona de disponibilidade da sub-rede: você precisa deste valor para criar seu nome DNS do destino de montagem que é usado para montar um sistema de arquivos na instância do EC2.

  2. Execute o seguinte comando da AWS CLI run-instances para iniciar uma instância do EC2.

    $ aws ec2 run-instances \ --image-id AMI ID \ --count 1 \ --instance-type t2.micro \ --associate-public-ip-address \ --key-name key-pair-name \ --security-group-ids ID of the security group created for EC2 instance \ --subnet-id VPC subnet ID \ --region us-west-2 \ --profile adminuser
  3. Anote o ID de instância retornado pelo comando run-instances.

  4. A instância do EC2 que você criou deve ter um nome DNS público que você usa para se conectar à instância do EC2 e montar o sistema de arquivos nele. O nome DNS público tem o formato:

    ec2-xx-xx-xx-xxx.compute-1.amazonaws.com

    Execute o comando de CLI a seguir e anote o nome DNS público.

    aws ec2 describe-instances \ --instance-ids EC2 instance ID \ --region us-west-2 \ --profile adminuser

    Se não encontrar o nome DNS público, verifique a configuração da VPC na qual você iniciou a instância do EC2. Para ter mais informações, consulte Pré-requisitos.

  5. (Opcional) Atribua um nome à instância do EC2 que você criou. Para fazer isso, adicione uma tag com o nome da chave e o valor definido para o nome que você deseja atribuir à instância. Você pode fazer isso executando o seguinte comando create-tags da AWS CLI:

    $  aws ec2 create-tags \ --resources EC2-instance-ID \ --tags Key=Name,Value=Provide-instance-name  \ --region us-west-2 \ --profile adminuser

Etapa 2: criar recursos do EFS

Nesta etapa, faça o seguinte:

  • Criar um sistema de arquivos do EFS criptografado.

  • Ative o gerenciamento do ciclo de vida útil.

  • Crie um destino de montagem na zona de disponibilidade onde sua instância do EFS foi iniciada.

Etapa 2.1: criar um sistema de arquivos do EFS

Nesta etapa, você cria um sistema de arquivos do EFS. Anote o FileSystemId usar mais tarde, quando você cria destinos de montagem para o sistema de arquivos na próxima etapa.

Para criar um sistema de arquivos
  • Crie um sistema de arquivos com a tag Name opcional.

    1. No prompt de comando, execute o seguinte comando da AWS CLI create-file-system.

      $ aws efs create-file-system \ --encrypted \ --creation-token FileSystemForWalkthrough1 \ --tags Key=Name,Value=SomeExampleNameValue \ --region us-west-2 \ --profile adminuser

      Você receberá a seguinte resposta.

      { "OwnerId": "111122223333", "CreationToken": "FileSystemForWalkthrough1", "FileSystemId": "fs-c657c8bf", "CreationTime": 1548950706.0, "LifeCycleState": "creating", "NumberOfMountTargets": 0, "SizeInBytes": { "Value": 0, "ValueInIA": 0, "ValueInStandard": 0 }, "PerformanceMode": "generalPurpose", "Encrypted": true, "KmsKeyId": "arn:aws:kms:us-west-2:111122223333:a5c11222-7a99-43c8-9dcc-abcdef123456", "ThroughputMode": "bursting", "Tags": [ { "Key": "Name", "Value": "SomeExampleNameValue" } ] }
    2. Observe o valor FileSystemId. Você precisa desse valor ao criar um destino de montagem para esse sistema de arquivos em Etapa 2.3: criar um destino de montagem.

Etapa 2.2: ativar o gerenciamento do ciclo de vida

Nesta etapa, você habilita o gerenciamento do ciclo de vida no sistema de arquivos para usar a classe de armazenamento EFS Infrequent Access (IA). Para saber mais, consulte Gerenciar o ciclo de vida de armazenamento de sistemas de arquivos do EFS e Classes de armazenamento do EFS.

Para ativar o gerenciamento do ciclo de vida útil
  • No prompt de comando, execute o seguinte comando da AWS CLI put-lifecycle-configuration.

    $ aws efs put-lifecycle-configuration \ --file-system-id fs-c657c8bf \ --lifecycle-policies TransitionToIA=AFTER_30_DAYS \ --region us-west-2 \ --profile adminuser

    Você receberá a seguinte resposta.

    { "LifecyclePolicies": [ { "TransitionToIA": "AFTER_30_DAYS" } ] }

Etapa 2.3: criar um destino de montagem

Nesta etapa, você cria um destino de montagem para o sistema de arquivos na zona de disponibilidade onde sua instância do EC2 foi iniciada.

  1. Certifique-se de que você tem as seguintes informações:

    • ID do sistema de arquivos (por exemplo, fs-example) para o qual você está criando o destino de montagem.

    • ID da sub-rede da VPC na qual você iniciou a instância do EC2 na Etapa 1: criar recursos do EC2.

      Neste tutorial, você cria o destino de montagem na mesma sub-rede na qual você iniciou a instância do EC2; portanto, você precisa do ID de sub-rede (por exemplo, subnet-example).

    • ID do security group que você criou para o destino de montagem na etapa anterior.

  2. No prompt de comando, execute o seguinte comando da AWS CLI create-mount-target.

    $ aws efs create-mount-target \ --file-system-id file-system-id \ --subnet-id subnet-id \ --security-group ID-of-the security-group-created-for-mount-target \ --region us-west-2 \ --profile adminuser

    Você receberá a seguinte resposta.

    { "MountTargetId": "fsmt-example", "NetworkInterfaceId": "eni-example", "FileSystemId": "fs-example", "PerformanceMode" : "generalPurpose", "LifeCycleState": "available", "SubnetId": "fs-subnet-example", "OwnerId": "account-id", "IpAddress": "xxx.xx.xx.xxx" }
  3. Você também pode usar o comando describe-mount-targets para obter descrições de destinos de montagem que você criou em um sistema de arquivos.

    $ aws efs describe-mount-targets \ --file-system-id file-system-id \ --region us-west-2 \ --profile adminuser

Etapa 3: montar o sistema de arquivos na instância do EC2 e testar

Nesta etapa, faça o seguinte:

  • Colete as informações necessárias.

  • Instale o cliente NFS em sua instância do EC2.

  • Monte o sistema de arquivos em sua instância do EC2 e teste-o.

Etapa 3,1: Coletar informações

Conforme você segue as etapas nesta seção, certifique-se de que tem as seguintes informações:

  • Nome DNS público da sua instância do EC2 no seguinte formato:

    ec2-xx-xxx-xxx-xx.aws-region.compute.amazonaws.com
  • Nome DNS do seu sistema de arquivos. Esse nome DNS pode ser criado usando o seguinte formato genérico:

    file-system-id.efs.aws-region.amazonaws.com

    A instância do EC2 na qual você montar o sistema de arquivos usando o destino de montagem pode resolver o nome DNS do sistema de arquivos para o endereço IP do destino de montagem.

nota

O Amazon EFS não exige que a instância do EC2 tenha um endereço IP público ou nome DNS público. Os requisitos listados acima são apenas para este exemplo de demonstração, para garantir que você pode se conectar usando o SSH na instância de fora da VPC.

Etapa 3.2: instalar o cliente NFS na instância do EC2

É possível se conectar à sua instância do EC2 do Windows ou de um computador com Linux, macOS X ou qualquer outra variante do Unix.

Para instalar um NFS cliente
  1. Conecte-se à sua instância do EC2. Para obter mais informações, consulte Conexão com a instância do EC2 no Manual do usuário do Amazon EC2.

  2. Execute os seguintes comandos na instância do EC2 usando a sessão SSH:

    1. (Opcional) Obtenha atualizações e reinicialize.

      $ sudo yum -y update $ sudo reboot

      Após a reinicialização, reconecte-se à sua instância do EC2.

    2. Instale o NFS cliente.

      $ sudo yum -y install nfs-utils
      nota

      Se você escolher a AMI do Amazon Linux AMI 2016.03.0 ao iniciar a instância do EC2, não será necessário instalar o nfs-utils porque já estará incluído na AMI por padrão.

Etapa 3.3: montar um sistema de arquivos em sua instância do EC2 e testar

Agora você montar o sistema de arquivos em sua instância do EC2.

  1. Faça um diretório ("efs-mount-point").

    $ mkdir ~/efs-mount-point
  2. Monte o sistema de arquivos do EFS.

    $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-DNS:/ ~/efs-mount-point

    A instância do EC2 pode resolver o nome DNS do destino de montagem para o endereço IP. Opcionalmente, você pode especificar o endereço IP do destino de montagem diretamente.

    $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/  ~/efs-mount-point
  3. Agora que você tem o sistema de arquivos do EFS montado em sua instância do EC2, você pode criar arquivos.

    1. Altere o diretório.

      $ cd ~/efs-mount-point
    2. Liste o conteúdo do diretório.

      $ ls -al

      Ele deve estar vazio.

      drwxr-xr-x 2 root root 4096 Dec 29 22:33 . drwx------ 4 ec2-user ec2-user 4096 Dec 29 22:54 ..

    3. O diretório raiz de um sistema de arquivos, durante a criação, é de propriedade e gravável pelo usuário raiz, de forma que você precisa alterar as permissões para adicionar arquivos.

      $ sudo chmod go+rw .

      Agora, se você tentar o comando ls -al, verá que as permissões foram alteradas.

      drwxrwxrwx 2 root root 4096 Dec 29 22:33 . drwx------ 4 ec2-user ec2-user 4096 Dec 29 22:54 ..
    4. Crie um arquivo de texto .

      $ touch test-file.txt
    5. Liste o conteúdo do diretório.

      $ ls -l

Agora você criou e montou um sistema de arquivos do EFS com sucesso em na instância do EC2 em sua VPC.

O sistema de arquivos montado não é mantido nas reinicializações. Para remontar o diretório automaticamente, você pode usar o arquivo fstab. Se você estiver usando um grupo de Auto Scaling para iniciar instâncias do EC2, você também pode definir scripts em uma configuração de iniciação.

Etapa 4: limpar

Se não precisar mais dos recursos que criou, você deve removê-los. Isto pode ser feito com a CLI.

  • Remova recursos do EC2 (a instância do EC2 e os dois grupos de segurança). Quando você exclui o destino de montagem, o Amazon EFS exclui a interface de rede.

  • Remova os recursos do EFS (sistema de arquivos e destino de montagem).

Como excluir recursos da AWS criados nessa demonstração
  1. Encerre a instância do EC2 que você criou para este tutorial.

    $ aws ec2 terminate-instances \ --instance-ids instance-id \ --profile adminuser

    Você também pode excluir recursos do EC2 usando o console. Para obter instruções, consulte Terminar uma instância.

  2. Excluir o destino de montagem

    Antes de excluir o sistema de arquivos, você deve excluir os destinos de montagem criados para o sistema de arquivos. Você pode obter uma lista de destinos de montagem usando o comando describe-mount-targets da CLI.

    $ aws efs describe-mount-targets \ --file-system-id file-system-ID \ --profile adminuser \ --region aws-region

    Em seguida, exclua o destino de montagem usando o comando delete-mount-target da CLI.

    $ aws efs delete-mount-target \ --mount-target-id ID-of-mount-target-to-delete \ --profile adminuser \ --region aws-region
  3. (Opcional) Exclua os dois security groups que você criou. Você não paga para criar security groups.

    Antes de excluir o security group da instância do EC2, primeiro você deve excluir o security group do destino de montagem. O security group do destino de montagem tem uma regra que faz referência ao security group do EC2. Portanto, você não pode excluir primeiro security group de instância do EC2.

    Para obter instruções, consulte Delete your security group no Manual do usuário do Amazon EC2.

  4. Exclua o sistema de arquivos usando o comando delete-file-system da CLI. Você pode obter uma lista de seus sistemas de arquivos usando o comando describe-file-systems da CLI. Você pode obter o ID do sistema de arquivos da resposta.

    aws efs describe-file-systems \ --profile adminuser \ --region aws-region

    Exclua o sistema de arquivos fornecendo o ID do sistema de arquivos.

    $ aws efs delete-file-system \ --file-system-id ID-of-file-system-to-delete \ --region aws-region \ --profile adminuser