¿Qué es Amazon S3? - Amazon Simple Storage Service

¿Qué es Amazon S3?

Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento para Internet. Está diseñado para facilitar la informática de escalado web.

Amazon S3 tiene una interfaz de servicios web simple que puede utilizar para almacenar y recuperar cualquier cantidad de datos, en cualquier momento y desde cualquier parte de la web. Ofrece a cualquier desarrollador acceso a la misma infraestructura de almacenamiento de datos económica, altamente escalable, confiable y rápida que utiliza Amazon para mantener su propia red global de sitios web. Este servicio tiene como fin maximizar los beneficios del escalado y trasladarlos a los desarrolladores.

En esta introducción a Amazon Simple Storage Service (Amazon S3), se ofrece un resumen detallado de este servicio web. Después de leer esta sección, tendrá una idea más clara sobre lo que ofrece y cómo adaptarlo a su compañía.

En esta guía se describe cómo enviar solicitudes para crear buckets, almacenar y recuperar sus objetos, y administrar permisos en sus recursos. En esta guía también se describe el control de acceso y el proceso de autenticación. El control de acceso define quién puede acceder a los objetos y los buckets en Amazon S3, y el tipo de acceso (por ejemplo, READ y WRITE). El proceso de autenticación verifica la identidad de un usuario que intenta acceder a Amazon Web Services (AWS).

¿Cómo...?

Información Secciones pertinentes

Información general de productos y precios

Amazon S3

¿Cómo se trabaja con buckets?

Descripción general de los buckets

¿Cómo trabajo con puntos de acceso? Administración del acceso a datos con puntos de acceso de Amazon S3

¿Cómo se trabaja con objetos?

Información general de los objetos de Amazon S3

¿Cómo se hacen solicitudes?

Realizar solicitudes

¿Cómo se administra el acceso a los recursos?

Identity and Access Management en Amazon S3

Ventajas de utilizar Amazon S3

Amazon S3 se ha desarrollado de forma deliberada con un conjunto mínimo de características que se centran en la simplicidad y robustez. A continuación se describen algunas ventajas de utilizar Amazon S3:

  • Creación de buckets: cree y nombre un bucket que almacena datos. Los buckets son los contenedores fundamentales en Amazon S3 para el almacenamiento de datos.

  • Almacenamiento de datos en buckets: almacene una cantidad ilimitada de datos en un bucket. Cargue la cantidad de objetos que desee en un bucket de Amazon S3. Cada objeto puede contener hasta 5 TB de datos. Cada objeto se almacena y recupera con una clave única asignada por el desarrollador.

  • Descarga de datos: descargue sus datos o permita que otros lo hagan. Descargue los datos en cualquier momento o permita que otros hagan lo mismo.

  • Permisos: conceda o deniegue acceso a otras personas que desean cargar o descargar datos en su bucket de Amazon S3. Conceda permisos para cargar y descargar a tres tipos de usuarios. Los mecanismos de autenticación pueden ayudar a proteger los datos del acceso no autorizado.

  • Interfaces estándar: utilice las interfaces REST y SOAP basadas en estándares diseñadas para trabajar con cualquier conjunto de herramientas de desarrollo de Internet.

    nota

    La compatibilidad con SOAP por HTTP está obsoleta, pero aún se encuentra disponible con HTTPS. Las nuevas características de Amazon S3 no serán compatibles con SOAP. Le recomendamos que utilice la API de REST o los SDK de AWS.

Conceptos de Amazon S3

En esta sección, se describen conceptos y terminología clave que debe comprender para utilizar Amazon S3 de manera eficiente. Estos se presentan en el orden en que probablemente los encuentre.

Buckets

Un bucket es un contenedor para objetos almacenados en Amazon S3. Cada objeto está almacenado en un bucket. Por ejemplo, si el objeto denominado photos/puppy.jpg se almacena en el bucket awsexamplebucket1 en la región EE. UU. Oeste (Oregón), es direccionable mediante la URL https://awsexamplebucket1.s3.us-west-2.amazonaws.com/photos/puppy.jpg.

Los buckets sirven a diversos fines:

  • Organizan el espacio de nombres de Amazon S3 al más alto nivel.

  • Identifican la cuenta responsable para los cargos de almacenamiento y transferencia de datos.

  • Juegan un papel en control de acceso.

  • Sirven como la unidad de agregación para informes de uso.

Puede configurar los buckets para que se creen en una Región de AWS específica. Para obtener más información, consulte Acceso bucket. También puede configurar un bucket de manera que cada vez que se le añada un objeto, Amazon S3 genere un ID de versión único y se lo asigne al objeto. Para obtener más información, consulte Uso del control de versiones.

Para obtener más información acerca de los buckets, consulte Descripción general de los buckets.

Objects

Los objetos son las entidades fundamentales almacenadas en Amazon S3. Los objetos se componen de datos de objetos y metadatos. La parte de datos es opaca para Amazon S3. Los metadatos son conjuntos de pares nombre-​valor que describen el objeto. Incluyen algunos metadatos predeterminados, como la fecha de la última modificación y los metadatos HTTP estándar, como Content-Type. También puede especificar metadatos personalizados en el momento en que se almacena el objeto.

Un objeto se identifica de forma exclusiva dentro de un bucket con una clave (nombre) y un ID de versión. Para obtener más información, consulte Claves y Uso del control de versiones.

Keys

Una clave es el identificador único de un objeto dentro de un bucket. Cada objeto de un bucket tiene exactamente una clave. La combinación de un bucket, clave e ID de versión identifican de forma única cada objeto. Por tanto, puede pensar en Amazon S3 como una asignación de datos básica entre "bucket + clave + versión" y el objeto en sí. Se puede acceder a cada objeto de Amazon S3 de forma exclusiva a través de la combinación de punto de enlace de servicio web, nombre del bucket, clave, y de forma opcional, una versión. Por ejemplo, en la URL https://doc.s3.amazonaws.com/2006-03-01/AmazonS3.wsdl, "doc" es el nombre del bucket y "2006-03-01/AmazonS3.wsdl" es la clave.

Para obtener más información sobre las claves de objetos, consulte Creación de nombres de clave de objeto.

Regions

Puede elegir la Región de AWS geográfica donde Amazon S3 almacenará los buckets que usted cree. Puede elegir una región para optimizar la latencia, minimizar los costos o cumplir con requisitos legales. Los objetos almacenados en una región nunca la abandonan, a menos que se transfieran expresamente a otra región. Por ejemplo, los objetos almacenados en la región UE (Irlanda) nunca salen de ella.

nota

Solo puede tener acceso a Amazon S3 y sus características en las Regiones de AWS que estén habilitadas para su cuenta.

Para ver una lista de las regiones y los puntos de enlace de Amazon S3, consulte Regiones y puntos de enlace en la Referencia general de AWS.

Modelo de consistencia de datos de Amazon S3

Amazon S3 proporciona una sólida coherencia de lectura tras escritura para las operaciones PUT y DELETE de objetos del bucket de Amazon S3 en todas las Regiones de AWS . Esto se aplica tanto a las escrituras en objetos nuevos como a las solicitudes PUT que sobrescriben objetos existentes y las solicitudes DELETE. Además, las operaciones de lectura en Amazon S3 Select, las listas de control de acceso de Amazon S3, las etiquetas de objeto de Amazon S3 y los metadatos de objetos (p. ej., el objeto HEAD) son muy consistentes.

Las actualizaciones en una sola clave son atómicas. Por ejemplo, si aplica PUT a una clave existente de un hilo y realiza una operación GET en la misma clave desde un segundo hilo simultáneamente, obtendrá los datos antiguos o los datos nuevos, pero nunca datos parciales o dañados.

Amazon S3 consigue una alta disponibilidad mediante la reproducción de los datos de varios servidores ubicados en los centros de datos de AWS. Si una solicitud PUT se realiza correctamente, sus datos se almacenan de forma segura. Cualquier lectura (GET o LIST) que se inicie después de recibir una respuesta PUT exitosa devolverá los datos escritos por PUT. A continuación se muestran algunos ejemplos de este comportamiento:

  • Un proceso escribe un nuevo objeto en Amazon S3 y enumera inmediatamente claves dentro del bucket. El nuevo objeto aparecerá en la lista.

  • Un proceso reemplaza un objeto existente e inmediatamente intenta leerlo. Amazon S3 devolverá los datos nuevos.

  • Un proceso elimina un objeto existente e inmediatamente intenta leerlo. Amazon S3 no devolverá ningún dato ya que el objeto se ha eliminado.

  • Un proceso elimina un objeto existente y enumera inmediatamente claves dentro del bucket. El objeto no aparecerá en la lista.

nota
  • Amazon S3 no admite el bloqueo de objetos para escritores simultáneos. Si se realizan dos solicitudes PUT simultáneamente a la misma clave, prevalece la solicitud con la marca temporal más reciente. Si esto es un problema, deberá crear un mecanismo de bloque de objeto en su aplicación.

  • Las actualizaciones se basan en claves. No se pueden realizar actualizaciones atómicas en las claves. Por ejemplo, no puede realizar la actualización de una clave que depende de la actualización de otra clave, a menos que diseñe esta funcionalidad en su aplicación.

Las configuraciones del bucket tienen un modelo de consistencia final. En concreto:

  • Si elimina un bucket e inmediatamente muestra todos los buckets, es posible que el bucket eliminado aún aparezca en la lista.

  • Si habilita el control de versiones en un bucket por primera vez, es posible que el cambio se propague por completo en un instante. Para emitir operaciones de escritura (PUT o DELETE) en los objetos del bucket, se recomienda que espere 15 minutos después de habilitar el control de versiones.

Aplicaciones simultáneas

En esta sección se proporcionan ejemplos del comportamiento que se espera de Amazon S3 cuando varios clientes escriben en los mismos elementos.

En este ejemplo, tanto W1 (escritura 1) como W2 (escritura 2) se completan antes del inicio de R1 (lectura 1) y R2 (lectura 2). Debido a que S3 es altamente consistente, tanto R1 como R2 devuelven color = ruby.

En el siguiente ejemplo, W2 no se completa antes del inicio de R1. Por lo tanto, R1 podría devolver color = ruby o color = garnet. Sin embargo, dado que W1 y W2 finalizan antes del inicio de R2, R2 devuelve color = garnet.

En el último ejemplo, W2 se inicia antes de que W1 haya recibido una confirmación. Por lo tanto, estas escrituras se consideran simultáneas. Amazon S3 utiliza internamente la semántica “last-writer-wins” (el último en escribir gana) para determinar qué escritura tiene prioridad. Sin embargo, el orden en el que Amazon S3 recibe las solicitudes y el orden en el que las aplicaciones envían las confirmaciones no se puede predecir debido a factores como la latencia de la red. Por ejemplo, W2 puede ser iniciado por una instancia de Amazon EC2 en la misma región, mientras que W1 podría ser iniciado por un host que está más lejos. La mejor manera de determinar el valor final es realizar una lectura después de que se ha recibido la confirmación de ambas escrituras.

Características de Amazon S3

En esta sección se describen las características importantes de Amazon S3.

Clases de almacenamiento

Amazon S3 ofrece varios tipos de almacenamiento diseñados para distintos casos de uso. Incluyen Amazon S3 STANDARD para almacenamiento general de los datos a los que se accede frecuentemente, Amazon S3 STANDARD_IA para datos de duración prolongada a los que se obtiene acceso con menos frecuencia y S3 Glacier para un archivado a largo plazo.

Para obtener más información, consulte Uso de las clases de almacenamiento de Amazon S3.

Políticas de buckets

Las políticas de buckets proporcionan control de acceso centralizado a los buckets y a los objetos en función de una variedad de condiciones, como las operaciones de Amazon S3, los solicitantes, los recursos y los aspectos de la solicitud (p. ej., la dirección IP). Las políticas se expresan en nuestro lenguaje de la política de acceso y permiten la administración centralizada de los permisos. Los permisos asociados a un bucket se aplican a todos los objetos del bucket que son propiedad de la cuenta de propietario del bucket.

Tanto las personas como las compañías pueden utilizar las políticas de buckets. Cuando las compañías se registran en Amazon S3, estas crean una cuenta. A partir de entonces, la compañía se convierte en sinónimo de cuenta. Las cuentas son financieramente responsables de los recursos de AWS que ellas (y los empleados) crean. Las cuentas tienen la facultad de conceder permisos de política de buckets y asignar permisos a empleados en función de diversas condiciones. Por ejemplo, una cuenta puede crear una política que le brinde al usuario acceso de escritura:

  • a un bucket de S3 en particular;

  • desde una red corporativa de la cuenta;

  • durante el horario comercial;

Una cuenta puede conceder acceso de lectura y escritura limitado a un usuario, pero también le permite a otra crear y eliminar buckets. Una cuenta podría permitir que varias oficinas de campo almacenen sus informes diarios en un único bucket. Podría permitir a cada oficina escribir solo en un determinado conjunto de nombres (por ejemplo, "Nevada/*" o "Utah/*") y solo desde el rango de direcciones IP de la oficina.

A diferencia de las listas de control de acceso (descritas más adelante), que pueden añadir (conceder) permisos solo a objetos individuales, las políticas pueden añadir o denegar permisos a todos los objetos (o un subconjunto de ellos) de un bucket. Con una solicitud, una cuenta puede configurar permisos para cualquier cantidad de objetos en un bucket. Una cuenta puede utilizar comodines (similar a operadores de expresión normales) en nombres de recursos de Amazon (ARN) y otros valores. A continuación, la cuenta podría controlar el acceso a grupos de objetos que empiezan por un prefijo común o terminan por una expresión dada, como, por ejemplo, .html.

Solo el propietario del bucket puede asociar una política a un bucket. Las políticas (escritas en el lenguaje de la política de acceso) permiten o deniegan solicitudes en función de lo siguiente:

  • Operaciones de buckets de Amazon S3 (como PUT ?acl) y operaciones de objetos (como PUT Object o GET Object).

  • Solicitante

  • Condiciones especificadas en la política

Una cuenta puede controlar el acceso en función de operaciones específicas de Amazon S3, como GetObject, GetObjectVersion, DeleteObject o DeleteBucket.

Las condiciones pueden incluir direcciones IP, rangos de direcciones IP en notación CIDR, fechas, agentes de usuario, origen de referencia y transportes de HTTP (HTTP y HTTPS).

Para obtener más información, consulte Políticas de bucket y de usuario.

AWS Identity and Access Management

Puede usar AWS Identity and Access Management (IAM) para administrar el acceso a sus recursos de Amazon S3.

Por ejemplo, puede usar IAM con Amazon S3 para controlar el tipo de acceso que tiene un usuario o un grupo de usuarios a partes concretas de un bucket de Amazon S3 que es propiedad de su Cuenta de AWS .

Para obtener más información sobre IAM, consulte lo siguiente:

Listas de control de acceso

Puede controlar el acceso a cada uno de sus buckets y objetos con una lista de control de acceso (ACL). Para obtener más información, consulte Información general de las Listas de control de acceso (ACL).

Versioning

Puede usar el control de versiones para conservar diversas variantes de un objeto en el mismo bucket. Para obtener más información, consulte Usar el control de versiones en buckets de S3.

Operations

A continuación, se muestran las operaciones más comunes que ejecutará a través de la API.

Operaciones comunes

  • Crear un bucket: cree y nombre su propio bucket para almacenar sus objetos.

  • Escribir un objeto: cree o sobrescriba un objeto para almacenar datos. Cuando escribe un objeto, debe especificar una clave única en el espacio de nombres de su bucket. Aquí también es cuando debe especificar cualquier control de acceso que desea aplicar en el objeto.

  • Leer un objeto: relea los datos. Puede descargar los datos a través de HTTP.

  • Eliminar un objeto: elimine algunos de sus datos.

  • Enumerar claves: indique las claves incluidas en uno de sus buckets. Puede filtrar la lista de claves en función de un prefijo.

Más adelante en esta guía se describen en detalles estas operaciones y todas las demás funcionalidades.

Interfaces de programación de aplicaciones (API) de Amazon S3

La arquitectura de Amazon S3 está diseñada con un lenguaje de programación neutro y utiliza interfaces admitidas por AWS Support para almacenar y recuperar objetos.

Amazon S3 proporciona una interfaz de REST y una interfaz de SOAP. Estas son similares, pero hay algunas diferencias. Por ejemplo en la interfaz de REST, los metadatos se devuelven en encabezados HTTP. Dado que solo admitimos solicitudes HTTP de hasta 4 KB (sin incluir el cuerpo), la cantidad de metadatos que puede aplicar es limitada.

nota

La compatibilidad con SOAP por HTTP está obsoleta, pero aún se encuentra disponible con HTTPS. Las nuevas características de Amazon S3 no serán compatibles con SOAP. Le recomendamos que utilice la API de REST o los SDK de AWS.

La interfaz de REST

La API de REST es una interfaz HTTP para Amazon S3. Con REST, usted puede utilizar solicitudes HTTP estándar para crear, recuperar y eliminar buckets y objetos.

Puede utilizar cualquier conjunto de herramientas que admita HTTP para utilizar la API de REST. Incluso puede utilizar un navegador para recuperar objetos, siempre y cuando se puedan leer de forma anónima.

La API de REST utiliza códigos de estado y encabezados HTTP estándar, para que los conjuntos de herramientas y los navegadores estándar funcionen según lo previsto. En algunas áreas, hemos añadido una funcionalidad al HTTP (por ejemplo, añadimos encabezados para admitir el control de acceso). En estos casos, hicimos todo lo posible para añadir la nueva funcionalidad de manera que coincida con el estilo del uso de HTTP estándar.

La interfaz de SOAP

nota

La compatibilidad con SOAP por HTTP está obsoleta, pero aún se encuentra disponible con HTTPS. Las nuevas características de Amazon S3 no serán compatibles con SOAP. Le recomendamos que utilice la API de REST o los SDK de AWS.

La API de SOAP brinda una interfaz de SOAP 1.1 con codificación literal de documentos. La manera más común de utilizar SOAP es descargar WSDL (consulte https://doc.s3.amazonaws.com/2006-03-01/AmazonS3.wsdl), utilizar un conjunto de herramientas de SOAP, como Apache Axis o Microsoft .NET, para crear enlaces y luego escribir el código que utiliza los enlaces para llamar a Amazon S3.

Pago de Amazon S3

Los precios de Amazon S3 están diseñados de manera que no tenga que planificar los requisitos de almacenamiento de su aplicación. La mayoría de los proveedores de almacenamiento lo obligan a comprar una capacidad predeterminada de almacenamiento y transferencia de red: si excede esa capacidad, su servicio se cancela o usted debe pagar cargos excesivos. Si no excede esa capacidad, paga como si la hubiera utilizado toda.

Amazon S3 le cobra solo lo que realmente utiliza, sin costes ocultos ni cargos excesivos. Esto ofrece a los desarrolladores un servicio de costo variable que puede crecer junto con sus empresas mientras disfrutan de las ventajas de costos que ofrece la infraestructura de AWS.

Antes de almacenar algo en Amazon S3, debe registrarse en el servicio y proporcionar un método de pago en el que se le facturará al final de cada mes. No existe ningún costo de instalación para comenzar a utilizar este servicio. Al final del mes, se le cobra automáticamente con el método de pago de acuerdo con el uso de ese mes.

Para obtener información acerca del pago del almacenamiento de Amazon S3, consulte Precios de Amazon S3.

Servicios relacionados

Una vez que carga sus datos en Amazon S3, puede utilizarlos con otros servicios de AWS. Los siguientes servicios son los que puede utilizar con más frecuencia:

  • Amazon Elastic Compute Cloud (Amazon EC2) : este servicio proporciona recursos informáticos virtuales en la nube. Para obtener más información, consulte la página de detalles del producto de Amazon EC2.

  • Amazon EMR: este servicio permite a empresas, investigadores, analistas de datos y desarrolladores procesar de forma fácil y rentable grandes volúmenes de datos. Utiliza un marco Hadoop alojado que se ejecuta en la infraestructura basada en la web de Amazon EC2 y Amazon S3. Para obtener más información, consulte la página de detalles del producto de Amazon EMR.

  • AWS Snowball: este servicio acelera la transferencia de grandes cantidades de datos desde y hacia AWS mediante el uso de dispositivos de almacenamiento físicos, sin tener que pasar por Internet. Cada tipo de dispositivo AWS Snowball puede transportar datos a velocidades superiores a las de Internet. Para transportar los datos, estos se envían en los dispositivos a través de un transportista regional. Para obtener más información, consulte la página de detalles del producto de AWS Snowball.