

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Acelere la puesta en marcha de contenedores con SOCI
<a name="soci-indexing"></a>

[La indexación SOCI (Seekable Open Container Initiative) permite la carga diferida de imágenes de contenedores personalizadas en [Amazon SageMaker Studio](studio-updated.md) Amazon Unified Studio. SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html) El SOCI reduce considerablemente los tiempos de inicio de sus contenedores personalizados, aproximadamente entre un 30 y un 70%. [Bring your own image (BYOI)](studio-updated-byoi.md) La mejora de la latencia varía según el tamaño de la imagen, la disponibilidad de la instancia de alojamiento y otras dependencias de la aplicación. SOCI crea un índice que permite a los contenedores lanzarse solo con los componentes necesarios y obtener archivos adicionales a pedido según sea necesario.

El SOCI aborda los tiempos lentos de inicio de los contenedores, que interrumpen los flujos de trabajo de desarrollo del aprendizaje automático (ML) iterativo, para obtener imágenes personalizadas. A medida que las cargas de trabajo de aprendizaje automático se vuelven más complejas, las imágenes de los contenedores se hacen más grandes, lo que provoca retrasos en el inicio que dificultan los ciclos de desarrollo.

**Topics**
+ [Ventajas principales](#soci-indexing-key-benefits)
+ [¿Cómo funciona la indexación SOCI](#soci-indexing-how-works)
+ [Componentes de arquitectura](#soci-indexing-architecture-components)
+ [Herramientas admitidas](#soci-indexing-supported-tools)
+ [Permisos para la indexación de SOCI](soci-indexing-setup.md)
+ [Ejemplo de creación de índices SOCI con nerdctl y SOCI CLI](soci-indexing-example-create-indexes.md)
+ [Ejemplo de integración de imágenes indexadas en redes SOCIALES con Studio](soci-indexing-example-integrate-studio.md)

## Ventajas principales
<a name="soci-indexing-key-benefits"></a>
+ **Ciclos de iteración más rápidos**: reduzca el inicio de los contenedores, según los tipos de imagen e instancia
+ **Optimización universal**: amplíe las ventajas de rendimiento a todos los contenedores BYOI personalizados en Studio

## ¿Cómo funciona la indexación SOCI
<a name="soci-indexing-how-works"></a>

SOCI crea un índice de metadatos especializado que mapea la estructura de archivos interna de la imagen del contenedor. Este índice permite acceder a archivos individuales sin descargar la imagen completa. El índice SOCI se almacena como un artefacto compatible con la OCI (Open Container Initiative) en [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) y se vincula a la imagen del contenedor original, lo que preserva los resúmenes de imágenes y la validez de la firma.

Al lanzar un contenedor en Studio, el sistema utiliza el índice SOCI para identificar y descargar solo los archivos esenciales necesarios para el inicio. Los componentes adicionales se obtienen en paralelo a medida que la aplicación los requiera.

## Componentes de arquitectura
<a name="soci-indexing-architecture-components"></a>
+ **Imagen original del contenedor**: su contenedor base almacenado en Amazon ECR
+ **Artefacto del índice SOCI**: metadatos que mapean la estructura de archivos de la imagen
+ **Manifiesto del índice de imágenes OCI**: enlaza la imagen original con el índice SOCI
+ Tiempo de **ejecución del contenedor Finch**: permite la integración de carga diferida con Studio

## Herramientas admitidas
<a name="soci-indexing-supported-tools"></a>


| Herramienta | Integración | 
| --- | --- | 
| nerdctl | Requiere una configuración en containerd | 
| CLI de Finch | Soporte nativo de SOCI | 
| Docker \$1 SOCI CLI | Se requieren herramientas adicionales | 

**Topics**
+ [Ventajas principales](#soci-indexing-key-benefits)
+ [¿Cómo funciona la indexación SOCI](#soci-indexing-how-works)
+ [Componentes de arquitectura](#soci-indexing-architecture-components)
+ [Herramientas admitidas](#soci-indexing-supported-tools)
+ [Permisos para la indexación de SOCI](soci-indexing-setup.md)
+ [Ejemplo de creación de índices SOCI con nerdctl y SOCI CLI](soci-indexing-example-create-indexes.md)
+ [Ejemplo de integración de imágenes indexadas en redes SOCIALES con Studio](soci-indexing-example-integrate-studio.md)

# Permisos para la indexación de SOCI
<a name="soci-indexing-setup"></a>

[Cree índices SOCI para las imágenes de sus contenedores y almacénelos en Amazon ECR antes de utilizar la indexación SOCI con [Amazon SageMaker Studio](studio-updated.md) Amazon Unified Studio. SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html)

**Topics**
+ [Requisitos previos](#soci-indexing-setup-prerequisites)
+ [Permisos de IAM necesarios](#soci-indexing-setup-iam-permissions)

## Requisitos previos
<a name="soci-indexing-setup-prerequisites"></a>
+ Cuenta de AWS con un rol [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)(IAM) con permisos de administración
  + [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
  + [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs.html)
+ [Repositorios privados de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) para almacenar las imágenes de sus contenedores
+ [AWS CLI La versión 2.0\$1 está configurada](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) con las credenciales adecuadas
+ Las siguientes herramientas de contenedor:
  + Necesario: [soci-snapshotter](https://github.com/awslabs/soci-snapshotter)
  + Opciones:
    + [nerdctl](https://github.com/containerd/nerdctl)
    + [pinzón](https://github.com/runfinch/finch)

## Permisos de IAM necesarios
<a name="soci-indexing-setup-iam-permissions"></a>

Su función de IAM necesita permisos para:
+ Cree y gestione recursos de SageMaker IA (dominios, imágenes, configuraciones de aplicaciones).
  + Puede utilizar la política [SageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) AWS gestionada. Para obtener más información sobre los permisos, consulte[AWS política gestionada: AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess).
+ [Permisos de IAM para enviar una imagen a un repositorio privado de Amazon ECR.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push-iam.html)

# Ejemplo de creación de índices SOCI con nerdctl y SOCI CLI
<a name="soci-indexing-example-create-indexes"></a>

La siguiente página proporciona un ejemplo sobre cómo crear índices SOCI con nerdctl y SOCI CLI.

**Ejemplo de creación de índices SOCI**

1. Primero configure las variables para los AWS CLI comandos siguientes. El siguiente es un ejemplo de cómo configurar las variables.

   ```
   ACCOUNT_ID="111122223333"
   REGION="us-east-1"
   REPOSITORY_NAME="repository-name"
   ORIGINAL_IMAGE_TAG="original-image-tag"
   SOCI_IMAGE_TAG="soci-indexed-image-tag"
   ```

   Definiciones de variables:
   + `ACCOUNT_ID`es tu Cuenta de AWS ID
   + `REGION`es el Región de AWS de su registro privado de Amazon ECR
   + `REPOSITORY_NAME`es el nombre de su registro privado de Amazon ECR
   + `ORIGINAL_IMAGE_TAG`es la etiqueta de tu imagen original
   + `SOCI_IMAGE_TAG`es la etiqueta de tu imagen indexada en redes sociales

1. Instale las herramientas necesarias:

   ```
   # Install SOCI CLI, containerd, and nerdctl
   sudo yum install soci-snapshotter
   sudo yum install containerd jq  
   sudo systemctl start soci-snapshotter
   sudo systemctl restart containerd
   sudo yum install nerdctl
   ```

1. Configure sus variables de registro:

   ```
   REGISTRY_USER=AWS
   REGISTRY="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com"
   ```

1. Exporte su región y autentifíquese en Amazon ECR:

   ```
   export AWS_REGION=$REGION
   REGISTRY_PASSWORD=$(/usr/local/bin/aws ecr get-login-password --region $AWS_REGION)
   echo $REGISTRY_PASSWORD | sudo nerdctl login -u $REGISTRY_USER --password-stdin $REGISTRY
   ```

1. Extraiga la imagen original del contenedor:

   ```
   sudo nerdctl pull $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG
   ```

1. Cree el índice SOCI:

   ```
   sudo nerdctl image convert --soci $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

1. Empuje la imagen indexada por el SOCII:

   ```
   sudo nerdctl push --platform linux/amd64 $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

Este proceso crea dos artefactos para la imagen del contenedor original en su repositorio de ECR:
+ Índice SOCI: los metadatos permiten la carga diferida
+ Manifiesto del índice de imágenes: manifiesto compatible con OCI

# Ejemplo de integración de imágenes indexadas en redes SOCIALES con Studio
<a name="soci-indexing-example-integrate-studio"></a>

Debe hacer referencia a la etiqueta de imagen indexada por la red SOCIAL para utilizar imágenes indexadas por la red SOCIAL en Studio, en lugar de a la etiqueta de imagen contenedora original. Usa la etiqueta que especificaste durante el proceso de conversión a SOCI (por ejemplo, en). `SOCI_IMAGE_TAG` [Ejemplo de creación de índices SOCI con nerdctl y SOCI CLI](soci-indexing-example-create-indexes.md)

**Ejemplo de integración de imágenes indexadas por SOCII**

1. Primero configura tus variables para los AWS CLI comandos siguientes. El siguiente es un ejemplo de cómo configurar las variables.

   ```
   ACCOUNT_ID="111122223333"
   REGION="us-east-1"
   IMAGE_NAME="sagemaker-image-name"
   IMAGE_CONFIG_NAME="sagemaker-image-config-name"
   ROLE_ARN="your-role-arn"
   DOMAIN_ID="domain-id"
   SOCI_IMAGE_TAG="soci-indexed-image-tag"
   ```

   Definiciones de variables:
   + `ACCOUNT_ID`es tu Cuenta de AWS ID
   + `REGION`es el Región de AWS de su registro privado de Amazon ECR
   + `IMAGE_NAME`es el nombre de tu imagen SageMaker 
   + `IMAGE_CONFIG_NAME`es el nombre de la configuración de SageMaker la imagen
   + `ROLE_ARN`es el ARN de su función de ejecución con los permisos que figuran en Permisos de IAM [obligatorios](soci-indexing-setup.md#soci-indexing-setup-iam-permissions)
   + `DOMAIN_ID`[es el ID de dominio](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view.html)
**nota**  
Si va a adjuntar la imagen a un proyecto de SageMaker Unified Studio y necesita que se le aclare qué dominio usar, consulte [Ver los detalles del dominio de SageMaker IA asociados a su proyecto](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain).
   + `SOCI_IMAGE_TAG`es la etiqueta de tu imagen indexada en redes SOCIALES

1. Exporta tu región:

   ```
   export AWS_REGION=$REGION
   ```

1. Crea una SageMaker imagen:

   ```
   aws sagemaker create-image \
       --image-name "$IMAGE_NAME" \
       --role-arn "$ROLE_ARN"
   ```

1. Cree una versión SageMaker de imagen utilizando su URI de índice SOCI:

   ```
   IMAGE_INDEX_URI="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$IMAGE_NAME:$SOCI_IMAGE_TAG"
   
   aws sagemaker create-image-version \
       --image-name "$IMAGE_NAME" \
       --base-image "$IMAGE_INDEX_URI"
   ```

1. Crea una configuración de imagen de aplicación y actualiza tu dominio de Amazon SageMaker AI para incluir la imagen personalizada de tu aplicación. Puede hacerlo para el editor de código, basado en Code-OSS, Visual Studio Code: Open Source (editor de código) y JupyterLab aplicaciones. Seleccione la opción de aplicación que aparece a continuación para ver los pasos.

------
#### [ Code Editor ]

   Cree una configuración de imagen de aplicación para Code Editor:

   ```
   aws sagemaker create-app-image-config \
       --app-image-config-name "$IMAGE_CONFIG_NAME" \
       --code-editor-app-image-config '{ "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } }'
   ```

   Actualiza tu dominio de Amazon SageMaker AI para incluir la imagen personalizada para Code Editor:

   ```
   aws sagemaker update-domain \
       --domain-id "$DOMAIN_ID" \
       --default-user-settings '{
           "CodeEditorAppSettings": {
           "CustomImages": [{
               "ImageName": "$IMAGE_NAME", 
               "AppImageConfigName": "$IMAGE_CONFIG_NAME"
           }]
       }
   }'
   ```

------
#### [ JupyterLab ]

   Cree una configuración de imagen de aplicación para JupyterLab:

   ```
   aws sagemaker create-app-image-config \
       --app-image-config-name "$IMAGE_CONFIG_NAME" \
       --jupyter-lab-app-image-config '{ "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } }'
   ```

   Actualiza tu dominio de Amazon SageMaker AI para incluir la imagen personalizada de JupyterLab:

   ```
   aws sagemaker update-domain \
       --domain-id "$DOMAIN_ID" \
       --default-user-settings '{
           "JupyterLabAppSettings": {
           "CustomImages": [{
               "ImageName": "$IMAGE_NAME", 
               "AppImageConfigName": "$IMAGE_CONFIG_NAME"
           }]
       }
   }'
   ```

------

1. Después de actualizar tu dominio para incluir tu imagen personalizada, puedes crear una aplicación en Studio con tu imagen personalizada. Cuando te [Inicio de una imagen personalizada en Studio](studio-updated-byoi-how-to-launch.md) asegures de usar tu imagen personalizada.