Conexión a una instancia de base de datos desde un Linux ECS
Puede conectarse a su instancia de base de datos mediante un ECS de Linux instalado con un cliente PostgreSQL a través de una red privada.
Puede utilizar el cliente de PostgreSQL psql para conectarse a su instancia de base de datos a través de una conexión Secure Sockets Layer (SSL). SSL cifra las conexiones a su instancia de base de datos, lo que hace que los datos en tránsito sean más seguros.
SSL está habilitado de forma predeterminada cuando se crea una instancia de base de datos de RDS for PostgreSQL y no se puede deshabilitar después de crear la instancia.
Habilitación de SSL reduce el rendimiento de solo lectura y lectura/escritura de su instancia en aproximadamente un 20%.
Paso 1: Comprar un ECS
- Iniciar sesión en la consola de gestión y comprobar si hay un ECS disponible.
Figura 1 ECS
- Compre un ECS y seleccione Linux (por ejemplo, CentOS) como su sistema operativo.
Para descargar un cliente PostgreSQL al ECS, enlace una EIP al ECS. El ECS debe estar en la misma región, VPC y grupo de seguridad que la instancia de base de datos de RDS for PostgreSQL para comunicaciones mutuas.
Para obtener más información sobre cómo comprar un ECS de Linux, consulte "Compra de un ECS" en Pasos iniciales de Elastic Cloud Server.
- En la página ECS Information, vea la región y la VPC del ECS.
Figura 2 Información de ECS
- En la página Basic Information de la instancia de RDS for PostgreSQL, vea la región y la VPC de la instancia de base de datos.
Figura 3 Información de instancia de base de datos
- Compruebe si la instancia del ECS y RDS for PostgreSQL están en la misma región y VPC.
- En caso afirmativo, vaya a Paso 2: Pruebe la conectividad e instale un cliente PostgreSQL.
- Si no están en la misma región, compre otra instancia ECS o BD. La instancia ECS y BD en diferentes regiones no pueden comunicarse entre sí. Para reducir la latencia de la red, despliegue su instancia de base de datos en la región más cercana a sus cargas de trabajo.
- Si el ECS y la instancia de base de datos están en las VPC diferentes, cambie la VPC del ECS a la de la instancia de base de datos. Para obtener más información, consulte Cambio de una VPC.
Paso 2: Pruebe la conectividad e instale un cliente PostgreSQL
- Inicie sesión en el ECS. Para obtener más información, consulte Iniciar sesión con VNC en la Guía del usuario de Elastic Cloud Server.
- En la página Instances, haga clic en el nombre de la instancia de base de datos.
- Elija Connectivity & Security en el panel de navegación. En el área Connection Information, obtenga la dirección IP flotante y el puerto de base de datos de la instancia de base de datos.
Figura 4 Información de conexión
- En ECS, compruebe si se pueden conectar la dirección IP flotante y el puerto de base de datos de la instancia de base de datos.
- En caso afirmativo, la conectividad de red es normal.
- Si no, compruebe las reglas del grupo de seguridad.
- Si en el grupo de seguridad del ECS, no hay ninguna regla de salida con Destination establecida en 0.0.0.0/0 y Protocol & Port establecida en All, agregue una regla de salida para la dirección IP y el puerto flotantes de la instancia de base de datos.
Figura 5 Grupo de seguridad de ECS
- Si en el grupo de seguridad de la instancia de base de datos no hay ninguna regla de entrada con Source establecida en 0.0.0.0/0 y Protocol & Port establecida en All, agregue una regla de entrada para la dirección IP privada y el puerto del ECS. Para obtener más información, consulte Configuración de reglas de grupos de seguridad.
Figura 6 Grupo de seguridad de instancia de base de datos
- Si en el grupo de seguridad del ECS, no hay ninguna regla de salida con Destination establecida en 0.0.0.0/0 y Protocol & Port establecida en All, agregue una regla de salida para la dirección IP y el puerto flotantes de la instancia de base de datos.
- Abra la página de client installation.
PostgreSQL proporciona métodos de instalación de cliente para diferentes sistemas operativos en su sitio web oficial.
A continuación se describe cómo instalar un cliente PostgreSQL 12 en CentOS.
- Seleccione una versión del motor de base de datos, el sistema operativo y la arquitectura del sistema operativo y ejecute los siguientes comandos en el ECS para instalar un cliente PostgreSQL:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo yum install -y postgresql12-server
Figura 7 Instalación de un cliente
- Seleccione una versión del motor de base de datos que sea coherente con la de su instancia de RDS for PostgreSQL.
- Seleccione un sistema operativo que sea coherente con el del ECS.
- Seleccione una arquitectura de sistema operativo que sea coherente con la del ECS.
Figura 8 Instalación del paquete RPM
Figura 9 Cliente instalado
Paso 3: Conectarse a la instancia de base de datos mediante comandos (conexión SSL)
- En la página Instances, haga clic en el nombre de la instancia de base de datos.
- En el panel de navegación, elija Connectivity & Security.
- En el área Connection Information, haga clic en junto al campo SSL para descargar Certificate Download.zip y extraiga el certificado raíz ca.pem y el paquete ca-bundle.pem del paquete.
Figura 10 dscarga de un certificado
- Cargue ca.pem en el ECS.
- Se recomienda TLS v1.2 o posterior. Las versiones anteriores a TLS v1.2 tienen riesgos de seguridad.
- El algoritmo de protocolo recomendado es EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EDH+aRSA+AESGCM:EDH+aDSS+AESGCM:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!SRP:!RC4. El uso de otras opciones tiene riesgos de seguridad.
- ca-bundle.pem contiene tanto el nuevo certificado proporcionado a partir de abril de 2017 como el antiguo certificado.
- Tanto ca.pem como ca-bundle.pem se pueden usar para conexiones SSL porque ca-bundle.pem contiene ca.pem.
- Ejecute el siguiente comando en el ECS para conectarse a la instancia de base de datos:
psql --no-readline -h <host> -p <port> "dbname=<database> user=<user> sslmode=verify-ca sslrootcert=<ca-file-directory>"
Ejemplo:
psql --no-readline -h 192.168.0.7 -p 5432 "dbname=postgres user=root sslmode=verify-ca sslrootcert=/root/ca.pem"
Tabla 1 Descripción de parámetro Parámetro
Descripción
<host>
Dirección IP flotante obtenida en 3.
<port>
Puerto de la base de datos obtenido en 3. El valor predeterminado es 5432.
<database>
Nombre de la base de datos que se va a conectar. El nombre predeterminado de la base de datos es postgres.
<user>
Cuenta de administrador root.
<ca-file-directory>
Directorio del certificado de CA utilizado para la conexión SSL. Este certificado debe almacenarse en el directorio donde se ejecuta el comando.
sslmode
Modo de conexión SSL. Establezca el valor verify-ca para usar una CA para comprobar si el servicio es de confianza.
- Introduzca la contraseña de la cuenta de la base de datos como se le solicite.
Password:
Si se muestra la siguiente información, la conexión se realiza correctamente.SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Operaciones de seguimiento
Después de iniciar sesión en la instancia de base de datos, puede crear o migrar bases de datos.