sql >> Base de Datos >  >> RDS >> PostgreSQL

Ejecución de PostgreSQL con Amazon RDS

La computación en la nube ahora es común en la mayoría de las empresas. Permite la disponibilidad bajo demanda de poder de cómputo, base de datos, almacenamiento, aplicaciones y otros recursos a través de Internet.

Las principales ventajas detrás de la nube son que no necesita gastar mucho dinero para comprar servidores potentes o construir sus propios centros de datos. Pero esta no es la única ventaja, cuando necesita escalar no necesita comprar un nuevo servidor, solo puede agregar recursos con unos pocos clics. De manera similar, también podemos disminuir la cantidad de recursos cuando no se necesitan para reducir costos.

Una base de datos en la nube es una base de datos que se ejecuta en un proveedor de la nube. Nos permite almacenar, administrar, recuperar y manipular nuestros datos a través de una plataforma en la nube; accesible a través de Internet.

En este blog, veremos los diferentes tipos de ofertas en la nube y luego nos centraremos en ejecutar una base de datos  PostgreSQL  usando Amazon RDS

Ofertas y opciones de servicios en la nube

Como podemos ver en la imagen de arriba, hay varios tipos diferentes de servicios en la nube según el nivel de acceso necesario.

  • En las instalaciones: Se instala y se ejecuta en computadoras en las instalaciones de la persona u organización que utiliza el sistema. De hecho, este no es un servicio en la nube, pero es útil para ver la diferencia.
  • IaaS: Es un servicio en línea que proporciona API de alto nivel que se utilizan para acceder a varios detalles de bajo nivel de la infraestructura de red subyacente, como recursos informáticos físicos, ubicación, partición de datos, escalado, seguridad, copia de seguridad, etc.
  • PaaS: Proporciona una plataforma que permite a los clientes desarrollar, ejecutar y administrar aplicaciones sin la complejidad de construir y mantener la infraestructura asociada con el desarrollo y lanzamiento de una aplicación.
  • SaaS: Los usuarios acceden a él a través de Internet mediante un cliente (navegador). No requiere ninguna instalación en el lado del cliente.

Si hablamos de PostgreSQL, hay proveedores de nube que ofrecen PostgreSQL en la nube; en diferentes sabores y usando diferentes métodos. Como mencionamos anteriormente, nos vamos a centrar en Amazon RDS.

¿Qué es Amazon RDS (servicio de base de datos relacional)?

Según el sitio web de Amazon, ofrecen más de 165 servicios completos, incluidos más de 40 servicios que no están disponibles en ningún otro lugar. Entonces, AWS es probablemente el proveedor de nube más avanzado del mundo en términos de características y servicios con millones de clientes.

Amazon RDS nos permite crear, administrar y escalar una base de datos relacional en la nube de una manera fácil y rápida, y está disponible en diferentes tipos de bases de datos como Amazon Aurora, PostgreSQL, MySQL y más. AWS proporciona una herramienta llamada AWS Database Migration Service para migrar una base de datos existente a Amazon RDS.

Beneficios de Amazon RDS

  • Fácil de usar: Podemos utilizar la consola de administración de Amazon RDS, la interfaz de línea de comandos de AWS RDS o las llamadas a la API para acceder a la base de datos relacional. No necesitamos aprovisionamiento de infraestructura o instalación y mantenimiento de software de base de datos.
  • Escalable: Podemos escalar los recursos informáticos y de almacenamiento de nuestra base de datos con solo unos pocos clics. Muchos tipos de motores de Amazon RDS nos permiten lanzar una o más réplicas de lectura para descargar el tráfico de lectura de nuestra instancia de base de datos principal.
  • Disponibilidad: Cuando aprovisionamos una instancia de base de datos Multi-AZ, Amazon RDS replica sincrónicamente los datos en una instancia en espera en una zona de disponibilidad (AZ) diferente. Amazon RDS tiene muchas otras características que mejoran la confiabilidad de las bases de datos de producción críticas, incluidas las copias de seguridad automatizadas, las instantáneas de bases de datos y el reemplazo automático de hosts.
  • Rendimiento: Podemos elegir entre dos opciones de almacenamiento respaldadas por SSD:una optimizada para aplicaciones OLTP de alto rendimiento y la otra para un uso general rentable.
  • Seguro: Amazon RDS nos permite ejecutar las instancias de la base de datos en Amazon VPC (Nube privada virtual), lo que nos permite aislar nuestras instancias de la base de datos y conectarnos a nuestra infraestructura de TI existente a través de una VPN. Además, muchos tipos de motores de Amazon RDS ofrecen cifrado en reposo y cifrado en tránsito.

Si bien esto no se menciona oficialmente en el sitio web de AWS, si consideramos DBaaS (Base de datos como servicio) como un servicio de base de datos que se administra e implementa en la infraestructura del proveedor externo (según nuestra lista en la sección anterior) podemos decir que Amazon RDS es una "especie de" DBaaS, en algún lugar entre un servicio PaaS y SaaS.

Una guía de PostgreSQL en Amazon RDS

Primero, debemos iniciar sesión en la consola de AWS. (Si no tiene una cuenta de AWS, puede crear una gratis aquí).

Luego, vaya a Servicios -> Base de datos -> RDS y la sección Crear base de datos.

Ahora, debemos elegir si queremos seguir la creación normal o fácil , el motor y la versión que implementaremos.

Si seleccionamos la creación fácil, solo necesitamos agregar la instancia de la base de datos nombre, usuario y contraseña.

En este caso, elegiremos PostgreSQL 10 y la creación normal para poder ver los detalles de la creación, por lo que requerirá un poco más de trabajo que el sencillo.

En este caso, elegiremos PostgreSQL 10 y la creación normal para poder ver los detalles de la creación, por lo que requerirá un poco más trabajo que el fácil.

En la creación normal, primero, elegiremos una plantilla, podría ser la opción de nivel Producción, Desarrollo/Prueba o Gratuito.

En el siguiente paso, agregaremos el nombre de la instancia de la base de datos, usuario y contraseña.

El siguiente paso es el tamaño de la instancia de la base de datos donde tenemos varias opciones en tres categorías diferentes:clases estándar, clases optimizadas para memoria y clases ampliables.

En la sección de almacenamiento podemos seleccionar el tipo de disco, tamaño y comportamiento de almacenamiento.

Una de las características más importantes de AWS es la implementación Multi-AZ, donde podemos crear una instancia en espera en una zona de disponibilidad diferente para proporcionar redundancia.

Sobre la conectividad, podemos elegir una Virtual Private Cloud (VPC) para conectar la nueva base de datos. Aquí, podemos seleccionar opciones adicionales como acceso público, zona de disponibilidad y puerto de base de datos.

Luego, tenemos una configuración adicional donde podemos especificar el nombre de la base de datos, la base de datos autenticación, detalles de copias de seguridad, encriptación, monitoreo, registro y servicio de mantenimiento (actualizaciones menores automáticas).

Finalmente, tendremos la opción de verificar los costos mensuales estimados.

 

Podemos ver más detalles sobre los costos aquí, o incluso usar AWS Calculadora mensual.

Después de agregar toda esta información, debemos esperar hasta que finalice el proceso de creación.

Cuando el estado cambia a "Disponible", nuestra instancia de base de datos está lista para usar.

Si presionamos sobre el identificador de la BD (“pg1” en nuestro ejemplo), accederemos a nuestra sección de base de datos, donde podremos ver un resumen con información como uso de CPU, conexiones, estado y tipo . Aquí, también podemos modificar la configuración de nuestra instancia o realizar diferentes acciones como reiniciar, eliminar, crear una réplica de lectura, tomar instantáneas y mucho más.

En el mismo lugar, también podemos ver información más detallada en diferentes secciones .

​Conectividad y Seguridad

Podemos configurar las reglas de seguridad y comprobar la información de la red.

Monitoreo

Tenemos algunas métricas para comprobar el estado de nuestra base de datos.

Registros y eventos 

Tenemos alarmas, eventos y registros de nuestra base de datos.

Configuración 

Podemos ver la configuración de nuestra instancia, pero también una lista de recomendaciones para mejorarla, como habilitar el monitoreo mejorado.

Mantenimiento y copias de seguridad 

Podemos ver información sobre las tareas de mantenimiento, las copias de seguridad y el proceso de instantáneas.

Ahora, deberíamos poder acceder a nuestra base de datos usando el nombre del Endpoint asignado por AWS (“pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com ” en nuestro ejemplo). Para esto, asegúrese de permitir el acceso desde la sección del grupo de seguridad y habilitó el acceso público desde la configuración de la instancia (Accesibilidad pública:Sí). En nuestro ejemplo, estamos permitiendo todo el tráfico de todas las fuentes, pero por motivos de seguridad, probablemente querrá limitar el acceso de una o varias fuentes.

Ahora, intentemos conectarnos a nuestra instancia de Amazon RDS desde la línea de comandos :

[[email protected] ~]# psql -U postgres -h pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com

Password for user postgres:

psql (11.5, server 10.6)

SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)

Type "help" for help.



postgres=> \l

                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 rdsadmin  | rdsadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 | rdsadmin=CTc/rdsadmin

 template0 | rdsadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/rdsadmin          +

           |          | |             | | rdsadmin=CTc/rdsadmin

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

(4 rows)



postgres=> select version();

                                                version

--------------------------------------------------------------------------------------------------------

 PostgreSQL 10.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit

(1 row)

De la misma manera, podemos conectarnos a él desde nuestra GUI preferida (si tenemos una).

Una nota sobre Amazon Aurora

Amazon Aurora es una base de datos relacional compatible con MySQL y PostgreSQL creada para la nube. Según el sitio web de AWS, Amazon Aurora es tres veces más rápido que las bases de datos estándar de PostgreSQL y brinda la seguridad, disponibilidad y confiabilidad de las bases de datos comerciales a 1/10 del costo. Independientemente de la afirmación, esta no es una verdadera instancia de PostgreSQL, solo un motor compatible. Pero, si está considerando ejecutar PostgreSQL en Amazon, definitivamente debería considerar esto como una posible alternativa. Puede obtener más información sobre Aurora y cómo se relaciona con PostgreSQL aquí.

Conclusión

La nube está en todas partes. Podemos usarlo tanto para proyectos pequeños como grandes. En este blog, analizamos los diferentes tipos de nubes y compartimos cómo ejecutar PostgreSQL en Amazon RDS. Háganos saber en los comentarios a continuación sus pensamientos.