Introducción al modo local
En las siguientes secciones se describen los pasos necesarios para empezar a utilizar el modo local en Amazon SageMaker Studio, entre los que se incluyen:
-
Cumplimiento de los requisitos previos
-
Configuración de
EnableDockerAccess -
Instalación de Docker
Requisitos previos
Complete los siguientes requisitos previos para usar el modo local en las aplicaciones de Studio:
-
Para extraer imágenes de un repositorio de Amazon Elastic Container Registry, la cuenta en la que se aloja la imagen de Amazon ECR debe proporcionar permiso de acceso para el rol de ejecución del usuario. El rol de ejecución del dominio también debe permitir el acceso a Amazon ECR.
-
Compruebe que está utilizando la versión más reciente del Studio Python SDK mediante el siguiente comando:
pip install -U sagemaker -
Para usar el modo local y las capacidades de Docker, establezca el siguiente parámetro de la
DockerSettingsdel dominio mediante la AWS Command Line Interface (AWS CLI):EnableDockerAccess : ENABLED -
Con
EnableDockerAccess, también puede controlar si los usuarios del dominio pueden usar el modo local. De forma predeterminada, el modo local y las capacidades de Docker no están permitidos en las aplicaciones de Studio. Para obtener más información, consulte Configuración de EnableDockerAccess. -
Instale la Docker CLI en la aplicación de Studio siguiendo los pasos que se indican en Instalación de Docker.
-
Para Configuración de Docker sin raíz, asegúrese de que su VPC tenga configurados los puntos de conexión y el enrutamiento adecuados para los registros de Docker que desee.
Configuración de EnableDockerAccess
En las siguientes secciones se muestra cómo configurar EnableDockerAccess cuándo el dominio tiene acceso público a Internet o está en modo VPC-only.
nota
Los cambios de EnableDockerAccess se aplicarán únicamente a las aplicaciones creadas después de actualizar el dominio. Debe crear una nueva aplicación después de actualizar el dominio.
Acceso público a Internet
Los siguientes comandos de ejemplo muestran cómo configurar EnableDockerAccess al crear un nuevo dominio o actualizar un dominio existente con acceso público a Internet:
# create new domain aws --regionregion\ sagemaker create-domain --domain-namedomain-name\ --vpc-idvpc-id\ --subnet-idssubnet-ids\ --auth-mode IAM \ --default-user-settings "ExecutionRole=execution-role" \ --domain-settings '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}' \ --query DomainArn \ --output text # update domain aws --regionregion\ sagemaker update-domain --domain-iddomain-id\ --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}'
Modo VPC-only
Cuando se utiliza un dominio en modo VPC-only, las solicitudes de inserción y extracción de imágenes de Docker se enrutan a través de la VPC del servicio en lugar de a través de la VPC configurada por el cliente. Gracias a esta funcionalidad, los administradores pueden configurar una lista de Cuentas de AWS de confianza a las que los usuarios pueden enviar solicitudes de operaciones de Docker de inserción y extracción de Amazon ECR.
Si se envía una solicitud de inserción o extracción de imágenes de Docker a una Cuenta de AWS que no figura en la lista de Cuentas de AWS de confianza, se produce un error en la solicitud. Las operaciones de Docker de extracción y envío fuera del Amazon Elastic Container Registry (Amazon ECR) no se admiten en el modo VPC-only.
De forma predeterminada, las siguientes Cuentas de AWS son de confianza:
-
La cuenta que aloja el dominio de SageMaker AI.
-
Las cuentas de SageMaker AI que alojan las siguientes imágenes de SageMaker:
-
Imágenes de marco de trabajo de DLC
-
Imágenes de procesamiento de Sklearn, Spark y XGBoost
-
Para configurar una lista de Cuentas de AWS de confianza adicionales, especifique el valor de VpcOnlyTrustedAccounts de la siguiente manera:
aws --regionregion\ sagemaker update-domain --domain-iddomain-id\ --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED", "VpcOnlyTrustedAccounts": ["account-list"]}}'
nota
Cuando la Configuración de Docker sin raíz está habilitada, VpcOnlyTrustedAccounts se ignora y el tráfico de Docker se redirige a través de la configuración de la VPC, lo que permite el acceso a cualquier registro al que pueda acceder la VPC.
Configuración de Docker sin raíz
Cuando RootlessDocker está habilitado, Studio usa un daemon de Docker sin raízRootlessDocker son:
-
Se puede acceder a los puertos de los contenedores mediante la IP de la puerta de enlace de Docker (
172.17.0.1) en lugar de mediante localhost. -
La configuración de la VPC determina a qué registros pueden acceder las operaciones de Docker.
VpcOnlyTrustedAccountsse ignora y el tráfico de Docker se enruta a través de la configuración de su VPC.
Para usar Docker sin raíz, tendrá que configurar EnableDockerAccess y RootlessDocker en ENABLED para la DockerSettings. Por ejemplo, en los ejemplos de Configuración de EnableDockerAccess anteriores, puede modificar la configuración del dominio para que incluya:
'{"DockerSettings": {"EnableDockerAccess": "ENABLED", "RootlessDocker": "ENABLED"}}'
Instalación de Docker
Para utilizar Docker, debe instalar manualmente Docker desde el terminal de su aplicación de Studio. Los pasos para instalar Docker son diferentes si el dominio tiene acceso a Internet o no.
Acceso a Internet
Si el dominio se crea con acceso público a Internet o en un modo VPC-only con acceso limitado a Internet, siga estos pasos para instalar Docker.
-
(Opcional) Si el dominio se crea en modo
VPC-onlycon acceso limitado a Internet, cree una puerta de enlace NAT pública con acceso al sitio web de Docker. Para obtener instrucciones, consulte Gateways NAT. -
Vaya al terminal de la aplicación de Studio en la que desee instalar Docker.
-
Para devolver el sistema operativo de la aplicación, ejecute el siguiente comando desde el terminal:
cat /etc/os-release -
Instale Docker siguiendo las instrucciones del sistema operativo de la aplicación en Amazon SageMaker AI Local Mode Examples repository
. Por ejemplo, instale Docker en Ubuntu siguiendo el script de https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker_studio_docker_cli_install/sagemaker-ubuntu-focal-docker-cli-install.sh
teniendo en cuenta las siguientes consideraciones: -
Si se produce un error en los comandos encadenados, ejecute los comandos de uno en uno.
-
Studio solo admite Docker, versión
20.10.X.y la Docker Engine API, versión1.41. -
Los siguientes paquetes no son necesarios para usar la Docker CLI en Studio y su instalación se puede omitir:
-
containerd.io -
docker-ce -
docker-buildx-plugin
-
nota
No es necesario iniciar el servicio Docker en sus aplicaciones. La instancia en la que se aloja la aplicación de Studio ejecuta el servicio Docker de forma predeterminada. Todas las llamadas a la API de Docker se enrutan automáticamente a través del servicio Docker.
-
-
Utilice el socket de Docker expuesto para las interacciones de Docker dentro de las aplicaciones de Studio. De forma predeterminada, se expone el siguiente socket:
unix:///docker/proxy.sockLa siguiente variable de entorno de la aplicación de Studio del
USERpredeterminado utiliza este socket expuesto:DOCKER_HOST
Sin acceso a Internet
Si el dominio se crea en modo VPC-only sin acceso a Internet, siga estos pasos para instalar Docker.
-
Vaya al terminal de la aplicación de Studio en la que desee instalar Docker.
-
Para devolver el sistema operativo de la aplicación, ejecute el siguiente comando desde el terminal:
cat /etc/os-release -
Descargue los archivos
.debde Docker en el equipo local. Para obtener instrucciones sobre cómo descargar los archivos necesarios para el sistema operativo de la aplicación de Studio, consulte Install Docker Engine. Por ejemplo, instale Docker desde un paquete en Ubuntu siguiendo los pasos 1 a 4 de Install from a package
teniendo en cuenta las siguientes consideraciones: -
Instale Docker desde un paquete. Si se utilizan otros métodos para instalar Docker, se producirá un error.
-
Instale los paquetes más recientes correspondientes a la versión
20.10.Xde Docker. -
Los siguientes paquetes no son obligatorios para usar la Docker CLI en Studio. No es necesario instalar lo siguiente:
-
containerd.io -
docker-ce -
docker-buildx-plugin
-
nota
No es necesario iniciar el servicio Docker en sus aplicaciones. La instancia en la que se aloja la aplicación de Studio ejecuta el servicio Docker de forma predeterminada. Todas las llamadas a la API de Docker se enrutan automáticamente a través del servicio Docker.
-
-
Cargue los archivos
.deben el sistema de archivos de Amazon EFS o en el sistema de archivos de Amazon EBS de la aplicación. -
Instale manualmente los paquetes
.debdedocker-ce-cliydocker-compose-plugindesde el terminal de la aplicación de Studio. Para obtener más información e instrucciones, consulte el paso 5 de Install from a packageen el sitio web de documentación de Docker. -
Utilice el socket de Docker expuesto para las interacciones de Docker dentro de las aplicaciones de Studio. De forma predeterminada, se expone el siguiente socket:
unix:///docker/proxy.sockLa siguiente variable de entorno de la aplicación de Studio del
USERpredeterminado utiliza este socket expuesto:DOCKER_HOST