Tutorial: Cree un sistema de EFS archivos y móntelo en una EC2 instancia mediante el AWS CLI - Amazon Elastic File System

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.

Tutorial: Cree un sistema de EFS archivos y móntelo en una EC2 instancia mediante el AWS CLI

Cree un sistema de EFS archivos cifrados, EC2 móntelo en una instancia suya y pruebe la configuración con AWS CLI. VPC

nota

En el Introducción tutorial, utilizarás la consola para crear Amazon EC2 y sus EFS recursos. En este tutorial, utilizarás el AWS CLI para hacer lo mismo, principalmente para familiarizarte con Amazon. EFS API

En este tutorial, crearás los siguientes AWS recursos en tu cuenta:

  • EC2Recursos de Amazon:

    • Dos grupos de seguridad (para la EC2 instancia y EFS el sistema de archivos).

      Añada reglas a los grupos de seguridad para autorizar el acceso de entrada/salida adecuado. De este modo, EC2instance podrá conectarse al sistema de archivos a través del destino de montaje mediante un TCP puerto NFSv4 .1 estándar.

    • Una EC2 instancia en tuVPC.

  • EFSRecursos de Amazon:

    • Un sistema de archivos.

    • Un destino de montaje para su sistema de archivos.

      Para montar su sistema de archivos en una EC2 instancia, debe crear un objetivo de montaje en suVPC. Puede crear un objetivo de montaje en cada una de las zonas de disponibilidad de suVPC. Para obtener más información, consulte Cómo EFS funciona Amazon.

A continuación, prueba el sistema de archivos de la EC2 instancia. El paso de limpieza que se encuentra al final del tutorial proporciona información para eliminar estos recursos.

El tutorial crea todos estos recursos en la región EE.UU. Oeste (Oregón) (us-west-2). Sea cual Región de AWS sea el que utilice, asegúrese de usarlo de forma coherente. Todos tus recursos (los tuyosVPC, EC2 los recursos y los recursos) deben estar en el EFS mismo lugar. Región de AWS

Requisitos previos

  • Puedes usar tus credenciales raíz Cuenta de AWS para iniciar sesión en la consola e intentar el ejercicio de introducción. Sin embargo, AWS Identity and Access Management (IAM) recomienda que no utilice las credenciales raíz de su Cuenta de AWS. En su lugar, cree un usuario administrador en su cuenta y utilice esas credenciales para administrar los recursos de su cuenta. En su lugar, cree un usuario administrador en su cuenta y utilice esas credenciales para administrar los recursos de su cuenta. Para obtener más información, consulte Asignar Cuenta de AWS acceso a un usuario del Centro de IAM identidad en la Guía del AWS IAM Identity Center usuario.

  • Puede usar un valor predeterminado VPC o uno personalizado VPC que haya creado en su cuenta. En este tutorial, la VPC configuración predeterminada funciona. Sin embargo, si usa una personalizadaVPC, compruebe lo siguiente:

    • DNSlos nombres de host están habilitados. Para obtener más información, consulta DNSlos atributos en la Guía del VPC usuario de Amazon. VPC

    • La puerta de enlace de Internet está conectada a suVPC. Para obtener más información, consulte Conectarse a Internet mediante una puerta de enlace a Internet en la Guía del VPC usuario de Amazon.

    • Las VPC subredes están configuradas para solicitar direcciones IP públicas para las instancias lanzadas en las VPC subredes. Para obtener más información, consulta el direccionamiento IP de tu red VPCs y de tus subredes en la Guía del VPC usuario de Amazon.

    • La tabla de VPC rutas incluye una regla para enviar todo el tráfico con destino a Internet a la puerta de enlace de Internet.

  • Debe configurar AWS CLI y agregar el perfil de administrador/usuario.

Configuración del AWS CLI

Utilice las siguientes instrucciones para configurar el perfil de usuario AWS CLI y.

Para configurar el AWS CLI
  1. Descargue y configure la AWS CLI. Para obtener instrucciones, consulte Primeros pasos con el AWS CLI en la Guía del AWS Command Line Interface usuario.

  2. Definir perfiles.

    Las credenciales de usuario se almacenan en el AWS CLI config archivo. Los CLI comandos de ejemplo de este tutorial especifican el perfil adminuser. Cree el perfil adminuser en el archivo config. También puede definir el perfil de usuario del administrador como predeterminado en el archivo config como se muestra.

    [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

    El perfil anterior también establece el predeterminado Región de AWS. Si no especifica una región en el CLI comando, se asume la región us-west-2.

  3. Verifique la configuración introduciendo el siguiente comando en el símbolo del sistema. Ambos comandos no proporcionan las credenciales de forma explícita, por lo que se utilizan las credenciales del perfil predeterminado.

    • Pruebe el comando de ayuda

      También puede especificar el perfil de usuario de forma explícita añadiendo el parámetro --profile.

      aws help
      aws help \ --profile adminuser

Paso 1: Crear recursos EC2

En este paso, hará lo siguiente:

  • Cree dos grupos de seguridad.

  • Añada reglas a los grupos de seguridad para autorizar el acceso adicional.

  • Lance una instancia de EC2. En el siguiente paso, debe crear y montar un sistema de EFS archivos en esta instancia.

Paso 1.1: Crear dos grupos de seguridad

En esta sección, se crean grupos de seguridad VPC para la EC2 instancia y se EFS montan en el destino. Más adelante en el tutorial, asignará estos grupos de seguridad a una EC2 instancia y a un destino de EFS montaje. Para obtener información sobre los grupos de seguridad, consulte Grupos EC2 de seguridad de Amazon para instancias de Linux.

Para crear grupos de seguridad
  1. Cree dos grupos de seguridad mediante el create-security-group CLI comando:

    1. Crea un grupo de seguridad (efs-walkthrough1-ec2-sg) para tu EC2 instancia y proporciona tu VPC ID.

      $ 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 el ID del grupo de seguridad. A continuación, se muestra un ejemplo de respuesta.

      { "GroupId": "sg-aexample" }

      Puedes encontrar el VPC ID mediante el siguiente comando.

      $ aws ec2 describe-vpcs

    2. Cree un grupo de seguridad (efs-walkthrough1-mt-sg) para su objetivo de EFS montaje. Debe proporcionar su VPC ID.

      $ 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 el ID del grupo de seguridad. A continuación, se muestra un ejemplo de respuesta.

      { "GroupId": "sg-aexample" }
  2. Verifique los grupos de seguridad.

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

    Ambos deben tener solo una regla de salida que permita que todo el tráfico salga.

    En la siguiente sección, autoriza el acceso adicional que permite lo siguiente:

    • Le permite conectarse a su EC2 instancia.

    • Habilite el tráfico entre una EC2 instancia y un destino de EFS montaje (al que asociará estos grupos de seguridad más adelante en este tutorial).

Paso 1.2: Añadir reglas a los grupos de seguridad para autorizar el acceso de entrada/salida

En este paso, añade reglas a los grupos de seguridad para autorizar el acceso de entrada/salida.

Para añadir reglas
  1. Autoriza las conexiones entrantes de Secure Shell (SSH) al grupo de seguridad de tu EC2 instancia (efs-walkthrough1-ec2-sg) para que puedas conectarte a tu EC2 instancia SSH desde cualquier 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

    Compruebe que el grupo de seguridad tenga la regla de entrada y salida que ha añadido.

    aws ec2 describe-security-groups \ --region us-west-2 \ --profile adminuser \ --group-id security-group-id
  2. Autoriza el acceso entrante al grupo de seguridad para el destino de EFS montaje (efs-walkthrough1-mt-sg).

    En la línea de comandos, ejecute el siguiente AWS CLI authorize-security-group-ingress comando con el perfil adminuser para agregar la regla 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. Compruebe que ambos grupos de seguridad autorizan ahora el acceso de entrada.

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

Paso 1.3: Lanza una instancia EC2

En este paso, lanzas una EC2 instancia.

Para lanzar una instancia EC2
  1. Recopila la siguiente información que debes proporcionar al lanzar una EC2 instancia:

    • Nombre del par de claves. Para obtener instrucciones sobre cómo crear un par de claves, consulta Cómo crear un par de claves para tu EC2 instancia de Amazon en la Guía del EC2 usuario de Amazon.

    • El ID de la Amazon Machine Image (AMI) que quieres lanzar.

      El AWS CLI comando que utilizas para lanzar una EC2 instancia requiere el ID de Amazon Machine Image (AMI) que deseas implementar como parámetro. El ejercicio utiliza Amazon Linux HVMAMI.

      nota

      Puede utilizar la mayoría de los sistemas basados en Linux AMIs de uso general. Si usas otro LinuxAMI, asegúrate de usar el administrador de paquetes de tu distribución para instalar el NFS cliente en la instancia. Además, es posible que tenga que añadir paquetes de software conforme los necesite.

      Para Amazon Linux HVMAMI, puede encontrar lo último IDs en Amazon Linux AMI. Puede elegir el valor de ID de la AMI IDs tabla de Amazon Linux de la siguiente manera:

      • Elija la región EE. UU. Oeste (Oregón). Este tutorial supone que está creando todos los recursos en la región Oeste de EE. UU. (Oregón) (us-west-2).

      • Elija el tipo de HVM64 bits EBS respaldado (ya que en el CLI comando se especifica el tipo de t2.micro instancia, que no admite el almacén de instancias).

    • ID del grupo de seguridad que creaste para una EC2 instancia.

    • Región de AWS. Este tutorial utiliza la región us-west-2.

    • El ID de VPC subred en el que desea lanzar la instancia. Puede obtener la lista de subredes utilizando el comando describe-subnets.

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

      Después de elegir el ID de subred, anote los siguientes valores del resultado de describe-subnets:

      • ID de subred: necesita este valor a la hora de crear un destino de montaje. En este ejercicio, crearás un destino de montaje en la misma subred en la que lanzas una EC2 instancia.

      • Zona de disponibilidad de la subred: necesitas este valor para crear el DNS nombre del destino de montaje, que utilizarás para montar un sistema de archivos en la EC2 instancia.

  2. Ejecuta el siguiente AWS CLI run-instances comando para lanzar una EC2 instancia.

    $ 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 el ID de instancia devuelto por el comando run-instances.

  4. La EC2 instancia que has creado debe tener un DNS nombre público que puedas usar para conectarte a la EC2 instancia y montar el sistema de archivos en ella. El DNS nombre público tiene el siguiente formato:

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

    Ejecute el siguiente CLI comando y anote el DNS nombre público.

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

    Si no encuentra el DNS nombre público, compruebe la configuración VPC en la que lanzó la EC2 instancia. Para obtener más información, consulte Requisitos previos.

  5. (Opcional) Asigna un nombre a la EC2 instancia que has creado. Para ello, añada una etiqueta con el nombre de clave y el valor establecido en el nombre que desea asignar a la instancia. Para ello, ejecute el siguiente AWS CLI create-tags comando.

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

Paso 2: crear recursos de EFS

En este paso, hará lo siguiente:

  • Cree un sistema de EFS archivos cifrados.

  • Habilitar la administración del ciclo de vida

  • Cree un destino de montaje en la zona de disponibilidad en la que se lanzó la EFS instancia.

Paso 2.1: Cree un sistema EFS de archivos

En este paso, se crea un sistema de EFS archivos. Anote el FileSystemId para utilizarlo posteriormente al crear destinos de montaje para el sistema de archivos en el siguiente paso.

Para crear un sistema de archivos
  • Cree un sistema de archivos con la etiqueta Name opcional.

    1. En la línea de comandos, ejecute el siguiente AWS CLI create-file-system comando.

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

      Obtendrá la siguiente respuesta.

      { "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. Anote el valor FileSystemId. Necesitará este valor cuando cree un destino de montaje para este sistema de archivos en Paso 2.3: Crear un destino de montaje.

Paso 2.2: Habilitar la administración del ciclo de vida

En este paso, habilita la administración del ciclo de vida de su sistema de archivos para utilizar la clase de almacenamiento de acceso EFS poco frecuente (IA). Para obtener más información, consulte Administrar el ciclo de vida del almacenamiento de los sistemas de EFS archivos y Clases de almacenamiento de EFS.

Para habilitar la administración del ciclo de vida
  • En la línea de comandos, ejecute el siguiente AWS CLI put-lifecycle-configuration comando.

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

    Obtendrá la siguiente respuesta.

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

Paso 2.3: Crear un destino de montaje

En este paso, se crea un destino de montaje para el sistema de archivos en la zona de disponibilidad en la que se ha lanzado la EC2 instancia.

  1. Asegúrese de que dispone de la siguiente información:

    • ID del sistema de archivos (por ejemplo, fs-example) para el que se crea el destino de montaje.

    • VPCID de subred en el que lanzaste la EC2 instancia. Paso 1: Crear recursos EC2

      Para este tutorial, debes crear el destino de montaje en la misma subred en la que lanzaste la EC2 instancia, por lo que necesitarás el ID de subred (por ejemplo,). subnet-example

    • ID del grupo de seguridad que ha creado para el destino de montaje en el paso anterior.

  2. En la línea de comandos, ejecuta el siguiente AWS CLI create-mount-target comando.

    $ 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

    Obtendrá la siguiente respuesta.

    { "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. También puede utilizar el comando describe-mount-targets para obtener las descripciones de los destinos de montaje que ha creado en un sistema de archivos.

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

Paso 3: Monta el sistema de archivos en la EC2 instancia y pruébalo

En este paso, hará lo siguiente:

  • Reúna la información necesaria.

  • Instale el NFS cliente en la EC2 instancia.

  • Monta el sistema de archivos en la EC2 instancia y pruébalo.

Paso 3.1: Recopilar información

Asegúrese de que dispone de la siguiente información a medida que siga los pasos de esta sección:

  • DNSNombre público de la EC2 instancia en el siguiente formato:

    ec2-xx-xxx-xxx-xx.aws-region.compute.amazonaws.com
  • DNSnombre de su sistema de archivos. Puede crear este DNS nombre utilizando la siguiente forma genérica:

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

    La EC2 instancia en la que monte el sistema de archivos mediante el destino de montaje puede convertir el DNS nombre del sistema de archivos en la dirección IP del destino de montaje.

nota

Amazon EFS no exige que la EC2 instancia tenga una dirección IP pública ni un DNS nombre público. Los requisitos enumerados anteriormente son solo para este ejemplo explicativo, a fin de garantizar que puede conectarse SSH a la instancia desde fuera de. VPC

Paso 3.2: Instale el NFS cliente en la instancia EC2

Puedes conectarte a la EC2 instancia desde Windows o desde un ordenador con Linux, macOS X o cualquier otra variante de Unix.

Para instalar un cliente NFS
  1. Conecte con la instancia EC2. Para obtener más información, consulta Connect to your EC2 instance en la Guía del EC2 usuario de Amazon.

  2. Ejecuta los siguientes comandos en la EC2 instancia mediante la SSH sesión:

    1. (Opcional) Obtener actualizaciones y reiniciar.

      $ sudo yum -y update $ sudo reboot

      Tras el reinicio, vuelve a conectarte a la EC2 instancia.

    2. Instala el NFS cliente.

      $ sudo yum -y install nfs-utils
      nota

      Si eliges Amazon Linux AMI 2016.03.0 Amazon Linux AMI al lanzar la EC2 instancia, no necesitas instalarlo nfs-utils porque ya está incluido de forma AMI predeterminada.

Paso 3.3: Monta el sistema de archivos en la EC2 instancia y pruébalo

Ahora monta el sistema de archivos en la EC2 instancia.

  1. Crea un directorio (» efs-mount-point «).

    $ mkdir ~/efs-mount-point
  2. Monte el sistema de archivos de 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

    La EC2 instancia puede convertir el DNS nombre del destino del montaje en la dirección IP. Como alternativa, puede especificar la dirección IP del destino de montaje directamente.

    $ 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. Ahora que tiene el sistema de EFS archivos montado en la EC2 instancia, puede crear archivos.

    1. Cambie el directorio.

      $ cd ~/efs-mount-point
    2. Enumera el contenido del directorio.

      $ ls -al

      Debe estar vacío.

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

    3. El directorio raíz de un sistema de archivos, en el momento de su creación, es propiedad del usuario raíz que es quien puede escribir en el mismo, por lo que es necesario cambiar los permisos para añadir archivos.

      $ sudo chmod go+rw .

      Ahora, si prueba el comando ls -al verá que los permisos se han modificado.

      drwxrwxrwx 2 root root 4096 Dec 29 22:33 . drwx------ 4 ec2-user ec2-user 4096 Dec 29 22:54 ..
    4. Cree un archivo de texto .

      $ touch test-file.txt
    5. Genere un listado del contenido del directorio.

      $ ls -l

Ahora ha creado y montado correctamente un sistema de EFS archivos en su EC2 instanciaVPC.

El sistema de archivos que ha montado no persistirá una vez que se reinicie. Para volver a montar automáticamente el directorio, puede utilizar el archivo fstab. Si utiliza un grupo de Auto Scaling para lanzar EC2 instancias, también puede configurar scripts en una configuración de lanzamiento.

Paso 4: Limpiar

Si ya no necesita los recursos que ha creado, debe eliminarlos. Puede hacerlo con elCLI.

  • Elimine EC2 los recursos (la EC2 instancia y los dos grupos de seguridad). Amazon EFS elimina la interfaz de red al eliminar el destino de montaje.

  • Elimine EFS los recursos (sistema de archivos, destino de montaje).

Para eliminar AWS los recursos creados en este tutorial
  1. Termine la EC2 instancia que creó para este tutorial.

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

    También puede eliminar EC2 recursos mediante la consola. Para obtener instrucciones, consulte Terminar una instancia.

  2. Eliminar el destino de montaje.

    Debe eliminar los destinos de montaje creados para el sistema de archivos antes de eliminar el sistema de archivos. Puede obtener una lista de los objetivos de montaje mediante el describe-mount-targets CLI comando.

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

    A continuación, elimine el objetivo de montaje mediante el delete-mount-target CLI comando.

    $ aws efs delete-mount-target \ --mount-target-id ID-of-mount-target-to-delete \ --profile adminuser \ --region aws-region
  3. (Opcional) Elimine los dos grupos de seguridad que ha creado. No hay que pagar para crear grupos de seguridad.

    Primero debes eliminar el grupo de seguridad del destino de montaje antes de eliminar el grupo de seguridad de la EC2 instancia. El grupo de seguridad del objetivo de montaje tiene una regla que hace referencia al grupo EC2 de seguridad. Por lo tanto, no puede eliminar primero el grupo de seguridad de la EC2 instancia.

    Para obtener instrucciones, consulta Eliminar tu grupo de seguridad en la Guía del EC2 usuario de Amazon.

  4. Elimine el sistema de archivos mediante el delete-file-system CLI comando. Puede obtener una lista de sus sistemas de archivos mediante el describe-file-systems CLI comando. Puede obtener el ID del sistema de archivos de la respuesta.

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

    Elimine el sistema de archivos proporcionando el ID de sistema de archivos.

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