View a markdown version of this page

Utilizar Amazon S3 con instancias de Amazon EC2 - Amazon Elastic Compute Cloud

Utilizar Amazon S3 con instancias de Amazon EC2

Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes del sector. Puede usar Amazon S3 para almacenar y recuperar cualquier cantidad de datos para varios casos de uso, como lagos de datos, sitios web, copias de seguridad y análisis de macrodatos, desde una instancia de Amazon EC2 o desde cualquier lugar de Internet. Para obtener más información, consulte ¿Qué es Amazon S3?

Existen dos formas de acceder a los datos de Amazon S3 desde las instancias de Amazon EC2 que posee:

  • Acceso a archivos: utilice Amazon S3 Files para montar un bucket de S3 como sistema de archivos de alto rendimiento en la instancia que posee.

  • Acceso a objetos: utilice la API de Amazon S3, AWS CLI, los SDK de AWS o herramientas que, como wget, sirven para copiar objetos de S3 y pegarle otros dentro.

Acceso a archivos con Amazon S3 Files

Amazon S3 Files es un sistema de archivos sin servidor que le permite montar su bucket de uso general de S3 como sistema de archivos de alto rendimiento en la instancia de computación que posee. Con S3 Files, usted puede acceder a sus objetos de S3, como archivos, mediante operaciones estándar del sistema de archivos, como leer y escribir en la ruta de montaje local.

Puede montar un sistema de archivos de S3 en una instancia de EC2 durante el inicio, o bien después del inicio en una instancia en ejecución.

Requisitos previos

Antes de configurar S3 Files con la instancia de EC2 que posee, asegúrese de tener lo siguiente:

  • Un sistema de archivos de S3 y al menos un destino de montaje en el estado disponible. Para obtener información sobre cómo crear un sistema de archivos de S3, consulte Uso de archivos de Amazon S3 en la Guía del usuario de Amazon S3.

  • Una instancia de EC2 de Linux con un perfil de instancia asociado. Si quiere obtener información sobre los permisos necesarios para montar el sistema de archivos, consulte los Roles y políticas de IAM en la Guía del usuario de Amazon S3.

  • Grupos de seguridad que permitan el tráfico NFS (puerto 2049) entre su instancia y los destinos de montaje del sistema de archivos. Para obtener información sobre la configuración necesaria del grupo de seguridad, consulte Grupos de seguridad en la Guía del usuario de Amazon S3.

Para montar un sistema de archivos en una instancia de EC2 durante el inicio mediante la consola de EC2
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. Seleccione Iniciar instancia.

  3. En Network settings (Configuración de red), haga lo siguiente:

    1. Elija Edit (Edición de).

    2. En Subred, seleccione una subred.

    3. 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 el grupo de seguridad predeterminado y añadir una regla para permitir SSH, o bien añadir un nuevo grupo de seguridad que permita SSH. Puede utilizar la siguiente configuración:

      1. Tipo: SSH

      2. Protocolo: TCP

      3. Rango de puerto: 22

      4. Origen: cualquiera 0.0.0.0/0

  4. En Configurar almacenamiento, haga lo siguiente:

    1. En Sistemas de archivos, elija S3 Files.

    2. Elija Agregar sistema de archivos compartidos.

    3. En el sistema de archivos de S3, los sistemas de archivos aparecen en la zona de disponibilidad en función de la subred que seleccionó 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.

    4. Ingrese una ruta de montaje local en la instancia de EC2 donde desee montar el sistema de archivos (por ejemplo, /mnt/s3files).

    5. Se generará un comando para montar el sistema de archivos y agregarlo a fstab. Puede añadir este comando al campo de Datos de usuario en Detalles avanzados. La instancia de EC2 se configurará entonces para montar el sistema de archivos de S3 cuando se inicie y siempre que se reinicie. También puede ejecutar estos comandos en su instancia de EC2 una vez que se haya iniciado.

  5. En Detalles avanzados, adjunte un perfil de instancia a su instancia. El rol de IAM debe tener permisos para montar el sistema de archivos y obtener acceso al bucket de S3. Si quiere obtener más información sobre los permisos necesarios, consulte los Roles y políticas de IAM en la Guía del usuario de Amazon S3.

  6. Seleccione Iniciar instancia.

    Una vez iniciada la instancia, se instalan las utilidades de software necesarias y se monta el sistema de archivos. Si desea ver el sistema de archivos, diríjase a la ruta de montaje local.

Para montar un sistema de archivos en una instancia de EC2 después del inicio
  1. Conéctese a la instancia de EC2 a través de Secure Shell (SSH) o de EC2 Instance Connect en la consola de EC2.

  2. Para montar el sistema de archivos de S3, use la utilidad de ayudante de montaje amazon-efs-utils. Dependiendo de la distribución de Linux que tenga, use uno de los siguientes comandos para instalar el paquete de amazon-efs-utils:

    1. Si utiliza Amazon Linux, ejecute el siguiente comando para instalar efs-utils desde los repositorios de Amazon:

      sudo yum -y install amazon-efs-utils
    2. Si utiliza otras distribuciones de Linux compatibles, ejecute el siguiente comando:

      curl https://amazon-efs-utils.aws.com/efs-utils-installer.sh | sudo sh -s -- --install
    3. Para otras distribuciones de Linux, consulte el repositorio de efs-utils en GitHub.

  3. Cree un directorio para el punto de montaje del sistema de archivos mediante el siguiente comando:

    sudo mkdir {path/to/mount}
  4. Monte el sistema de archivos de S3:

    FS="{YOUR_FILE_SYSTEM_ID}" sudo mount -t s3files $FS:/ {path/to/mount}
  5. Confirme que el sistema de archivos esté montado:

    df -h {path/to/mount}
Para ver los objetos de su bucket de S3 como archivos

Ahora que ha completado los procedimientos anteriores, 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 el siguiente comando:

ls {path/to/mount}

Acceso basado en objetos

Puede copiar archivos de Amazon S3 y pegarle otros dentro, mediante la API de S3, AWS CLI, los SDK de AWS o las herramientas HTTP estándar. Si tiene los permisos necesarios, puede copiar un archivo entre Amazon S3 y su instancia utilizando uno de los métodos siguientes.

wget
nota

Este método solo funciona para objetos públicos. Si el objeto no es público, recibirá un mensaje ERROR 403: Forbidden. Si recibe este error, debe utilizar la consola de Amazon S3, la AWS CLI, la API de AWS, los AWS SDK o AWS Tools for Windows PowerShell, y debe disponer de los permisos necesarios. Para obtener más información, consulte Administración de la identidad y el acceso para Amazon S3 y Descarga de un objeto en la Guía del usuario de Amazon S3.

La utilidad wget es un cliente HTTP y FTP que puede usar para descargar objetos públicos desde Amazon S3. Se instala de forma predeterminada en Amazon Linux y la mayoría de las distribuciones y se puede descargar en Windows. Para descargar un objeto de Amazon S3, utilice el siguiente comando, sustituyendo la URL del objeto que va a descargar.

[ec2-user ~]$ wget https://amzn-s3-demo-bucket.s3.amazonaws.com/path-to-file
PowerShell

Puede utilizar el AWS Tools for Windows PowerShell para mover objetos hacia y desde Amazon S3.

Utilice el cmdlet Copy-S3Object para copiar un objeto de Amazon S3 en su instancia de Windows de la siguiente manera.

Copy-S3Object ` -BucketName amzn-s3-demo-bucket ` -Key path-to-file ` -LocalFile my_copied_file.ext

Como alternativa, puede abrir la consola de Amazon S3 mediante un navegador web en la instancia de Windows.

AWS CLI

Puede utilizar AWS Command Line Interface (AWS CLI) para descargar elementos restringidos de Amazon S3 y para cargar elementos. Para obtener más información sobre cómo instalar y configurar las herramientas, consulte la página de detalles de AWS Command Line Interface.

El comando aws s3 cp es similar al comando cp de Unix. Puede copiar archivos de Amazon S3 en su instancia, copiar archivos de su instancia en Amazon S3 y copiar archivos de una ubicación de Amazon S3 en otra.

Utilice el siguiente comando para copiar un objeto de Amazon S3 a su instancia:

aws s3 cp s3://amzn-s3-demo-bucket/my_folder/my_file.ext my_copied_file.ext

Utilice el siguiente comando para copiar un objeto de su instancia de nuevo en Amazon S3:

aws s3 cp my_copied_file.ext s3://amzn-s3-demo-bucket/my_folder/my_file.ext

El comando aws s3 sync puede sincronizar un bucket de Amazon S3 completo en una ubicación de un directorio local. Esto puede facilitar la descarga de un conjunto de datos y mantener la copia local actualizada con el conjunto remoto. Si posee los permisos adecuados en el bucket de Amazon S3, puede enviar su directorio local a la nube cuando haya terminado invirtiendo las ubicaciones de origen y destino en el comando.

Utilice el comando siguiente para descargar un bucket de Amazon S3 completo en un directorio local de su instancia:

aws s3 sync s3://amzn-s3-demo-source-bucket local_directory
Amazon S3 API

Puede utilizar una API para obtener acceso a los datos en Amazon S3. Puede utilizar esta API en el desarrollo de la aplicación e integrarla con otras API y SDK. Para obtener más información, consulte Ejemplos de código para Amazon S3 con los SDK de AWS en la Referencia de la API de Amazon Simple Storage Service.