Creación de un clúster de base de datos de Aurora PostgreSQL y conexión a él - Amazon Aurora

Creación de un clúster de base de datos de Aurora PostgreSQL y conexión a él

En este tutorial, se crea una instancia de EC2 y un clúster de base de datos de Aurora PostgreSQL. El tutorial muestra cómo acceder al clúster de base de datos desde la instancia de EC2 mediante un cliente PostgreSQL estándar. Como práctica recomendada, este tutorial crea un clúster de base de datos privado en una nube privada virtual (VPC). En la mayoría de los casos, otros recursos de la misma VPC, como las instancias de EC2, pueden acceder al clúster de base de datos, pero los recursos ajenos a la VPC no pueden acceder a él.

Tras completar el tutorial, habrá una subred pública y una privada en cada zona de disponibilidad de la VPC. En una zona de disponibilidad, la instancia de EC2 está en la subred pública y la instancia de base de datos está en la subred privada.

importante

La creación de una cuenta de AWS no supone ningún coste. No obstante, al completar este tutorial, puede incurrir en costos de los recursos de AWS que utilice. Puede eliminar estos recursos después de completar el tutorial si ya no son necesarios.

El siguiente diagrama muestra la configuración cuando el tutorial se completa.

Instancia de EC2 y clúster de base de datos de Aurora PostgreSQL.

Este tutorial le permite crear sus recursos mediante uno de los métodos siguientes:

El primer método utiliza Creación sencilla para crear un clúster de base de datos Aurora PostgreSQL privado con la AWS Management Console. Aquí, únicamente debe especificar el tipo de motor de base de datos, el tamaño de instancia de base de datos y el identificador de clúster de base de datos. Easy create (Creación sencilla) utiliza los ajustes predeterminados para otras opciones de configuración.

Cuando usa Creación estándar, se especifican más opciones de configuración al crear un clúster de base de datos. Estas opciones incluyen la configuración de la disponibilidad, la seguridad, las copias de seguridad y el mantenimiento. Para crear un clúster de base de datos público, debe utilizar Creación estándar. Para obtener más información, consulte Creación de un clúster de base de datos de Amazon Aurora.

Requisitos previos

Antes de empezar, complete los pasos de las siguientes secciones:

Paso 1: crear una instancia de EC2

Cree una instancia de Amazon EC2 que utilicará para conectarse a la base de datos.

Para crear una instancia EC2;
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En la esquina superior derecha de la AWS Management Console, elija la Región de AWS en la que desea crear la instancia de EC2.

  3. Elija Panel de EC2 y, a continuación, Lanzar instancia, como se muestra en la siguiente imagen.

    Panel de EC2.

    Se abre la página Lanzar una instancia.

  4. Elija los siguientes ajustes en la página Lanzar una instancia.

    1. En Name and tags (Nombre y etiquetas), en Name (Nombre), introduzca ec2-database-connect.

    2. En Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon), elija Amazon Linux y, a continuación, AMI de Amazon Linux 2023. Mantenga los valores predeterminados para las demás opciones.

      Elija una Amazon Machine Image.
    3. En Instance type (Tipo de instancia), elija t2.micro.

    4. En Key pair (login) [Par de claves (inicio)], elija Key pair name (Nombre de par de claves) para utilizar un par de claves existente. Para crear un nuevo par de claves para la instancia de Amazon EC2, que se muestra a continuación, elija Create new key pair (Crear nuevo par de claves) y, a continuación, utilice la ventana Create key pair (Crear un par de claves).

      Para obtener más información sobre la creación de un nuevo par de claves, consulte Crear un par de claves en la Guía del usuario de Amazon EC2.

    5. En Permitir tráfico de SSH en Configuraciones de red, elija el origen de las conexiones SSH a la instancia de EC2.

      Puede elegir My IP (Mi IP) si la dirección IP que se muestra es correcta para las conexiones SSH. De lo contrario, puede determinar la dirección IP que usará para conectarse a las instancias de EC2 en su VPC mediante Secure Shell (SSH). Para determinar su dirección IP pública, en una ventana o pestaña distinta del navegador, puede utilizar el servicio en https://checkip.amazonaws.com. Un ejemplo de dirección IP es 192.0.2.1/32.

      En muchos casos, puede conectarse a través de un proveedor de servicios de internet (ISP) o protegido por un firewall sin una dirección IP estática. Si es así, asegúrese de identificar el rango de direcciones IP que utilizan los equipos cliente.

      aviso

      Si utiliza 0.0.0.0/0 para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

      La siguiente imagen muestra un ejemplo de la sección Configuraciones de red.

      Configuraciones de red para una instancia de EC2.
    6. No cambie los valores predeterminados del resto de las secciones.

    7. Revise un resumen de la configuración de su instancia de EC2 en el panel Resumen; cuando haya terminado, elija Lanzar instancia.

  5. En la página Launch Status, que se muestra a continuación, anote el identificador de la nueva instancia de EC2, por ejemplo, i-1234567890abcdef0.

    Identificador de instancia de EC2 en la página Estado de lanzamiento.
  6. Elija el identificador de instancia de EC2 para abrir la lista de instancias de EC2 y, a continuación, seleccione su instancia de EC2.

  7. En la pestaña Detalles, anote los siguientes valores, ya que los necesitará cuando se conecte mediante SSH:

    1. En Resumen de la instancia, anote el valor del DNS IPv4 público.

      Nombre de DNS público de EC2 en la pestaña Detalles de la página Instancias.
    2. En Detalles de la instancia, anote el valor de Nombre del par de claves.

      Nombre de par de claves de EC2 en la pestaña Detalles de la página Instancias.
  8. Espere hasta que el Estado de la instancia de su instancia de EC2 tenga el estado En ejecución antes de continuar.

Paso 2: crear un clúster de base de datos de Aurora PostgreSQL

En este ejemplo, utilice la opción Creación sencilla para crear un clúster de base de datos de Aurora PostgreSQL con una clase de instancia de base de datos db.t4g.large.

Para crear un clúster de base de datos de Aurora PostgreSQL con la opción Creación sencilla
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS en la que desea crear el clúster de base de datos.

  3. En el panel de navegación, seleccione Databases (Bases de datos).

  4. Seleccione Crear base de datos y asegúrese de que la opción Creación sencilla esté seleccionada.

    Sección Crear base de datos: opción Creación sencilla seleccionada.
  5. En Configuración, elija Aurora (compatible con PostgreSQL) en Tipo de motor.

  6. En DB instance size (Tamaño de la instancia de base de datos), seleccione Dev/Test (Desarrollo/Prueba).

  7. En Identificador de clúster de bases de datos, introduzca database-test1.

    La página Create database (Crear base de datos) debe ser similar a la siguiente imagen.

    Sección de configuración con opciones seleccionadas.
  8. En Nombre de usuario maestro, introduzca un nombre para el usuario o deje el nombre predeterminado (postgres).

  9. Para utilizar una contraseña maestra generada automáticamente para el clúster de base de datos, seleccione Generación automática de contraseña.

    Para introducir la contraseña maestra, asegúrese de desactivar la casilla Generación automática de contraseña y luego introduzca la misma contraseña en Contraseña maestra y Confirmar contraseña.

  10. Para configurar una conexión con la instancia de EC2 que creó anteriormente, abra Configurar conexión a EC2 - (opcional).

    Seleccione Conectarse a un recurso informático de EC2. Elija la instancia de EC2 que ha creado anteriormente.

    Configure la opción de conexión a EC2.
  11. Abra la opción Ver la configuración predeterminada de la creación sencilla.

    Configuración predeterminada de Easy Create.

    Puede examinar la configuración predeterminada utilizada con Easy create (Creación sencilla). La columna Editable después de crear la base de datos muestra las opciones que puede cambiar después de crear la base de datos.

    • Si una configuración tiene No en esa columna y desea una configuración diferente, puede usar Creación estándar para crear el clúster de base de datos.

    • Si una configuración tiene en esa columna y desea una configuración diferente, puede utilizar Creación estándar para crear el clúster de base de datos o modificar el clúster de base de datos después de crearlo para cambiar la configuración.

  12. Elija Crear base de datos.

    Para consultar la contraseña y el nombre de usuario maestros del clúster de base de datos, seleccione Ver detalles de credenciales.

    Puede utilizar la contraseña y el nombre de usuario que aparecen para conectarse al clúster de base de datos como el usuario maestro.

    importante

    No puede ver la contraseña de usuario maestro de nuevo. Si no la registra, es posible que tenga que cambiarla.

    Si tiene que cambiar la contraseña de usuario maestro después de que el clúster de base de datos esté disponible, puede modificar el clúster de base de datos para ello. Para obtener más información sobre la modificación de un clúster de base de datos, consulte Modificación de un clúster de base de datos de Amazon Aurora.

  13. En la lista Bases de datos, seleccione el nombre del nuevo clúster de base de datos de PostgreSQL para ver sus detalles.

    La instancia de escritor tiene el estado Creando hasta que el clúster de base de datos está listo para usarse.

    Detalles del clúster de base de datos en los que se muestra la región, la AZ y el estado.

    Cuando el estado de la instancia de escritor cambie a Disponible, puede conectarse al clúster de la base de datos. Dependiendo de la clase de instancia de base de datos y de la cantidad de almacenamiento, es posible que el nuevo clúster de base de datos tarde hasta 20 minutos en estar disponible.

(Opcional) Crear una VPC, una instancia EC2 y un clúster de Aurora PostgreSQL mediante AWS CloudFormation

En lugar de utilizar la consola para crear la VPC, la instancia de EC2 y el clúster de base de datos de Aurora PostgreSQL, puede utilizar AWS CloudFormation para aprovisionar recursos de AWS tratando la infraestructura como código. Para ayudarle a organizar sus recursos de AWS en unidades más pequeñas y fáciles de administrar, puede utilizar la funcionalidad de pila anidada de AWS CloudFormation. Para obtener más información, consulte Creación de una pila en la consola AWS CloudFormation y Uso de pilas anidadas.

importante

AWS CloudFormation es gratuito, pero los recursos que CloudFormation crea están activos. Se le facturan las tarifas de uso estándar por estos recursos hasta que los finalice. Los cargos totales serán mínimos. Para obtener información sobre cómo puede minimizar los cargos, consulte Nivel gratuito de AWS.

Para crear sus recursos con la consola AWS CloudFormation, siga estos pasos:

  • Paso 1: Descargar la plantilla de CloudFormation

  • Paso 2: Configurar los recursos mediante CloudFormation

Descargar la plantilla de CloudFormation

Una plantilla de CloudFormation es un archivo de texto con formato JSON o YAML que contiene la información de configuración de los recursos que desea crear en la pila. Esta plantilla también crea una VPC y un host bastión para usted junto con el clúster de Aurora.

Para descargar el archivo de plantilla, abra el enlace Aurora PostgreSQL CloudFormation template.

En la página de Github, haga clic en el botón Descargar archivo sin procesar para guardar el archivo YAML de la plantilla.

Configurar los recursos mediante CloudFormation

nota

Antes de iniciar este proceso, asegúrese de tener un par de claves para una instancia EC2 en su Cuenta de AWS. Para obtener más información, consulte Pares de claves de Amazon EC2 e instancias Linux.

Al utilizar la plantilla de AWS CloudFormation, debe seleccionar los parámetros correctos para asegurarse de que los recursos se crean correctamente. Siga los pasos que se indican a continuación:

  1. Inicie sesión en la AWS Management Console y abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation.

  2. Elija Crear pila.

  3. En la sección Especificar la plantilla, seleccione Cargar un archivo de plantilla desde el ordenador y Siguiente.

  4. En la página Especificar detalles de la pila, introduzca los siguientes parámetros:

    1. Establezca el nombre de la pila en AurPostgreSQLTestStack.

    2. En Parámetros, defina las zonas de disponibilidad seleccionando dos zonas de disponibilidad.

    3. En Configuración de host bastión de Linux, en Nombre de la clave, seleccione un par de claves para iniciar sesión en su instancia de EC2.

    4. En los ajustes de Configuración de host bastión de Linux, ponga el rango de IP permitido en su dirección IP. Para conectarse a las instancias de EC2 de su VPC mediante Secure Shell (SSH), determine su dirección IP pública mediante el servicio en https://checkip.amazonaws.com. Un ejemplo de dirección IP es 192.0.2.1/32.

      aviso

      Si utiliza 0.0.0.0/0 para el acceso SSH, permita que todas las direcciones IP accedan a sus instancias de EC2 públicas mediante SSH. Este método es aceptable para un periodo de tiempo corto en un entorno de prueba, pero no es seguro en entornos de producción. En entornos de producción, solo debe autorizar una dirección IP específica o un intervalo de direcciones para acceder a sus instancias de EC2 mediante SSH.

    5. En Configuración general de la base de datos, defina la clase de instancia de base de datos en db.t4g.large.

    6. Ponga el Nombre de la base de datos en database-test1.

    7. En Nombre de usuario maestro, introduzca un nombre para el usuario maestro.

    8. Ponga Administrar contraseña de usuario maestro de base de datos con Secrets Manager en false para este tutorial.

    9. En Contraseña de base de datos, ponga la contraseña que desee. Recuerde esta contraseña para poder ver los pasos adicionales del tutorial.

    10. Ponga Implementación multi-AZ en false.

    11. Deje el resto de la configuración con los valores predeterminados. Haga clic en Siguiente para continuar.

  5. En la página Configurar opciones de pila, deje todas las opciones predeterminadas. Haga clic en Siguiente para continuar.

  6. En la página Revisar la pila, seleccione Enviar después de comprobar las opciones de base de datos y de host bastión de Linux.

Una vez finalizado el proceso de creación de la pila, visualice las pilas con los nombres BastionStack y APGNS para anotar la información que necesita para conectarse a la base de datos. Para obtener más información, consulte Viewing AWS CloudFormation stack data and resources on the AWS Management Console.

Paso 3: conectarse a un clúster de base de datos de Aurora PostgreSQL

Puede usar cualquier aplicación cliente PostgreSQL estándar para conectarse al clúster de base de datos. En este ejemplo, se conecta a un clúster de base de datos de PostgreSQL mediante el cliente de línea de comandos psql.

Para conectarse al clúster de base de datos de Aurora PostgreSQL
  1. Busque el punto de conexión (nombre de DNS) y el número de puerto de la instancia de escritor de su clúster de base de datos.

    1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

    2. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS del clúster de base de datos.

    3. En el panel de navegación, seleccione Databases (Bases de datos).

    4. Seleccione el nombre del clúster de base de datos de Aurora PostgreSQL para ver sus detalles.

    5. En la pestaña Conectividad y seguridad, copie el punto de conexión de la instancia de escritor. También anote el número de puerto. Necesita el punto de conexión y el número de puerto para conectarse al clúster de base de datos.

      Pestaña Conectividad y seguridad en la que se muestra el nombre del punto de conexión.
  2. Conéctese a la instancia de EC2 que ha creado anteriormente siguiendo los pasos que se indican en Conexión con la instancia de Linux en la Guía del usuario de Amazon EC2.

    Le recomendamos que se conecte a la instancia de EC2 mediante SSH. Si la utilidad de cliente SSH está instalada en Windows, Linux o Mac, puede conectarse a la instancia con el siguiente formato de comando:

    ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name

    Por ejemplo, suponga que ec2-database-connect-key-pair.pem está almacenado en /dir1 en Linux y que el DNS IPv4 público de su instancia de EC2 es ec2-12-345-678-90.compute-1.amazonaws.com. Su comando SSH tendría el siguiente aspecto:

    ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
  3. Obtenga las correcciones de errores y las actualizaciones de seguridad más recientes actualizando el software en su instancia de EC2. Para ello, utilice el siguiente comando.

    nota

    La opción -y instala las actualizaciones sin necesidad de confirmación. Para examinar las actualizaciones antes de la instalación, omita esta opción.

    sudo dnf update -y
  4. Instale el cliente de línea de comandos psql desde PostgreSQL en Amazon Linux 2023 con el siguiente comando:

    sudo dnf install postgresql15
  5. Conéctese al clúster de base de datos de Aurora PostgreSQL. Por ejemplo, introduzca el siguiente comando. Esta acción le permite conectarse al clúster de base de datos de Aurora PostgreSQL mediante el cliente psql.

    Sustituya el punto de conexión de la instancia de escritor por endpoint, sustituya el nombre de la base de datos --dbname a la que quiera conectarse por postgres y sustituya el nombre de usuario maestro que utilizó por postgres. Proporcione la contraseña maestra que utilizó cuando se le solicite una contraseña.

    psql --host=endpoint --port=5432 --dbname=postgres --username=postgres

    Una vez especificada la contraseña del usuario, debería ver un resultado similar al siguiente.

    psql (14.3, server 14.6) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. postgres=>

    Para obtener más información acerca de la conexión a un clúster de base de datos de Aurora PostgreSQL, consulte Conexión a un clúster de base de datos Amazon Aurora PostgreSQL. Si no puede conectarse al clúster de base de datos, consulte No puede conectarse a la instancia de base de datos de Amazon RDS.

    Por motivos de seguridad, se recomienda utilizar conexiones cifradas. Utilice solo una conexión PostgreSQL sin cifrar cuando el cliente y el servidor están en la misma VPC y la red es de confianza. Para obtener información sobre el uso de de conexiones cifradas, consulte Protección de los datos de Aurora PostgreSQL con SSL/TLS.

  6. Ejecutar comandos SQL.

    Por ejemplo, el siguiente comando de SQL muestra la fecha y la hora actuales:

    SELECT CURRENT_TIMESTAMP;

Paso 4: eliminar la instancia de EC2 y el clúster de base de datos

Después de conectarse y explorar la instancia de EC2 de muestra y el clúster de base de datos que creó, elimínelos para que no le sigan cobrando por ellos.

Si ha utilizado AWS CloudFormation para crear recursos, omita este paso y vaya al siguiente.

Para eliminar la instancia de EC2
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Instances (Instancia[s]).

  3. Seleccione la instancia de EC2 y elija Estado de la instancia y Terminar instancia.

  4. Cuando se le indique que confirme, elija Terminar.

Para obtener más información sobre la eliminación de una instancia de EC2, consulte Terminar la instancia en la Guía del usuario de Amazon EC2.

Para eliminar un clúster de base de datos
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. Elija Databases (Bases de datos) y, a continuación, seleccione la instancia de base de datos asociada al clúster de base de datos.

  3. En Actions (Acciones), elija Delete (Eliminar).

  4. Elija Eliminar.

    Después de eliminar todas las instancias de base de datos asociadas al clúster de base de datos, se elimina automáticamente el clúster de base de datos .

(Opcional) Eliminar la instancia de EC2 y el clúster de base de datos creados con CloudFormation

Si ha utilizado AWS CloudFormation para crear recursos, elimine la pila de CloudFormation después de conectarse a la instancia de EC2 y el clúster de base de datos de muestra y de explorarlos; de este modo, ya no se le cobrará por ellos.

Para eliminar los recursos de CloudFormation
  1. Abra la consola de AWS CloudFormation.

  2. En la página Pilas de la consola de CloudFormation, seleccione la pila raíz (la pila sin el nombre VPCStack, BastionStack o APGNS).

  3. Elija Eliminar.

  4. Cuando se le pida confirmación, seleccione Eliminar pila.

Para obtener información sobre cómo eliminar una pila en CloudFormation, consulte Eliminación de una pila en la consola de AWS CloudFormation, en la Guía del usuario de AWS CloudFormation.

(Opcional) Conecte el clúster de base de datos a una función de Lambda

También puede conectar el clúster de base de datos de Aurora PostgreSQL a un recurso de computación sin servidor de Lambda. Las funciones de Lambda permiten ejecutar código sin aprovisionar ni administrar la infraestructura. Una función de Lambda también permite responder automáticamente a las solicitudes de ejecución de código a cualquier escala, desde una docena de eventos al día hasta cientos de eventos por segundo. Para obtener más información, consulte Conexión automática de una función de Lambda y un clúster de base de datos de Aurora.