翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SageMaker AI を使用すると、 AWS Systems Manager (SSM) を使用して、モデルが推論用にデプロイされている Docker コンテナに安全に接続できます。これにより、コンテナへのシェルレベルのアクセスが可能になり、コンテナ内で実行されているプロセスをデバッグし、Amazon CloudWatch でコマンドと応答を記録できます。また、コンテナをホストする ML インスタンス AWS PrivateLink への接続を設定して、SSM 経由でコンテナにプライベートにアクセスすることもできます。
警告
SSM アクセスを有効にすると、エンドポイントのパフォーマンスに影響することがあります。この機能は、本番環境のエンドポイントではなく、開発用またはテスト用のエンドポイントで使用することをお勧めします。また、SageMaker AI は自動的にセキュリティパッチを適用し、10 分以内に障害のあるエンドポイントインスタンスを置き換えるか終了します。ただし、SSM が有効な本番稼働用バリアントを持つエンドポイントの場合、SageMaker AI はセキュリティパッチ適用を遅らせ、障害のあるエンドポイントインスタンスを 1 日で置き換えまたは終了して、デバッグできるようにします。
次のセクションでは、この機能の使用方法について詳しく説明します。
許可リスト
この機能を使用するには、カスタマーサポートに連絡し、アカウントを許可リストに登録する必要があります。アカウントが SSM アクセスの許可リストに登録されていない場合、SSM アクセスが有効なエンドポイントを作成することはできません。
SSM アクセスを有効にする
エンドポイントの既存コンテナへの SSM アクセスを有効にするには、EnableSSMAccess
パラメータを true
に設定した新しいエンドポイント設定でエンドポイントを更新します。次の例は、エンドポイント設定のサンプルを示しています。
{
"EndpointConfigName": "endpoint-config-name"
,
"ProductionVariants": [
{
"InitialInstanceCount": 1,
"InitialVariantWeight": 1.0,
"InstanceType": "ml.t2.medium",
"ModelName": model-name
,
"VariantName": variant-name
,
"EnableSSMAccess": true,
},
]
}
SSM アクセスを有効にする方法の詳細については、「EnableSSMAccess」を参照してください。
IAM の設定
エンドポイントの IAM アクセス権限
エンドポイントインスタンスの SSM アクセスを有効にしている場合、SageMaker AI はエンドポイントインスタンスの開始時に SSM エージェントを起動および管理します。SSM エージェントが SSM サービスと通信できるようにするには、エンドポイントが実行される実行ロールに次のポリシーを追加します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
}
]
}
ユーザーの IAM アクセス許可
次のポリシーを追加して、IAM ユーザーに SSM ターゲットに接続するための SSM セッションアクセス許可を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:StartSession",
"ssm:TerminateSession"
],
"Resource": "*"
}
]
}
次のポリシーを使用して、IAM ユーザーが接続できるエンドポイントを制限できます。イタリック体のプレースホルダーテキスト
を独自の情報に置き換えます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:StartSession",
],
"Resource": [
"sagemaker-endpoint-arn
"
]
}
]
}
を使用した SSM アクセス AWS PrivateLink
エンドポイントがパブリックインターネットに接続されていない Virtual Private Cloud (VPC) 内で実行されている場合、 AWS PrivateLink を使用して SSM を有効にできます。 は、エンドポイントインスタンス、SSM、Amazon EC2 間の Amazon ネットワークへのすべてのネットワークトラフィック AWS PrivateLink を制限します。 AWS PrivateLinkで SSM アクセスを設定する方法の詳細については、「Session Manager の VPC エンドポイントを設定する」を参照してください。
Amazon CloudWatch Logs でのロギング
SSM アクセスが有効なエンドポイントでは、Amazon CloudWatch Logs を使用して SSM エージェントからのエラーをログに記録できます。CloudWatch Logs でエラーをログに記録する方法の詳細については、「Logging session activity」を参照してください。ログは、エンドポイントロググループ /aws/sagemaker/endpoints/
下の SSM ログストリーム endpoint-name
にあります。ログの表示方法の詳細については、「CloudWatch Logs に送信されたログデータを表示する」を参照してください。variant-name
/ec2-instance-id
/ssm
エンドポイントの背後にある本番稼働用バリアントには、複数のモデルコンテナを含めることができます。各モデルコンテナのログはログストリームに記録されます。各ログの先頭には [sagemaker ssm
logs][container-name]
が付きます。ここで、container-name
はコンテナに付けた名前か、container_0
、container_1
などのデフォルトの名前です。
モデルコンテナへのアクセス
エンドポイントインスタンスのモデルコンテナにアクセスするには、ターゲット ID が必要です。ターゲット ID は次のいずれかの形式です。
-
sagemaker-endpoint:
単一コンテナエンドポイントのコンテナ用endpoint-name
_variant-name
_ec2-instance-id
-
sagemaker-endpoint:
マルチコンテナエンドポイントのコンテナ用endpoint-name
_variant-name
_ec2-instance-id
_container-name
次の例は、 を使用して AWS CLI 、ターゲット ID を使用してモデルコンテナにアクセスする方法を示しています。
aws ssm start-session --target sagemaker-endpoint:prod-image-classifier_variant1_i-003a121c1b21a90a9_container_1
Amazon CloudWatch Logs でのロギング で述べているようにログ記録を有効にすると、SSM ログストリームの最初にリストされているすべてのコンテナのターゲット ID を確認できます。
注記
-
SSM を使用して SageMaker AI MarketPlace から取得した 1P アルゴリズムコンテナやモデルのコンテナに接続することはできません。ただし、 AWS が提供する深層学習コンテナ (DLC) や、所有する任意のカスタムコンテナには接続できます。
-
モデルコンテナのネットワーク分離を有効にして、アウトバウンドのネットワーク呼び出しを行えないようにしている場合、そのコンテナの SSM セッションを開始することはできません。
-
1 つの SSM セッションから 1 つのコンテナにのみアクセスできます。同じエンドポイントの背後にあるコンテナであっても、別のコンテナにアクセスするには、そのエンドポイントのターゲット ID を使用して新しい SSM セッションを開始します。