Creación de un proxy para Amazon Aurora
Puede utilizar Amazon RDS Proxy para mejorar la escalabilidad, la disponibilidad y la seguridad de las aplicaciones de bases de datos agrupando las conexiones y administrando las conmutaciones por error de las bases de datos de forma más eficiente. Este tema le guía por el proceso de creación de un proxy. Antes de empezar, asegúrese de que la base de datos cumpla los requisitos previos necesarios, incluidos los permisos de IAM y la configuración de la VPC.
Puede asociar un proxy con un clúster de base de datos de Aurora MySQL o Aurora PostgreSQL.
Para crear un proxy
-
Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/
. -
En el panel de navegación, seleccione Proxies.
-
Elija Create proxy (Crear proxy).
-
Configure los siguientes ajustes para el proxy.
Opción Descripción Familia de motores El protocolo de red de base de datos reconoce el proxy cuando interpreta el tráfico de red hacia y desde la base de datos. nota
Para usar Aurora PostgreSQL, asegúrese de retener la base de datos de
postgres
en la instancia. Consulte Se ha eliminado la solución de problemas de una base de datos de postgres.Identificador de proxy Un nombre que sea único dentro del ID de cuenta de AWS y de la región de AWS actual. Tiempo de espera de inactividad de conexión de cliente El proxy cierra la conexión de un cliente si permanece inactiva durante un periodo determinado. De forma predeterminada, esto es 1800 segundos (30 minutos). Una conexión se considera inactiva cuando la aplicación no envía una nueva solicitud dentro del plazo especificado después de completar la solicitud anterior. El proxy mantiene abierta la conexión de base de datos subyacente y la devuelve al grupo de conexiones, de modo que esté disponible para nuevas conexiones de clientes.
Para eliminar de forma proactiva las conexiones obsoletas, reduzca el tiempo de espera de conexión de cliente inactivo. Para minimizar los costos de conexión durante los picos de carga de trabajo, aumente el tiempo de espera.
Base de datos Clúster de base de datos de Aurora para acceder a través de este proxy. La lista solo incluye instancias de base de datos y clústeres con motores de base de datos compatibles, versiones de motor y otras configuraciones. Si la lista está vacía, cree una nueva instancia de base de datos o clúster que sea compatible con RDS Proxy. Para ello, siga el procedimiento en Creación de un clúster de base de datos de Amazon Aurora. A continuación, intente volver a crear el proxy. Conexiones máximas de grupo de conexión Un valor entre 1 y 100 para definir el porcentaje del límite de max_connections
que RDS Proxy puede utilizar. Si solo tiene la intención de utilizar un proxy con esta instancia de base de datos o clúster, establezca este valor en 100. Para obtener más información sobre cómo RDS Proxy usa esta configuración, consulte MaxConnectionsPercent.Filtros de fijación de sesión Impide que RDS Proxy fije determinados estados de sesión detectados, lo que evita las medidas de seguridad predeterminadas para las conexiones de multiplexación. Actualmente, PostgreSQL no admite esta configuración y la única opción disponible es
EXCLUDE_VARIABLE_SETS
. Si se habilita, es posible que las variables de sesión de una conexión afecten a otras, lo que puede provocar errores o problemas de corrección si las consultas dependen de variables de sesión establecidas fuera de la transacción actual. Utilice esta opción solo después de confirmar que las aplicaciones pueden compartir conexiones de bases de datos de forma segura.Los siguientes patrones se consideran seguros:
-
Instrucciones
SET
donde no hay ningún cambio en el valor efectivo de la variable de sesión. En otras palabras, no hay ningún cambio en la variable de sesión. -
Cambia el valor de la variable de sesión y ejecuta una instrucción en la misma transacción.
Para obtener más información, consulte Cómo evitar la fijación de RDS Proxy.
Tiempo de espera de préstamo de conexión Si espera que el proxy utilice todas las conexiones de base de datos disponibles, establezca el tiempo de espera antes de que devuelva un error de tiempo de espera. Puede especificar hasta cinco minutos. Esta configuración solo se aplica cuando el proxy ha alcanzado el número máximo de conexiones y todas están en uso. Consulta de inicialización Añada una consulta de inicialización o modifique la actual (opcional). Puede especificar una o más instrucciones de SQL para que el proxy se ejecute al abrir cada nueva conexión de base de datos. Normalmente, el ajuste se utiliza con instrucciones de
SET
para garantizar que cada conexión tenga una configuración idéntica. Asegúrese de que la consulta que añada sea válida. Para incluir varias variables en una única instrucción deSET
, utilice separadores de coma. Por ejemplo:SET
variable1
=value1
,variable2
=value2
Para varias instrucciones, utilice punto y coma como separador.
importante
Dado que se puede acceder a la consulta de inicialización como parte de la configuración del grupo de destino, no está protegida por métodos de autenticación o criptográficos. Cualquier persona con acceso para ver o administrar la configuración del grupo de destino del proxy puede ver la consulta de inicialización. No debe agregar información confidencial, como contraseñas o claves de cifrado de larga duración, a esta opción.
Rol de AWS Identity and Access Management (IAM) Un rol de IAM con permiso para acceder a los secretos de Secrets Manager, que representan las credenciales de las cuentas de usuario de la base de datos que puede usar el proxy. Otra opción, puede crear un rol de IAM nuevo desde la AWS Management Console.
Secretos de Secrets Manager Elija al menos un secreto de Secrets Manager que contenga credenciales de usuario de base de datos que permita al proxy acceder al clúster de bases de datos de Aurora. Tipo de autenticación de cliente El tipo de autenticación que utiliza el proxy para las conexiones de los clientes. Su elección se aplica a todos los secretos de Secrets Manager que asocie a este proxy. Si tiene que especificar un tipo de autenticación de cliente diferente para cada secreto, cree su proxy mediante la AWS CLI o la API. Autenticación de IAM Si desea requerir, o no permitir la autenticación de IAM para las conexiones al proxy. Su elección se aplica a todos los secretos de Secrets Manager que asocie a este proxy. Si tiene que especificar un tipo de autenticación de IAM diferente para cada secreto, cree su proxy mediante la AWS CLI o la API. Requerir seguridad de capa de transporte Aplica TLS/SSL para todas las conexiones de cliente. El proxy utiliza la misma configuración de cifrado para su conexión a la base de datos subyacente, si la conexión del cliente se cifra o no se cifra.
Subredes Este campo se rellena previamente con todas las subredes asociadas a la VPC. Puede eliminar cualquier subred que no sea necesaria para el proxy, pero debe dejar al menos dos subredes.
VPC security group (Grupo de seguridad de VPC) Elija un grupo de seguridad de VPC existente o cree uno nuevo desde la AWS Management Console. Configure las reglas de entrada para permitir que las aplicaciones accedan al proxy y las reglas de salida para permitir el tráfico desde los destinos de base de datos.
nota
El grupo de seguridad debe permitir conexiones desde el proxy a la base de datos. Sirve para la entrada de las aplicaciones al proxy y para la salida del proxy a la base de datos. Por ejemplo, si utiliza el mismo grupo de seguridad para la base de datos y el proxy, asegúrese de que los recursos dentro de ese grupo de seguridad puedan comunicarse entre sí.
Cuando se utiliza una VPC compartida, evite el uso del grupo de seguridad predeterminado para la VPC o uno asociado a otra cuenta. En su lugar, elija un grupo de seguridad que pertenezca a la cuenta. Si no existe ninguno, créelo. Para obtener más información, consulte Trabajar con VPC compartidas.
RDS despliega un proxy en varias zonas de disponibilidad para garantizar una alta disponibilidad. Para habilitar la comunicación entre zonas de disponibilidad, la lista de control de acceso (ACL) a la red de la subred del proxy debe permitir la salida específica en el puerto del motor y la entrada en todos los puertos. Para obtener más información acerca de las ACL de red de, consulte Controlar el tráfico hacia las subredes utilizando las ACL de red. Si la ACL de red del proxy y la de destino son idénticas, debe añadir una regla de entrada del protocolo TCP en la que el Origen esté configurado en el CIDR de la VPC. También debe añadir una regla de salida del protocolo TCP específica del puerto del motor en la que el Destino esté configurado en el CIDR de la VPC.
Activación del registro mejorado Habilite esta configuración para solucionar problemas de compatibilidad de proxy o rendimiento. Cuando está habilitado, RDS Proxy registra información sobre el rendimiento detallada para ayudarle a depurar el comportamiento de SQL o el rendimiento y la escalabilidad de la conexión del proxy.
Habilite esta configuración solo para la depuración y asegúrese de que existan las medidas de seguridad adecuadas para proteger la información confidencial en los registros. Para minimizar la sobrecarga, RDS Proxy desactiva automáticamente esta configuración 24 horas después de la activación. Úsela temporalmente para solucionar problemas específicos.
-
-
Elija Create proxy (Crear proxy).
Para crear un proxy utilizando el comando AWS CLI, llame al comando create-db-proxy con los siguientes parámetros requeridos:
--db-proxy-name
--engine-family
--role-arn
--auth
--vpc-subnet-ids
El valor --engine-family
distingue entre mayúsculas y minúsculas.
ejemplo
Para Linux, macOS o Unix:
aws rds create-db-proxy \ --db-proxy-name
proxy_name
\ --engine-family { MYSQL | POSTGRESQL | SQLSERVER } \ --authProxyAuthenticationConfig_JSON_string
\ --role-arniam_role
\ --vpc-subnet-idsspace_separated_list
\ [--vpc-security-group-idsspace_separated_list
] \ [--require-tls | --no-require-tls] \ [--idle-client-timeoutvalue
] \ [--debug-logging | --no-debug-logging] \ [--tagscomma_separated_list
]
Para Windows:
aws rds create-db-proxy ^ --db-proxy-name
proxy_name
^ --engine-family { MYSQL | POSTGRESQL | SQLSERVER } ^ --authProxyAuthenticationConfig_JSON_string
^ --role-arniam_role
^ --vpc-subnet-idsspace_separated_list
^ [--vpc-security-group-idsspace_separated_list
] ^ [--require-tls | --no-require-tls] ^ [--idle-client-timeoutvalue
] ^ [--debug-logging | --no-debug-logging] ^ [--tagscomma_separated_list
]
A continuación se muestra un ejemplo del valor JSON para la opción --auth
. Este ejemplo aplica un tipo de autenticación de cliente diferente a cada secreto.
[ { "Description": "proxy description 1", "AuthScheme": "SECRETS", "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret/1234abcd-12ab-34cd-56ef-1234567890ab", "IAMAuth": "DISABLED", "ClientPasswordAuthType": "POSTGRES_SCRAM_SHA_256" }, { "Description": "proxy description 2", "AuthScheme": "SECRETS", "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret/1234abcd-12ab-34cd-56ef-1234567890cd", "IAMAuth": "DISABLED", "ClientPasswordAuthType": "POSTGRES_MD5" }, { "Description": "proxy description 3", "AuthScheme": "SECRETS", "SecretArn": "arn:aws:secretsmanager:us-west-2:111122221111:secret/1234abcd-12ab-34cd-56ef-1234567890ef", "IAMAuth": "REQUIRED" } ]
sugerencia
Si aún no conoce los ID de subred que utilizar para el parámetro --vpc-subnet-ids
, consulte Configuración de requisitos previos de red para RDS Proxy para ver ejemplos de cómo encontrarlos.
nota
Este grupo de seguridad debe permitir el acceso a la base de datos a la que se conecta el proxy. El mismo grupo de seguridad se utiliza para la entrada de las aplicaciones al proxy y para la salida del proxy a la base de datos. Por ejemplo, supongamos que utiliza el mismo grupo de seguridad para la base de datos y el proxy. En este caso, asegúrese de especificar que los recursos de ese grupo de seguridad pueden comunicarse con otros recursos del mismo grupo de seguridad.
Cuando se utiliza una VPC compartida, no se puede utilizar el grupo de seguridad predeterminado para la VPC o uno que pertenezca a otra cuenta. Elija un grupo de seguridad que pertenezca a su cuenta. Si no existe uno, créelo. Para obtener más información acerca de esta limitación, consulte Trabajar con VPC compartidas.
Para crear las asociaciones adecuadas para el proxy, utilice también el comando register-db-proxy-targets. Especifique el nombre de grupo de destino de default
. El proxy de RDS crea automáticamente un grupo de destino con este nombre cuando crea cada proxy.
aws rds register-db-proxy-targets --db-proxy-name
value
[--target-group-nametarget_group_name
] [--db-instance-identifiersspace_separated_list
] # rds db instances, or [--db-cluster-identifierscluster_id
] # rds db cluster (all instances)
Para crear un proxy de RDS, llame a la operación de la API de Amazon RDS CreateDBProxy. Transfiera un parámetro con la estructura de datos AuthConfig .
El proxy de RDS crea automáticamente un grupo de destino denominado default
cuando crea cada proxy. Se asocia un clúster de bases de datos de Aurora con el grupo de destino llamando a la función RegisterDBProxyTargets.