¿Por qué mi cuaderno de Amazon SageMaker Studio en modo solo VPC no se conecta a mi aplicación KernelGateway?

9 minutos de lectura
0

Tengo problemas de conectividad entre mi cuaderno de Amazon SageMaker Studio en modo solo VPC y mi aplicación KernelGateway.

Descripción breve

Es posible que obtenga los siguientes errores al utilizar SageMaker Studio en modo solo VPC y no pueda iniciar la aplicación KernelGateway:

Puede ejecutar SageMaker Studio, pero su kernel falla y se produce el siguiente error:

SageMaker Studio is unable to connect KernelGateway App. In VPCOnly mode, please ensure that security groups allow TCP traffic within the security group

Por lo general, este error se produce porque el grupo de seguridad no se autorreferencia para permitir la conectividad entre las instancias dentro de su dominio de SageMaker.

Por ejemplo, supongamos que puede iniciar SageMaker Studio, pero tarda mucho en cargarse y el kernel no se inicia:

Failed to start kernel
Failed to launch app [None]. SageMaker Studio is unable to reach SageMaker endpoint. Please ensure your VPC has connectivity to SageMaker via Internet or VPC Endpoint. If you are using VPC Endpoints, please ensure Security Groups allows traffic between Studio and VPC endpoints.

Este error se produce cuando su dominio de solo VPC no puede conectarse a Internet o a los puntos de conexión de Amazon Virtual Private Cloud (Amazon VPC). Esto puede deberse a varias razones, como las siguientes:

  • Los grupos de seguridad no están configurados correctamente.
  • La subred no tiene los puntos de conexión de VPC correctos.
  • Su dominio está conectado a una subred privada y no se ha agregado ninguna puerta de enlace NAT activa a la tabla de enrutamiento.
  • Ha configurado SageMaker Studio para conectarse a subredes públicas.

Solución

Asegúrese de que los grupos de seguridad para SageMaker Studio incluyen las reglas requeridas

Asegúrese de que el tráfico de AWS Network File System (AWS NFS) entre el dominio y el volumen de Amazon Elastic File System (Amazon EFS) está autorizado a través de TCP en el puerto 2049. Los datos de SageMaker Studio se almacenan mediante Amazon EFS. Por lo tanto, debe tener las reglas para permitir las conexiones entrantes y salientes con fines de almacenamiento.

Para permitir el tráfico de entrada de Amazon EFS a sus recursos, haga lo siguiente:

  1. Abra la consola de Amazon VPC.
  2. En el panel de navegación, seleccione Security Groups (Grupos de seguridad).
  3. Seleccione el grupo de seguridad que desee actualizar.
  4. Elija Actions (Acciones) y, a continuación, elija Edit inbound rules (Editar reglas de entrada).
  5. Elija Add rule (Agregar regla) y haga lo siguiente:
    En Type (Tipo) , elija NFS.
    EnSource (Origen), elija Custom (Personalizado) y, a continuación, introduzca el ID de Amazon EFS.
  6. Elija Save rules (Guardar reglas).

Debe permitir el tráfico TCP dentro del grupo de seguridad para permitir la conectividad entre las aplicaciones JupyterServer y KernelGateway. Dado que creó el dominio de Studio en modo solo VPC, debe especificar al menos un grupo de seguridad para los recursos del dominio de SageMaker Studio. Este grupo de seguridad debe permitir el tráfico entrante a través de TCP en los puertos 8192-65535 y todo el tráfico saliente en 0.0.0.0/0.

Para permitir la conectividad entre las aplicaciones JupyterServer y KernelGateway, haga lo siguiente:

  1. Abra la consola de Amazon VPC.
  2. En el panel de navegación, seleccione Security Groups (Grupos de seguridad).
  3. Seleccione el grupo de seguridad que desee actualizar.
  4. Elija Actions (Acciones) y, a continuación, elija Edit inbound rules (Editar reglas de entrada).
  5. Elija Add rule (Agregar regla) y haga lo siguiente:
    En Tipo, elija Custom TCP (TCP personalizado).
    En Port range (Rango de puertos), escriba 8192-65535.
    En Source (Origen), elija Custom (Personalizado) y, a continuación, ingrese el ID del grupo de seguridad que está editando.
  6. Elija Save rules (Guardar reglas).

Al acceder a un recurso en su Amazon VPC desde su cuaderno de SageMaker Studio, el tráfico desde la cuenta de servicio de SageMaker se dirige a través de su interfaz de red elástica. Tenga en cuenta que las aplicaciones JupyterServer y KernelGateway están en la VPC de su cuenta de servicio SageMaker. Se comunican entre sí a través de las interfaces de red elásticas que están conectadas a la VPC. Aunque estas apps forman parte de la cuenta de servicio de dominio de SageMaker Studio, se ejecutan en diferentes instancias de Amazon Elastic Compute Cloud (Amazon EC2). Estas aplicaciones utilizan puertos efímeros para establecer una conexión entre ellas. No hay ningún puerto específico a través del cual se conecten estas aplicaciones. Por lo tanto, es una práctica recomendada dejar que todos los puertos TCP estén abiertos en grupos de seguridad autorreferenciados. Para obtener más información, consulte Dive deep into Amazon SageMaker Studio notebooks architecture (Análisis profundo de la arquitectura de los cuadernos de Amazon SageMaker Studio).

Asegúrese de haber creado los puntos de conexión de VPC necesarios

Si sus recursos de SageMaker Studio no requieren acceso a Internet, entonces no necesita agregar una puerta de enlace NAT. Sin embargo, se requieren los siguientes puntos de conexión para ejecutar los cuadernos de Studio:

  • API de SageMaker: com.amazonaws.<aws-region>.sagemaker.api
  • Tiempo de ejecución de SageMaker: com.amazonaws.<aws-region>.sagemaker.runtime

Asegúrese de crear los siguientes puntos de conexión para acceder a Amazon Simple Storage Service (Amazon S3) y a las plantillas de Project:

  • Para Amazon S3: com.amazonaws.<aws-region>.s3
  • Para las plantillas de Amazon SageMaker Project: com.amazonaws.<aws-region>.servicecatalog

Asegúrese de asociar los grupos de seguridad para la VPC con estos puntos de conexión de VPC haciendo lo siguiente:

  1. Abra la consola de Amazon VPC.
  2. En el panel de navegación, seleccione Endpoints (Puntos de conexión).
  3. Elija el punto de conexión que desee actualizar.
  4. Elija Actions (Acciones) y, a continuación, elija Manage security groups (Administrar grupos de seguridad).
  5. Seleccione el grupo de seguridad que se debe asociar a este punto de conexión.
  6. Elija Save (Guardar).

Para obtener más información, consulte estos recursos:

Asegúrese de utilizar una puerta de enlace NAT si necesita conexión a Internet

Si los recursos de SageMaker Studio requieren acceso a Internet, primero asegúrese de que SageMaker Studio esté configurado para conectarse a subredes privadas. A continuación, cree una puerta de enlace NAT y permita el tráfico desde la puerta de enlace NAT a través de la tabla de enrutamiento de su subred privada. Para obtener más información, consulte How do I set up a NAT gateway for a private subnet in Amazon VPC? (¿Cómo configuro una puerta de enlace NAT para una subred privada en Amazon VPC?) Tenga en cuenta que el dominio de SageMaker Studio que está conectado a una subred pública no permite la conexión a Internet.

Asegúrese de que se cumplen los requisitos de red para la VPC

Si inició SageMaker Studio en modo solo VPC, asegúrese de que la VPC cumple los siguientes requisitos:

  • Las subredes deben tener suficientes direcciones IP disponibles para la instancia.
  • Para permitir el acceso a Internet, asegúrese de asociar su dominio SageMaker con una subred privada durante la creación del dominio. Además, utilice la puerta de enlace NAT para acceder a Internet.
  • Si está utilizando un punto de conexión de VPC para ejecutar las API de SageMaker, asegúrese de que los atributos Enable DNS hostnames (Habilitar nombres de host de DNS) y Enable DNS Support (Habilitar soporte de DNS) estén establecidos en true (verdadero) para la VPC. Esto es necesario para que la VPC se conecte con al punto de conexión de la API de SageMaker al iniciar el kernel.

Puede utilizar los comandos de la interfaz de la línea de comandos de AWS (AWS CLI) para asegurarse de que se adjuntan al dominio los grupos de seguridad correctos. Si desea actualizar los DefaultUserSettings de su dominio de Studio para utilizar el nuevo grupo de seguridad, utilice el comando update-domain:

aws sagemaker update-domain –domain-id <value> --default-user-settings SecurityGroups=<list>

También puede volver a configurar el dominio creando de nuevo el dominio que está asociado a los grupos de seguridad necesarios. El resultado del parámetro SecurityGroups muestra todos los grupos de seguridad de la VPC que Studio usa para la comunicación.

Nota: Para ejecutar el comando anterior, debe eliminar todas las aplicaciones con estado InService de sus perfiles de usuario.

Una vez que el comando update-domain se ha ejecutado correctamente, puede comprobar su dominio mediante el comando describe-domain:

Ejemplo:

$ aws sagemaker describe-domain --domain-id d-xyzxyz

A continuación, puede lanzar de nuevo SageMaker Studio y confirmar que el cuaderno se inicia de forma correcta. También puede comprobar la conectividad a Internet ejecutando !curl amazon.com desde una celda del cuaderno.

Nota: Si recibe errores mientras ejecuta los comandos de AWS CLI, asegúrese de que está utilizando la versión más reciente de dicha interfaz.

Elimine la aplicación JupyterServer e inicie una nueva para que la configuración actualizada surta efecto. Puede utilizar su perfil de usuario de SageMaker Studio después de actualizar la configuración de Amazon VPC. Para obtener más información, consulte la sección Requirements to use VPC only mode (Requisitos para utilizar el modo solo VPC) en Connect SageMaker Studio notebooks in a VPC to external resources (Conexión de cuadernos de SageMaker Studio en una VPC a recursos externos).

Otras consideraciones

Si solo un usuario experimenta este problema, compruebe si la aplicación predeterminada se inició antes de que se completaran las actualizaciones de la VPC. En este caso, la aplicación JupyterServer predeterminada no se actualiza de forma automática para utilizar la nueva configuración de VPC, lo que provoca problemas de conectividad. Además, compruebe si la aplicación JupyterServer predeterminada se inició semanas o meses antes. Esto puede provocar que la aplicación tenga archivos de registro y archivos temporales de gran tamaño. Intente volver a crear la aplicación predeterminada para liberar espacio o para asegurarse de que la aplicación usa la configuración de VPC actualizada.

El problema puede ocurrir si los usuarios de SageMaker Studio están configurados con un rol de ejecución diferente. Asegúrese de que los permisos del rol de ejecución de los usuarios incluyan las políticas requeridas. Estas políticas deben activar el rol de ejecución para ejecutar la acción DescribeApp que se requiere para crear cuadernos de Studio. Después de actualizar estos permisos para el rol de ejecución, intente aprovisionar los cuadernos de Studio en modo solo VPC.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año