

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Beschleunigen Sie den Container-Start mit SOCI
<a name="soci-indexing"></a>

Die SOCI-Indizierung (Seekable Open Container Initiative) ermöglicht das verzögerte Laden von benutzerdefinierten Container-Images in [Amazon SageMaker Studio](studio-updated.md) oder [Amazon SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html) Unified Studio. SOCI reduziert die Startzeiten für Ihre benutzerdefinierten Container erheblich um etwa 30-70%. [Bring Your Own Image (BYOI)](studio-updated-byoi.md) Die Verbesserung der Latenz hängt von der Größe des Images, der Verfügbarkeit der Hosting-Instanz und anderen Anwendungsabhängigkeiten ab. SOCI erstellt einen Index, der es Containern ermöglicht, nur mit den erforderlichen Komponenten zu starten und bei Bedarf zusätzliche Dateien bei Bedarf abzurufen.

SOCI begegnet langsamen Startzeiten von Containern für benutzerdefinierte Images, die die iterativen Entwicklungsworkflows für maschinelles Lernen (ML) unterbrechen. Da ML-Workloads immer komplexer werden, sind Container-Images immer größer geworden, was zu Verzögerungen beim Start führt, die die Entwicklungszyklen behindern.

**Topics**
+ [Wichtigste Vorteile](#soci-indexing-key-benefits)
+ [Wie funktioniert die SOCI-Indizierung](#soci-indexing-how-works)
+ [Architekturkomponenten](#soci-indexing-architecture-components)
+ [Unterstützte Tools](#soci-indexing-supported-tools)
+ [Berechtigungen für die SOCI-Indizierung](soci-indexing-setup.md)
+ [Erstellen Sie SOCI-Indizes mit nerdctl und einem SOCI-CLI-Beispiel](soci-indexing-example-create-indexes.md)
+ [Integrieren Sie sozi-indizierte Bilder in das Studio-Beispiel](soci-indexing-example-integrate-studio.md)

## Wichtigste Vorteile
<a name="soci-indexing-key-benefits"></a>
+ **Schnellere Iterationszyklen**: Je nach Image- und Instanztyp reduzieren Sie den Start von Containern
+ **Universelle Optimierung**: Erweitern Sie die Leistungsvorteile auf alle benutzerdefinierten BYOI-Container in Studio

## Wie funktioniert die SOCI-Indizierung
<a name="soci-indexing-how-works"></a>

SOCI erstellt einen speziellen Metadatenindex, der die interne Dateistruktur Ihres Container-Images abbildet. Dieser Index ermöglicht den Zugriff auf einzelne Dateien, ohne das gesamte Bild herunterzuladen. Der SOCI-Index wird als OCI-konformes Artefakt (Open Container Initiative) in [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) gespeichert und mit Ihrem ursprünglichen Container-Image verknüpft, sodass die Image-Digests und die Signaturgültigkeit erhalten bleiben.

Wenn Sie einen Container in Studio starten, verwendet das System den SOCI-Index, um nur wichtige Dateien zu identifizieren und herunterzuladen, die für den Start benötigt werden. Zusätzliche Komponenten werden parallel abgerufen, wenn Ihre Anwendung sie benötigt.

## Architekturkomponenten
<a name="soci-indexing-architecture-components"></a>
+ **Originalbild des Containers**: Ihr in Amazon ECR gespeicherter Basiscontainer
+ **SOCI-Index-Artefakt**: Metadaten, die die Dateistruktur Ihres Images abbilden
+ **OCI-Bildindex-Manifest**: Verknüpft Ihr Originalbild und Ihren SOCI-Index
+ **Finch-Container-Laufzeit**: Ermöglicht die Lazy-Loading-Integration mit Studio

## Unterstützte Tools
<a name="soci-indexing-supported-tools"></a>


| Tool | Integration | 
| --- | --- | 
| nerdctl | Erfordert ein Container-Setup | 
| Finch CLI | Native SOCI-Unterstützung | 
| Docker\$1SOCI-CLI | Zusätzliche Werkzeuge erforderlich | 

**Topics**
+ [Wichtigste Vorteile](#soci-indexing-key-benefits)
+ [Wie funktioniert die SOCI-Indizierung](#soci-indexing-how-works)
+ [Architekturkomponenten](#soci-indexing-architecture-components)
+ [Unterstützte Tools](#soci-indexing-supported-tools)
+ [Berechtigungen für die SOCI-Indizierung](soci-indexing-setup.md)
+ [Erstellen Sie SOCI-Indizes mit nerdctl und einem SOCI-CLI-Beispiel](soci-indexing-example-create-indexes.md)
+ [Integrieren Sie sozi-indizierte Bilder in das Studio-Beispiel](soci-indexing-example-integrate-studio.md)

# Berechtigungen für die SOCI-Indizierung
<a name="soci-indexing-setup"></a>

[Erstellen Sie SOCI-Indizes für Ihre Container-Images und speichern Sie sie in Amazon ECR, bevor Sie die SOCI-Indizierung mit [Amazon SageMaker Studio](studio-updated.md) oder Amazon Unified Studio verwenden. SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html)

**Topics**
+ [Voraussetzungen](#soci-indexing-setup-prerequisites)
+ [Erforderliche IAM-Berechtigungen](#soci-indexing-setup-iam-permissions)

## Voraussetzungen
<a name="soci-indexing-setup-prerequisites"></a>
+ AWS-Konto mit einer [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)(IAM-) Rolle mit Verwaltungsberechtigungen
  + [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
  + [Amazon SageMaker KI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs.html)
+ [Private Amazon ECR-Repositorys](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) zum Speichern Ihrer Container-Images
+ [AWS CLI Version 2.0\$1](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html), konfiguriert mit entsprechenden Anmeldeinformationen
+ Die folgenden Container-Tools:
  + Erforderlich: [soci-snapshotter](https://github.com/awslabs/soci-snapshotter)
  + Optionen:
    + [nerdctl](https://github.com/containerd/nerdctl)
    + [Fink](https://github.com/runfinch/finch)

## Erforderliche IAM-Berechtigungen
<a name="soci-indexing-setup-iam-permissions"></a>

Ihre IAM-Rolle benötigt Berechtigungen für:
+  SageMaker KI-Ressourcen (Domains, Bilder, App-Konfigurationen) erstellen und verwalten.
  + Sie können die [SageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) AWS verwaltete Richtlinie verwenden. Weitere Informationen zu Berechtigungen finden Sie unter[AWS verwaltete Richtlinie: AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess).
+ [IAM-Berechtigungen für die Übertragung eines Images in ein privates Amazon ECR-Repository](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push-iam.html).

# Erstellen Sie SOCI-Indizes mit nerdctl und einem SOCI-CLI-Beispiel
<a name="soci-indexing-example-create-indexes"></a>

Die folgende Seite enthält ein Beispiel für die Erstellung von SOCI-Indizes mit nerdctl und SOCI CLI.

**Beispiel für das Erstellen von SOCI-Indizes**

1. Stellen Sie zunächst Ihre Variablen für die folgenden AWS CLI Befehle ein. Im Folgenden finden Sie ein Beispiel für die Einrichtung Ihrer Variablen.

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

   Variablendefinitionen:
   + `ACCOUNT_ID`ist deine AWS-Konto ID
   + `REGION`ist das AWS-Region Ihrer privaten Amazon ECR-Registrierung
   + `REPOSITORY_NAME`ist der Name Ihrer privaten Amazon ECR-Registrierung
   + `ORIGINAL_IMAGE_TAG`ist das Tag Ihres Originalbilds
   + `SOCI_IMAGE_TAG`ist das Tag Ihres sozi-indexierten Bildes

1. Installieren Sie die erforderlichen Tools:

   ```
   # 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. Stellen Sie Ihre Registrierungsvariablen ein:

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

1. Exportieren Sie Ihre Region und authentifizieren Sie sich bei 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. Rufen Sie Ihr ursprüngliches Container-Image ab:

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

1. Erstellen Sie den SOCI-Index:

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

1. Push das SOCI-indizierte Bild:

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

Dieser Prozess erstellt zwei Artefakte für das ursprüngliche Container-Image in Ihrem ECR-Repository:
+ SOCI-Index — Metadaten ermöglichen verzögertes Laden
+ Image-Index-Manifest — OCI-konformes Manifest

# Integrieren Sie sozi-indizierte Bilder in das Studio-Beispiel
<a name="soci-indexing-example-integrate-studio"></a>

Sie müssen auf das Soci-Indexed-Image-Tag verweisen, um mit Soci-Index indizierte Bilder in Studio verwenden zu können, und nicht auf das ursprüngliche Container-Image-Tag. Verwenden Sie das Tag, das Sie bei der SOCI-Konvertierung angegeben haben (z. B. in). `SOCI_IMAGE_TAG` [Erstellen Sie SOCI-Indizes mit nerdctl und einem SOCI-CLI-Beispiel](soci-indexing-example-create-indexes.md)

**Beispiel für die Integration von SOCI-indexierten Bildern**

1. Stellen Sie zuerst Ihre Variablen für die folgenden AWS CLI Befehle ein. Im Folgenden finden Sie ein Beispiel für die Einrichtung Ihrer Variablen.

   ```
   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"
   ```

   Variablendefinitionen:
   + `ACCOUNT_ID`ist deine AWS-Konto ID
   + `REGION`ist das AWS-Region Ihrer privaten Amazon ECR-Registrierung
   + `IMAGE_NAME`ist der Name Ihres Bildes SageMaker 
   + `IMAGE_CONFIG_NAME`ist der Name Ihrer SageMaker Image-Konfiguration
   + `ROLE_ARN`ist der ARN Ihrer Ausführungsrolle mit den unter [Erforderliche IAM-Berechtigungen](soci-indexing-setup.md#soci-indexing-setup-iam-permissions) aufgeführten Berechtigungen
   + `DOMAIN_ID`ist die [Domain-ID](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view.html)
**Anmerkung**  
Wenn Sie das Image an ein SageMaker Unified Studio-Projekt anhängen und wissen möchten, welche Domain verwendet werden soll, finden Sie weitere Informationen unter [Anzeigen der mit Ihrem Projekt verknüpften SageMaker KI-Domänendetails](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain).
   + `SOCI_IMAGE_TAG`ist das Tag Ihres von Social indexierten Bildes

1. Exportiere deine Region:

   ```
   export AWS_REGION=$REGION
   ```

1. Erstelle ein SageMaker Bild:

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

1. Erstellen Sie eine SageMaker Image-Version mit Ihrem SOCI-Index-URI:

   ```
   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. Erstellen Sie eine Anwendungs-Image-Konfiguration und aktualisieren Sie Ihre Amazon SageMaker AI-Domain, sodass sie das benutzerdefinierte Image für Ihre App enthält. Sie können dies für den auf Code-OSS basierenden Code-Editor, Visual Studio Code — Open Source (Code-Editor) und JupyterLab Anwendungen tun. Wählen Sie die unten stehende Anwendungsoption, um die Schritte anzuzeigen.

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

   Erstellen Sie eine Anwendungs-Image-Konfiguration für den 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 } }'
   ```

   Aktualisieren Sie Ihre Amazon SageMaker AI-Domain, sodass sie das benutzerdefinierte Bild für den Code-Editor enthält:

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

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

   Erstellen Sie eine Anwendungs-Image-Konfiguration für 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 } }'
   ```

   Aktualisieren Sie Ihre Amazon SageMaker AI-Domain, sodass sie das benutzerdefinierte Bild enthält für JupyterLab:

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

------

1. Nachdem Sie Ihre Domain so aktualisiert haben, dass sie Ihr benutzerdefiniertes Image enthält, können Sie mit Ihrem benutzerdefinierten Image eine Anwendung in Studio erstellen. Wenn Sie [Starten eines benutzerdefinierten Images in Studio](studio-updated-byoi-how-to-launch.md) sicherstellen, dass Sie Ihr benutzerdefiniertes Image verwenden.