Montaje de sistemas de archivos de S3 en Amazon EC2
Para montar los sistemas de archivos de S3 en una instancia de EC2, debe utilizar el ayudante de montaje de archivos de S3. El ayudante de montaje lo ayuda a montar los sistemas de archivos de S3 en las instancias de EC2 que ejecutan las distribuciones compatibles. Al montar un sistema de archivos, el ayudante de montaje define un nuevo tipo de sistema de archivos de red, llamado s3files, que es totalmente compatible con el comando mount estándar en Linux. El ayudante de montaje también permite montar un sistema de archivos de S3 automáticamente en el momento del arranque de la instancia mediante entradas en el archivo de configuración /etc/fstab en las instancias de Linux de EC2. El ayudante de montaje forma parte del conjunto de herramientas de código abierto que se instala cuando instala el cliente de archivos de S3 (amazon-efs-utils).
Requisitos previos para el montaje en instancias de EC2
Tiene un sistema de archivos de S3 con al menos un destino de montaje disponible.
La instancia de EC2 se encuentra en la misma zona de disponibilidad que el destino de montaje que utilizará para montar el sistema de archivos.
Se adjunta un perfil de instancia de IAM a la instancia de EC2 con los permisos necesarios para los archivos de S3. Para obtener más información, consulte Rol de IAM para adjuntar el sistema de archivos a los recursos informáticos de AWS.
Ha configurado los Grupos de seguridad necesarios.
Debe tener instalado el paquete amazon-efs-utils en la instancia de EC2. Para obtener más información, consulte Cliente de archivos de S3.
¿Cómo funciona el ayudante de montaje?
Al ejecutar un comando de montaje, el asistente de montaje realiza las siguientes acciones:
Recupera las credenciales de IAM del perfil de instancia de EC2.
Inicializa el proceso efs-proxy para establecer una conexión cifrada con TLS con el destino de montaje.
Inicializa el proceso de supervisión de amazon-efs-mount-watchdog, que supervisa el estado de los montajes de TLS. Este proceso se inicia automáticamente la primera vez que se monta un sistema de archivos de S3.
Monta el sistema de archivos en el punto de montaje especificado.
El ayudante de montaje usa TLS versión 1.2 para comunicarse con su sistema de archivos. El uso de TLS requiere certificados y estos certificados están firmados por una autoridad de certificación de confianza de Amazon. Para obtener más información acerca de cómo funciona el cifrado, consulte Seguridad para archivos de S3.
El ayudante de montaje utiliza las siguientes opciones de montaje optimizadas para archivos de S3:
| Opción | Valor | Descripción |
|---|---|---|
nfsvers |
4.2 | Versión del protocolo NFS. |
rsize |
1048576 | Establece el número máximo de bytes de datos que el cliente de NFS puede recibir para cada solicitud de red READ hasta 1048576 (1 MB), el más grande disponible, para evitar un rendimiento reducido. |
wsize |
1048576 | Establece el número máximo de bytes de datos que el cliente de NFS puede enviar para cada solicitud de red WRITE hasta 1048576 (1 MB), el más grande disponible, para evitar un rendimiento reducido. |
hard |
— | Establece el comportamiento de recuperación del cliente de NFS después de que se agote el tiempo de espera de una solicitud de NFS, de modo que las solicitudes de NFS se vuelven a intentar indefinidamente hasta que el servidor responda, para garantizar la integridad de los datos. |
timeo |
600 | Establece el valor de tiempo de espera que utiliza el cliente de NFS para esperar una respuesta antes de volver a intentar una solicitud de NFS en 600 décimas de segundo (60 segundos) para evitar un rendimiento reducido. |
retrans |
2 | Establece en 2 el número de veces que el cliente de NFS reintenta una solicitud antes de intentar una acción de recuperación adicional. |
noresvport |
— | Indica al cliente de NFS que utilice un nuevo puerto de origen de TCP sin privilegios cuando se restablece la conexión de red. El uso de noresvport ayuda a garantizar que el sistema de archivos tenga una disponibilidad ininterrumpida tras un evento de reconexión o recuperación de la red. |
Además, el ayudante de montaje utiliza las opciones de montaje tls y iam automáticamente al montar un sistema de archivos de S3, ya que los archivos de S3 requieren estas opciones para establecer una conexión. Esto se debe a que los archivos de S3 siempre montan un sistema de archivos mediante el cifrado de TLS y la autenticación de IAM, y no se pueden desactivar.
¿Cómo se monta el sistema de archivos de S3 en una instancia de EC2?
-
Conéctese a la instancia de EC2 a través de Secure Shell (SSH) o Conexión de instancia de EC2 en la consola de EC2. Para obtener más información, consulte Conectar con la instancia de EC2.
-
Cree un directorio
/mnt/s3filesque utilizará como punto de montaje del sistema de archivos mediante el siguiente comando:sudo mkdir /mnt/s3files -
Monte el sistema de archivos de S3:
FS="{YOUR_FILE_SYSTEM_ID}" sudo mount -t s3files $FS:/ /mnt/s3files -
Confirme que el sistema de archivos esté montado.
df -h /mnt/s3filesVerá una respuesta parecida a la siguiente:
Filesystem Size Used Avail Use% Mounted on{s3files-dns}8.0E 129M 8.0E 1%{path/to/mount}También puede verificar el montaje del sistema de archivos e inspeccionar las opciones de montaje mostrando el contenido del punto de montaje local. Si el montaje se realiza correctamente, este comando muestra los detalles del montaje, incluidas las opciones de montaje, para el directorio específico.
findmnt -T /mnt/s3files
Para obtener información detallada sobre los comandos de montaje, visite la documentación de GitHub
Ahora puede leer y escribir objetos de S3 como archivos en la ruta de montaje local mediante las operaciones del sistema de archivos estándar. Si tiene objetos en el bucket de S3, puede verlos como archivos mediante los siguientes comandos.
ls /mnt/s3files
Puede supervisar el almacenamiento, el rendimiento, las conexiones de los clientes y los errores de sincronización del sistema de archivos mediante métricas de CloudWatch.
Cómo se monta el sistema de archivos de S3 en una instancia de EC2 con puntos de acceso
Al montar un sistema de archivos mediante un punto de acceso, el comando de montaje incluye la opción de montaje access-point-id.
sudo mount -t s3files -o accesspoint=access-point-idfile-system-id/mnt/s3files
donde:
access-point-ides el ID del punto de acceso.file-system-ides el ID del sistema de archivos de S3.
Montaje automático de sistemas de archivos de S3 cuando se inicia la instancia de EC2
Puede configurar la instancia de EC2 para que monte automáticamente un sistema de archivos de S3 cuando la instancia se inicie o se reinicie mediante la actualización del archivo /etc/fstab. El archivo /etc/fstab contiene información sobre los sistemas de archivos y el sistema operativo lo utiliza para determinar qué sistemas de archivos se deben montar en el momento del arranque.
aviso
Use la opción _netdev, empleada para identificar los sistemas de archivos de red, cuando monte su sistema de archivos automáticamente. Si falta _netdev, la instancia EC2 puede dejar de responder. Este resultado se debe a que los sistemas de archivos de red se deben inicializar después de que la instancia de procesamiento inicia sus redes. Para obtener más información, consulte Se produce un error de montaje automático y la instancia no responde.
Puede usar el ayudante de montaje para configurar una instancia de Amazon EC2 para montar automáticamente un sistema de archivos de S3 cuando se inicie la instancia:
actualice el archivo
/etc/fstabde EC2 con una entrada para el sistema de archivos de S3.Asocie un sistema de archivos de S3 al crear una nueva instancia de EC2 con el asistente de inicialización de instancias de EC2.
Actualización del archivo /etc/fstab
Realice los siguientes pasos para actualizar /etc/fstab en una instancia de Linux de EC2 para que la instancia utilice el ayudante de montaje para volver a montar automáticamente un sistema de archivos de S3 cuando la instancia se reinicie.
-
Abra el archivo
/etc/fstaben un editor y agregue la siguiente línea al archivo:file-system-id:/mount-directorys3files _netdev 0 0Donde:
file-system-ides el ID del sistema de archivos de S3 (por ejemplo,fs-0123456789abcdef0).mount-directoryes el directorio de puntos de montaje de la instancia de EC2 (por ejemplo,/mnt/s3files)._netdevespecifica que el sistema de archivos es un sistema de archivos de red, lo que garantiza que la instancia espere a que esté disponible la red antes de intentar el montaje.
Guarde el archivo y cierre el editor.
-
Pruebe la entrada fstab montando todos los sistemas de archivos en fstab:
sudo mount -a -
Verifique que el sistema de archivos esté montado:
findmnt -Tmount-directory
mediante la opción nofail
Recomendamos agregar la opción nofail a la entrada fstab en entornos de producción. Esta opción permite que la instancia arranque incluso si el sistema de archivos produce un error al montarse:
file-system-id:/mount-directorys3files _netdev,nofail 0 0
montaje automático con un punto de acceso
Para montarlo automáticamente mediante un punto de acceso de archivos de S3, incluya la opción accesspoint:
file-system-id:/mount-directorys3files _netdev,accesspoint=access-point-id0 0
montaje automático con un subdirectorio
Para montar automáticamente un subdirectorio específico del sistema de archivos, especifique la ruta:
file-system-id:/path/to/directorymount-directorys3files _netdev 0 0
Uso del asistente de inicialización de instancias de EC2
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. Elija Iniciar instancia.
Siga esta documentación para lanzar una instancia de EC2 mediante el asistente de inicialización de instancias de la consola de AWS. Antes de elegir Lanzar instancia, configure la red y agregue el sistema de archivos de S3, tal y como se muestra en los pasos siguientes.
Asegúrese de seleccionar una subred en la configuración de red.
-
Elija el grupo de seguridad predeterminado para asegurarse de que la instancia de EC2 puede acceder al sistema de archivos de S3. No puede obtener acceso a la instancia EC2 mediante Secure Shell (SSH) con este grupo de seguridad. Para el acceso mediante SSH, puede editar más adelante la seguridad predeterminada y añadir una regla para permitir SSH o un nuevo grupo de seguridad que permita SSH. Puede utilizar la siguiente configuración:
Tipo: SSH
Protocol: TCP
Rango de puerto: 22
Origen: cualquiera 0.0.0.0/0
En la sección Almacenamiento, haga clic en Sistemas de archivos y elija Archivos de S3.
En el menú desplegable del sistema de archivos, verá los sistemas de archivos en la zona de disponibilidad en función de la subred que seleccionó anteriormente en la configuración de red. Elija el sistema de archivos de S3 que desea montar. Si no dispone de ningún sistema de archivos, elija Crear un nuevo sistema de archivos para crear uno nuevo.
Ingrese una ruta de montaje local en la instancia de EC2 donde desee montar el sistema de archivos (por ejemplo,
/mnt/s3files).Se generará un comando para montar el sistema de archivos y agregarlo a fstab. Tiene la opción de elegir agregar el comando a los datos de usuario o ejecutarlo manualmente en la instancia de EC2 después de lanzarlo. La instancia de EC2 se configurará entonces para montar el sistema de archivos de S3 cuando se lance y siempre que se reinicie.
Elija Iniciar instancia.
Montaje de sistemas de archivos de S3 desde otra VPC
Cuando utiliza una conexión de emparejamiento de VPC o una puerta de enlace de tránsito para conectar las VPC, las instancias de Amazon EC2 que están en una VPC pueden acceder a los sistemas de archivos de S3 en otra VPC.
Una puerta de enlace de tránsito es un hub de tránsito de red que puede utilizar para interconectar sus VPC y redes en las instalaciones. Para obtener más información acerca del uso de gateways de tránsito de VPC, consulte Introducción a gateways de tránsito en la Guía de gateways de tránsito de Amazon VPC. Una conexión de emparejamiento de VPC es una conexión de red entre dos instancias de VPC. Este tipo de conexión permite enrutar el tráfico entre ellas mediante direcciones de protocolo de Internet versión 4 (IPv4) o de protocolo de Internet versión 6 (IPv6) privadas. Puede utilizar la conexión de emparejamiento de las VPC para conectar las VPC que se encuentren dentro de la misma región de AWS o entre regiones de AWS. Para obtener más información sobre la conexión de emparejamiento de las VPC, consulte ¿Qué es una conexión de emparejamiento de VPC? en la Guía del usuario de Amazon VPC.
Al montar un sistema de archivos desde una VPC diferente, debe resolver el destino de montaje manualmente. Debe utilizar la dirección IP de los destinos de montaje en la zona de disponibilidad correspondiente de la siguiente manera y sustituir los valores mount-target-ip-address, file-system-id y mount-directory por sus valores.
sudo mount -t s3files -o mounttargetip=mount-target-ip-addressfile-system-idmount-directory
Para garantizar una alta disponibilidad del sistema de archivos, recomendamos utilizar siempre una dirección IP del destino de montaje que esté en la misma zona de disponibilidad que el cliente de NFS.
También puede usar Amazon Route 53 como su servicio de DNS. En Route 53, puede resolver las direcciones IP del destino de montaje desde otra VPC mediante la creación de una zona alojada privada y un conjunto de registros de recursos. Para obtener más información acerca de cómo hacerlo, consulte Uso de zonas alojadas privadas en la Guía para desarrolladores de Amazon Route 53.
Para obtener más información sobre el montaje desde otra VPC, visite GitHub ReadMe
Montaje de sistemas de archivos de S3 desde una región de AWS diferente
Si va a montar el sistema de archivos de S3 desde otra VPC que se encuentra en una región de AWS diferente a la del sistema de archivos, tendrá que editar el archivo s3files-utils.conf. En /etc/amazon/efs/s3files-utils.conf, busque la siguiente línea:
#region = us-east-1
Elimine los comentarios de la línea y sustituya el valor por el ID de la región en la que se encuentra el sistema de archivos, si no está en us-east-1.
Luego, debe especificar la IP de destino del montaje en el comando mount después de cambiar la región en la configuración:
sudo mount -t s3files -o mounttargetip=mount-target-ip-addressfile-system-idmount-directory
Desmontaje del sistema de archivos de S3
Para desmontar un sistema de archivos de S3 conectado a una instancia de EC2 que ejecuta Linux, utilice el comando umount de la siguiente manera:
umountmount-directory
Le recomendamos que no especifique las demás opciones umount. Evite la configuración de otras opciones umount que sean diferentes de los valores predeterminados. Puede comprobar que el sistema de archivos de S3 se ha desmontado mediante la ejecución del comando findmnt. Si el desmontaje se realizó correctamente, el comando findmnt del directorio de montaje no generará ningún resultado.