Erste Schritte mit dem lokalen Modus
In den folgenden Abschnitten werden die Schritte beschrieben, die für den Einstieg in den lokalen Modus in Amazon SageMaker Studio unternommen werden müssen, darunter:
-
Erfüllen der Voraussetzungen
-
Festlegen von
EnableDockerAccess -
Docker-Installation
Voraussetzungen
Erfüllen Sie die folgenden Voraussetzungen, um den lokalen Modus in Studio-Anwendungen zu verwenden:
-
Um Images aus einem Repository von Amazon Elastic Container Registry abzurufen, muss das Konto, in dem das Amazon-ECR-Image gehostet wird, eine Zugriffsberechtigung für die Ausführungsrolle des Benutzers bereitstellen. Die Ausführungsrolle der Domain muss auch Amazon-ECR-Zugriff ermöglichen.
-
Stellen Sie mithilfe des folgenden Befehls sicher, dass Sie die neueste Version des Studio Python-SDK verwenden:
pip install -U sagemaker -
Um den lokalen Modus und Docker-Funktionen zu verwenden, legen Sie die folgenden Parameter der
DockerSettingsder Domain mithilfe der AWS Command Line Interface (AWS CLI) fest:EnableDockerAccess : ENABLED -
Mit
EnableDockerAccesskönnen Sie auch steuern, ob Benutzer in der Domain den lokalen Modus verwenden dürfen. Standardmäßig sind der lokale Modus und Docker-Funktionen in Studio-Anwendungen nicht zulässig. Weitere Informationen finden Sie unter Festlegen von EnableDockerAccess. -
Installieren Sie die Docker-CLI in der Studio-Anwendung, indem Sie die Schritte unter Docker-Installation befolgen.
-
Stellen Sie für Rootless-Docker-Konfiguration sicher, dass Ihre VPC über geeignete Endpunkte und Routing-Einstellungen für die von Ihnen gewünschten Docker-Registrys verfügt.
Festlegen von EnableDockerAccess
In den folgenden Abschnitten wird beschrieben, wie Sie EnableDockerAccess festlegen, wenn die Domain über öffentlichen Internetzugang verfügt oder sich im Modus VPC-only befindet.
Anmerkung
Änderungen an EnableDockerAccess gelten nur für Anwendungen, die nach der Aktualisierung der Domain erstellt wurden. Sie müssen nach dem Aktualisieren der Domain eine neue Anwendung erstellen.
Öffentlicher Internetzugang
Die folgenden Beispielbefehle veranschaulichen, wie Sie EnableDockerAccess beim Erstellen einer neuen Domain oder beim Aktualisieren einer bestehenden Domain mit öffentlichem Internetzugang festlegen:
# 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"}}'
VPC-only Modus
Wenn Sie eine Domain im VPC-only-Modus verwenden, werden Image-Push- und Pull-Anfragen von Docker über die Service-VPC und nicht über die vom Kunden konfigurierte VPC weitergeleitet. Aufgrund dieser Funktionalität können Administratoren eine Liste vertrauenswürdiger AWS-Konten konfigurieren, an die Benutzer Push- und Pull-Anfragen von Amazon ECR Docker durchführen können.
Wenn eine Image-Push- und Pull-Anfragen von Docker an ein AWS-Konto gesendet wird, der nicht in der Liste der vertrauenswürdigen AWS-Konten enthalten ist, schlägt die Anfrage fehl. Pull- und Push-Vorgänge von Docker außerhalb von Amazon Elastic Container Registry (Amazon ECR) werden im Modus nicht unterstützt.
Die folgenden werden AWS-Konten standardmäßig als vertrauenswürdig eingestuft:
-
Das Konto, das die SageMaker-AI-Domain hostet.
-
SageMaker-AI-Konten, die die folgenden SageMaker-Images hosten:
-
DLC-Framework-Images
-
Sklearn, Spark XBoost-Verarbeitungs-Images
-
Um eine Liste weiterer vertrauenswürdiger AWS-Konten zu konfigurieren, geben Sie den VpcOnlyTrustedAccounts-Wert wie folgt an:
aws --regionregion\ sagemaker update-domain --domain-iddomain-id\ --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED", "VpcOnlyTrustedAccounts": ["account-list"]}}'
Anmerkung
Wenn aktiviert Rootless-Docker-Konfiguration aktiviert ist, wird VpcOnlyTrustedAccounts ignoriert und der Docker-Datenverkehr wird durch Ihre VPC-Konfiguration geleitet, sodass Sie auf jede Registrierung zugreifen können, die Ihre VPC erreichen kann.
Rootless-Docker-Konfiguration
Wenn RootlessDocker aktiviert ist, verwendet Studio einen Rootless-Docker-DaemonRootlessDocker sind:
-
Auf Container-Ports kann über die Docker-Gateway-IP (
172.17.0.1) statt über localhost zugegriffen werden. -
Ihre VPC-Konfiguration bestimmt, auf welche Registrys für Docker-Operationen zugegriffen werden kann.
VpcOnlyTrustedAccountswird ignoriert und Docker-Datenverkehr wird durch Ihre VPC-Konfiguration geleitet.
Um Rootless Docker zu verwenden, müssen Sie und EnableDockerAccess und RootlessDocker auf ENABLEDfür Ihre DockerSettings festlegen. In den obigen Festlegen von EnableDockerAccess-Beispielen können Sie beispielsweise Ihre Domain-Einstellungen so ändern, dass sie Folgendes beinhalten:
'{"DockerSettings": {"EnableDockerAccess": "ENABLED", "RootlessDocker": "ENABLED"}}'
Docker-Installation
Zur Verwendung von Docker müssen Sie Docker manuell vom Terminal Ihrer Studio-Anwendung aus installieren. Die Schritte zur Installation von Docker unterscheiden sich, je nachdem, ob die Domain Zugang zum Internet hat oder nicht.
Internetzugang
Wenn die Domain mit öffentlichem Internetzugang oder im VPC-only-Modus mit eingeschränktem Internetzugang erstellt wurde, befolgen Sie die Schritte zur Installation von Docker.
-
(Optional) Wenn Ihre Domain im
VPC-only-Modus mit eingeschränktem Internetzugang erstellt wurde, erstellen Sie ein öffentliches NAT-Gateway mit Zugriff auf die Docker-Website. Detaillierte Anweisungen finden Sie unter NAT-Gateways. -
Navigieren Sie zum Terminal der Studio-Anwendung, in der Sie Docker installieren möchten.
-
Führen Sie den folgenden Befehl vom Terminal aus, um das Betriebssystem der Anwendung zurückzugeben:
cat /etc/os-release -
Folgen Sie bei der Installation von Docker den Anweisungen für das Betriebssystem der Anwendung im Beispiel-Repository des lokalen Modus von Amazon SageMaker AI
. Installieren Sie beispielsweise Docker auf Ubuntu gemäß dem Skript unter https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker_studio_docker_cli_install/sagemaker-ubuntu-focal-docker-cli-install.sh
unter Berücksichtigung der folgenden Punkte: -
Wenn verkettete Befehle fehlschlagen, führen Sie die Befehle nacheinander aus.
-
Studio unterstützt nur Docker-Version
20.10.X.und Docker Engine-API-Version1.41. -
Die folgenden Pakete sind für die Verwendung der Docker-CLI in Studio nicht erforderlich und ihre Installation kann übersprungen werden:
-
containerd.io -
docker-ce -
docker-buildx-plugin
-
Anmerkung
Sie müssen den Docker-Service in Ihren Anwendungen nicht starten. Die Instance, die die Studio-Anwendung hostet, führt den Docker-Service standardmäßig aus. Alle Docker-API-Aufrufe werden automatisch über den Docker-Service weitergeleitet.
-
-
Verwenden Sie den exponierten Docker-Socket für Docker-Interaktionen innerhalb von Studio-Anwendungen. Standardmäßig ist der folgende Socket verfügbar:
unix:///docker/proxy.sockDie folgende Umgebungsvariable der Studio-Anwendung
USERverwendet standardmäßig diesen exponierten Socket:DOCKER_HOST
Kein Internetzugang
Wenn die Domain im VPC-only-Modus ohne Internetzugang erstellt wurde, befolgen Sie die Schritte zur Installation von Docker.
-
Navigieren Sie zum Terminal der Studio-Anwendung, in der Sie Docker installieren möchten.
-
Führen Sie den folgenden Befehl vom Terminal aus, um das Betriebssystem der Anwendung zurückzugeben:
cat /etc/os-release -
Laden Sie die erforderlichen Docker–
.deb-Dateien auf Ihren lokalen Rechner herunter. Anweisungen zum Herunterladen der erforderlichen Dateien für das Betriebssystem der Studio-Anwendung finden Sie unter Installieren von Docker Engine. Installieren Sie beispielsweise Docker aus einem Paket auf Ubuntu und folgen Sie dabei den Schritten 1–4 unter Aus einem Paket installieren
. Beachten Sie dabei die folgenden Überlegungen: -
Installieren Sie Docker aus einem Paket. Die Verwendung anderer Methoden zur Installation von Docker schlägt fehl.
-
Installieren Sie die neuesten Pakete, die der Docker-Version
20.10.Xentsprechen. -
Die folgenden Pakete sind nicht erforderlich, um die Docker-CLI in Studio zu verwenden. Sie müssen Folgendes nicht installieren:
-
containerd.io -
docker-ce -
docker-buildx-plugin
-
Anmerkung
Sie müssen den Docker-Service in Ihren Anwendungen nicht starten. Die Instance, die die Studio-Anwendung hostet, führt den Docker-Service standardmäßig aus. Alle Docker-API-Aufrufe werden automatisch über den Docker-Service weitergeleitet.
-
-
Laden Sie die
.deb-Dateien in das Amazon-EFS-Dateisystem oder in das Amazon-EBS-Dateisystem der Anwendung hoch. -
Installieren Sie die
.deb-Paketedocker-ce-cliunddocker-compose-pluginmanuell vom Studio-Anwendungsterminal aus. Weitere Informationen und Anweisungen finden Sie in Schritt 5 unter Aus einem Paket installierenauf der Docker-Docs-Website. -
Verwenden Sie den exponierten Docker-Socket für Docker-Interaktionen innerhalb von Studio-Anwendungen. Standardmäßig ist der folgende Socket verfügbar:
unix:///docker/proxy.sockDie folgende Umgebungsvariable der Studio-Anwendung
USERverwendet standardmäßig diesen exponierten Socket:DOCKER_HOST