

# Exportación de datos de una Aurora PostgreSQL de base de datos de clústerde Amazon S3
<a name="postgresql-s3-export"></a>

Puede consultar datos de una instancia de clúster de base de datos de Aurora PostgreSQL y exportarlos directamente a archivos almacenados en un bucket de Amazon S3. Para ello, primero debe instalar la extensión de Aurora PostgreSQL `aws_s3`. Esta extensión le proporciona las funciones que utiliza para exportar los resultados de las consultas a Amazon S3. A continuación, puede averiguar cómo instalar la extensión y cómo exportar datos de Amazon S3. 

Solo se puede exportar desde una instancia de base de datos aprovisionada o de Aurora Serverless v2. Estos pasos no se admiten para Aurora Serverless v1. 

**nota**  
No se ha agregado compatibilidad con la exportación entre cuentas a Amazon S3. 

Todas las versiones disponibles actualmente de Aurora PostgreSQL admiten la exportación de datos a Amazon Simple Storage Service. Para obtener información detallada sobre la versión, consulte las [actualizaciones de Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html) en las *notas de la versión de Aurora PostgreSQL*.

Si no tienes un bucket configurado para la exportación, consulta los siguientes temas: *Guía del usuario de Amazon Simple Storage Service*. 
+ [Configuración de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/setting-up-s3.html)
+ [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)

De forma predeterminada, los datos exportados desde Aurora PostgreSQL a Amazon S3 utilizan cifrado del servidor con Clave administrada de AWS. De forma alternativa, puede utilizar una clave administrada por el cliente que ya haya creado. Si utiliza cifrado de buckets, el bucket de Amazon S3 debe cifrarse con una clave AWS Key Management Service (AWS KMS) (SSE-KMS). En la actualidad, no se admiten buckets cifrados con claves administradas de Amazon S3 (SSE-S3). 

**nota**  
Puede guardar datos de instantáneas de base de datos y de base de datos en Amazon S3 mediante la Consola de administración de AWS, la AWS CLI o la API de Amazon RDS. Para obtener más información, consulte [Exportación de datos de instantánea del clúster de bases de datos a Amazon S3](aurora-export-snapshot.md).

**Topics**
+ [Instalación de la extensión aws\$1s3](#USER_PostgreSQL.S3Export.InstallExtension)
+ [Información general de la exportación de datos a Amazon S3](#postgresql-s3-export-overview)
+ [Especificación de la ruta del archivo de Amazon S3 a exportar](#postgresql-s3-export-file)
+ [Configuración del acceso a un bucket de Amazon S3](postgresql-s3-export-access-bucket.md)
+ [Exportación de datos de consulta mediante la función aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-examples.md)
+ [Referencia de funciones](postgresql-s3-export-functions.md)
+ [Solución de errores de acceso a Amazon S3](postgresql-s3-export-troubleshoot.md)

## Instalación de la extensión aws\$1s3
<a name="USER_PostgreSQL.S3Export.InstallExtension"></a>

Antes de poder usar Amazon Simple Storage Service con su clúster de base de datos de Aurora PostgreSQL, , debe instalar la extensión `aws_s3`. Esta extensión proporciona funciones para exportar datos desde la instancia de escritura de un clúster de base de datos de Aurora PostgreSQL a un bucket de Amazon S3. También proporciona funciones para importar datos desde Amazon S3. Para obtener más información, consulte [Importación de datos de Amazon S3 en un clúster de base de datos Aurora PostgreSQL](USER_PostgreSQL.S3Import.md). La extensión `aws_s3` depende de algunas de las funciones de ayuda en la extensión de `aws_commons`, que se instala automáticamente cuando es necesario. 

**Para instalar la extensión de `aws_s3`**

1. Utilice psql (o pgAdmin) para conectarse a la instancia de escritor del clúster de base de datos de Aurora PostgreSQL como usuario que tiene privilegios de `rds_superuser`. Si mantuvo el nombre predeterminado durante el proceso de configuración, conéctese como `postgres`.

   ```
   psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
   ```

1. Para instalar la extensión, ejecute el siguiente comando: 

   ```
   postgres=> CREATE EXTENSION aws_s3 CASCADE;
   NOTICE: installing required extension "aws_commons"
   CREATE EXTENSION
   ```

1. Para comprobar que la extensión está instalada, puede usar el metacomando psql `\dx`.

   ```
   postgres=> \dx
          List of installed extensions
       Name     | Version |   Schema   |                 Description
   -------------+---------+------------+---------------------------------------------
    aws_commons | 1.2     | public     | Common data types across AWS services
    aws_s3      | 1.1     | public     | AWS S3 extension for importing data from S3
    plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural language
   (3 rows)
   ```

Ya están disponibles las funciones para importar datos de Amazon S3 y para exportar datos a Amazon S3.

### Confirme que su versión de Aurora PostgreSQL admite exportaciones a Amazon S3.
<a name="postgresql-s3-supported"></a>

Puede comprobar que su versión de Aurora PostgreSQL admite la exportación a Amazon S3 mediante el comando `describe-db-engine-versions`. El siguiente ejemplo comprueba si la versión 10.14 se puede exportar a Amazon S3.

```
aws rds describe-db-engine-versions --region us-east-1 \
--engine aurora-postgresql --engine-version 10.14 | grep s3Export
```

Si en la salida se recoge la cadena de texto `"s3Export"`, el motor admite las exportaciones de Amazon S3 . Si no es así, el motor no las admite.

## Información general de la exportación de datos a Amazon S3
<a name="postgresql-s3-export-overview"></a>

Para exportar datos almacenados en una base de datos de Aurora PostgreSQL a un bucket de Amazon S3, utilice el siguiente procedimiento.

**Para exportar Aurora PostgreSQL datos a S3**

1. Identifique la ruta de archivo de Amazon S3 que se va a utilizar para exportar datos. Para obtener más información sobre este proceso, consulte [Especificación de la ruta del archivo de Amazon S3 a exportar](#postgresql-s3-export-file).

1. Conceda permiso para acceder al bucket de Amazon S3.

   Para exportar datos a un archivo de Amazon S3, conceda permiso al clúster de base de datos de Aurora PostgreSQL para obtener acceso al bucket de Amazon S3 que la exportación usará para el almacenamiento. Esto incluye los siguientes pasos:

   1. Cree una política de IAM que proporcione acceso al bucket de Amazon S3 al que se desea exportar.

   1. Cree un rol de IAM.

   1. Asocie la política que ha creado al rol que ha creado.

   1. Agregue este rol de IAM al clúster de base de datos.

   Para obtener más información sobre este proceso, consulte [Configuración del acceso a un bucket de Amazon S3](postgresql-s3-export-access-bucket.md).

1. Identifique una consulta de base de datos para obtener los datos. Exporte los datos de consulta llamando a la función `aws_s3.query_export_to_s3`. 

   Después de completar las tareas de preparación anteriores, utilice la función [aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3) para exportar los resultados de la consulta a Amazon S3. Para obtener más información sobre este proceso, consulte [Exportación de datos de consulta mediante la función aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-examples.md).

## Especificación de la ruta del archivo de Amazon S3 a exportar
<a name="postgresql-s3-export-file"></a>

Especifique la siguiente información para identificar la ubicación de Amazon S3 a la que desea exportar los datos:
+ Nombre de bucket: un *bucket* es un contenedor para objetos o archivos de Amazon S3.

  Para obtener más información sobre cómo almacenar datos con Amazon S3, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) y [Trabajar con objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-downloading-objects.html) en la *Guía del usuario de Amazon Simple Storage Service*. 
+ Ruta del archivo: la ruta del archivo identifica dónde se almacena la exportación en el bucket de Amazon S3. La ruta del archivo consta de lo siguiente:
  + Un prefijo de ruta opcional que identifica una ruta de carpeta virtual.
  + Un prefijo de archivo que identifica uno o varios archivos que se van a almacenar. Las exportaciones más grandes se almacenan en varios archivos, cada uno con un tamaño máximo de aproximadamente 6 GB. Los nombres de archivo adicionales tienen el mismo prefijo de archivo, pero con `_partXX` anexado. `XX` representa 2, luego 3, y así sucesivamente.

  Por ejemplo, una ruta de archivo con una carpeta `exports` y un prefijo de archivo `query-1-export` es `/exports/query-1-export`.
+ Región de AWS (opcional): la región de AWS donde se encuentra el bucket de Amazon S3. Si no especifica un valor de región de AWS, Aurora guarda sus archivos en Amazon S3, en la misma región de AWS que el clúster de base de datos de exportación.
**nota**  
Actualmente, la región de AWS debe ser la misma región que la del clúster de base de datos e de exportación.

  Para ver una lista de los nombres de regiones de AWS y los valores asociados, consulte [Regiones y zonas de disponibilidad](Concepts.RegionsAndAvailabilityZones.md).

Para mantener la información del archivo de Amazon S3 acerca de dónde se va a almacenar la exportación, puede utilizar la función [aws\$1commons.create\$1s3\$1uri](postgresql-s3-export-functions.md#aws_commons.create_s3_uri) para crear una estructura compuesta `aws_commons._s3_uri_1` de la siguiente manera.

```
psql=> SELECT aws_commons.create_s3_uri(
   'amzn-s3-demo-bucket',
   'sample-filepath',
   'us-west-2'
) AS s3_uri_1 \gset
```

Más adelante, proporcione este valor `s3_uri_1` como un parámetro en la llamada a la función [aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3). Para ver ejemplos, consulte [Exportación de datos de consulta mediante la función aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-examples.md).