¿Cómo puedo conectarme a una instancia de base de datos de Amazon RDS desde una instancia de cuaderno de Amazon SageMaker que se encuentra en una VPC diferente?

5 minutos de lectura
0

Quiero conectar una instancia de cuaderno de Amazon SageMaker a una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) que se encuentra en otra nube virtual privada (VPC).

Resolución

1.    Cree una conexión de emparejamiento de VPC.

2.    Una vez que la conexión de emparejamiento de VPC esté activa, actualice las tablas de enrutamiento. La subred de la instancia de base de datos de RDS y la subred de la instancia de cuaderno de SageMaker deben tener una ruta común. Por ejemplo, para los siguientes bloques de CIDR:

Bloque de CIDR de la VPC de SageMaker: 192.168.0.0/16

Bloque de CIDR de la VPC de la instancia de base de datos de RDS: 10.0.0.0/24

La tabla de enrutamiento de subred de la instancia de base de datos de Amazon RDS tiene el siguiente aspecto:

DestinoObjetivo
10.0.0.0/24local
192.168.0.0/16Selección de la conexión de emparejamiento de VPC en la lista desplegable

La tabla de enrutamiento de subred de la instancia del cuaderno de SageMaker tiene el siguiente aspecto:

DestinoObjetivo
10.0.0.0/24Selección de la conexión de emparejamiento de VPC en la lista desplegable
192.168.0.0/16local

3.    Confirme que ambos grupos de seguridad estén configurados correctamente. Para permitir el tráfico desde la instancia del cuaderno a la instancia de base de datos de RDS:

En el grupo de seguridad de la instancia de cuaderno: Asegúrese de que haya una regla de salida que permita el tráfico a la instancia de base de datos de RDS.

En el grupo de seguridad de la instancia de base de datos: Asegúrese de que haya una regla de entrada que permita el grupo de seguridad, el bloque de CIDR de la VPC o el bloque de CIDR de la subred de la instancia del cuaderno.

4.    Para probar la conexión, ejecute el siguiente comando en un terminal de la instancia de cuaderno de SageMaker. Sustituya los valores siguientes en el ejemplo:

mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com: el punto de conexión de la instancia de base de datos

3306: el puerto de la instancia de base de datos

curl -v mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com:3306

Solución de problemas

Si la instancia de cuaderno tiene activado el acceso directo a Internet, es posible que se produzca un error en el comando test (por ejemplo, «Connection timed out»). Si esto ocurre, ejecute el siguiente comando para comprobar la tabla de enrutamiento de la instancia de cuaderno a nivel del sistema operativo:

route -n

Cuando se activa el acceso directo a Internet, la tabla de enrutamiento tiene un aspecto similar al siguiente:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0
10.0.32.0       0.0.0.0         255.255.224.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.255.0   U     0      0        0 veth_def_agent
169.254.169.254 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.224.0   U     0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-5a785eca34a3
192.168.0.0     0.0.0.0         255.255.128.0   U     0      0        0 eth2
192.168.0.0     192.168.0.1     255.255.0.0     UG    0      0        0 eth2

En este ejemplo, el bloque de CIDR de la VPC de instancia de base de datos es 10.0.0.0/24. La tabla de enrutamiento del sistema operativo no tiene una ruta a 10.0.0.0/24. En cambio, el tráfico al bloque de CIDR de la VPC de RDS utiliza la interfaz de red principal (eth0), que gestiona el tráfico público. Para resolver el problema de conexión, modifique la tabla de enrutamiento para que utilice eth2, que es la interfaz de red elástica de la VPC de la instancia de cuaderno:

1.    Anote la dirección del enrutador de la VPC de SageMaker. En este ejemplo, 192.168.0.0/16 (el bloque de CIDR de la VPC de la instancia de cuaderno) se enruta a 192.168.0.1. Esto significa que 192.168.0.1 es la dirección del enrutador de la VPC.

2.    Añada la ruta a la tabla de enrutamiento del terminal de instancia de cuaderno. Sustituya estos valores en el ejemplo:

10.0.0.0/24: el bloque de CIDR de la VPC de la instancia de base de datos de RDS

192.168.0.1: la dirección del enrutador de la VPC de la instancia de cuaderno de SageMaker

sudo ip route add 10.0.0.0/24 via 192.168.0.1 dev eth2

3.    Confirme que la nueva ruta se encuentra en la tabla de enrutamiento:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0
10.0.0.0        192.168.0.1     255.255.255.0   UG    0      0        0 eth2
10.0.32.0       0.0.0.0         255.255.224.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.255.0   U     0      0        0 veth_def_agent
169.254.169.254 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.224.0   U     0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-5a785eca34a3
192.168.0.0     0.0.0.0         255.255.128.0   U     0      0        0 eth2
192.168.0.0     192.168.0.1     255.255.0.0     UG    0      0        0 eth2

4.    Vuelva a probar la conexión.

Nota: Los cambios en la tabla de enrutamiento del sistema operativo no persisten entre las sesiones de instancia de cuaderno. Esto significa que, al detener e iniciar la instancia de cuaderno de SageMaker, se pierden los cambios. Para mitigar este problema, utilice una configuración de ciclo de vida para añadir la ruta cada vez que inicie la instancia de cuaderno.


Información relacionada

Connect a notebook instance to resources in a VPC

Connect to SageMaker through a VPC interface endpoint

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año