SageMaker AI 処理ジョブに Amazon VPC 内のリソースへのアクセスを許可する - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker AI 処理ジョブに Amazon VPC 内のリソースへのアクセスを許可する

データと処理ジョブへのアクセスを制御するには、プライベートサブネットを使用して Amazon VPC を作成します。VPC の作成と設定の詳細については、「Amazon VPC ユーザーガイド」の「Amazon VPC の使用を開始する」を参照してください。

VPC フローログを使用すると、処理コンテナで送受信するすべてのネットワークトラフィックをモニタリングできます。詳細についてはアマゾン VPC ユーザーガイドVPC フローログを参照してください。

このドキュメントでは、処理ジョブの Amazon VPC 設定を追加する方法を説明します。

Amazon VPC アクセス用の処理ジョブを設定する

処理ジョブを設定を設定するには、VPC 内のサブネットとセキュリティグループ ID を指定します。処理コンテナのサブネットを指定する必要はありません。Amazon SageMaker AI は、Amazon ECR から処理コンテナを自動的にプルします。コンテナの処理の詳細については、「SageMaker Processing によるデータ変換ワークロード」を参照してください。

処理ジョブを作成するときは、SageMaker AI コンソールまたは API を使用して VPC 内のサブネットとセキュリティグループを指定できます。

API を使用するには、 CreateProcessingJob オペレーションの NetworkConfig.VpcConfig パラメータでサブネットとセキュリティグループ ID を指定します。SageMaker AI は、サブネットとセキュリティグループの詳細を使用してネットワークインターフェイスを作成し、処理コンテナにアタッチします。ネットワークインターフェイスは、VPC 内での処理コンテナへのネットワーク接続を提供します。これにより、処理ジョブは VPC に配置されているリソースに接続できます。

VpcConfig への呼び出しに含める CreateProcessingJob パラメータの例は、以下のとおりです。

VpcConfig: { "Subnets": [ "subnet-0123456789abcdef0", "subnet-0123456789abcdef1", "subnet-0123456789abcdef2" ], "SecurityGroupIds": [ "sg-0123456789abcdef0" ] }

SageMaker AI 処理用にプライベート VPC を設定する

SageMaker AI 処理ジョブ用にプライベート VPC を設定するときは、次のガイドラインを使用します。VPC のセットアップについては、Amazon VPC ユーザーガイドの「VPC とサブネットの使用」を参照してください。

サブネットに十分な IP アドレスを確保する

VPC サブネットには、処理ジョブの各インスタンス用プライベート IP アドレスが少なくとも 2 つ必要です。詳細については、Amazon VPC ユーザーガイドIPv4 用の VPC とサブネットのサイズ設定を参照してください。

Amazon S3 VPC エンドポイントを作成する

処理コンテナがインターネットにアクセスできないように VPC を設定した場合、アクセスを許可する VPC エンドポイントを作成しない限り、処理コンテナはデータを含む Amazon S3 バケットに接続できません。VPC エンドポイントを作成することで、データとモデルのアーティファクトを保存するバケットに処理コンテナがアクセスできるようにします。プライベート VPC からのリクエストのみに S3 バケットへのアクセスを許可するカスタムポリシーも作成することをお勧めします。詳細については、Amazon S3 のエンドポイントを参照してください。

S3 VPC エンドポイントを作成するには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [エンドポイント] を選択し、[エンドポイントの作成] を選択します。

  3. [Service Name] (サービス名) で、com.amazonaws.region.s3 を選択します。この場合、region は VPC が存在するリージョンの名前になります。

  4. [VPC]] で、エンドポイントに使用する VPC を選択します。

  5. [Configure route tables] で、エンドポイントで使用するルートテーブルを選択します。VPC サービスで、選択した各ルートテーブルに、S3 トラフィックを新しいエンドポイントに向けるルートが自動的に追加されます。

  6. [ポリシー] で、[フルアクセス] を選択して、VPC 内の任意のユーザーまたはサービスによる S3 サービスへのフルアクセスを許可します。アクセスを詳細に制限するには、[カスタム] を選択します。詳細については、カスタムエンドポイントポリシーを使用して S3 へのアクセスを制限する を参照してください。

カスタムエンドポイントポリシーを使用して S3 へのアクセスを制限する

デフォルトのエンドポイントポリシーでは、VPC のすべてのユーザーまたはサービスに対して S3 へのフルアクセスが許可されています。S3 へのアクセスを詳細に制限するには、カスタムエンドポイントポリシーを作成します。詳細については、「Amazon S3 のエンドポイントポリシー」を参照してください。バケットポリシーを使って、S3 バケットへのアクセスを Amazon VPC からのトラフィックのみに制限することもできます。詳細については、「Amazon S3 バケットポリシー」を参照してください。

処理コンテナへのパッケージのインストールの制限

デフォルトエンドポイントポリシーでは、ユーザーは、Amazon Linux と Amazon Linux 2 のリポジトリからのパッケージを処理コンテナにインストールできます。ユーザーがそのリポジトリからパッケージをインストールしないようにする場合は、Amazon Linux と Amazon Linux 2 のリポジトリへのアクセスを明示的に拒否するカスタムエンドポイントポリシーを作成します。これらのリポジトリへのアクセスを拒否するポリシーの例を次に示します。

{ "Statement": [ { "Sid": "AmazonLinuxAMIRepositoryAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::packages.*.amazonaws.com/*", "arn:aws:s3:::repo.*.amazonaws.com/*" ] } ] } { "Statement": [ { "Sid": "AmazonLinux2AMIRepositoryAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::amazonlinux.*.amazonaws.com/*" ] } ] }

ルートテーブルの設定

エンドポイントルートテーブルのデフォルトの DNS 設定を使って、標準 Amazon S3 URL (例えば、http://s3-aws-region.amazonaws.com/amzn-s3-demo-bucket) が解決されるようにします。デフォルトの DNS 設定を使用しない場合は、エンドポイントルートテーブルを設定することで、処理ジョブのデータの場所の指定に使用する URL が解決されるようにします。VPC エンドポイントルートテーブルについては、Amazon VPC ユーザーガイドの「ゲートウェイエンドポイントのルーティング」を参照してください。

VPC セキュリティグループを設定する

分散型処理では、同じ処理ジョブ内の異なるコンテナ間の通信を許可する必要があります。そのためには、同じセキュリティグループのメンバー間のインバウンド接続を許可するセキュリティグループのルールを設定します。詳細については、「セキュリティグループのルール」を参照してください。

VPC の外部のリソースに接続する

モデルを実行している VPC 外のリソースに接続する場合は、次のいずれかを実行します。

  • 他の AWS サービスに接続する – モデルがインターフェイス Amazon VPC エンドポイントをサポートする AWS サービスにアクセスする必要がある場合は、そのサービスに接続するためのエンドポイントを作成します。インターフェイスエンドポイントをサポートするサービスのリストについては、「 AWS PrivateLink ユーザーガイド」のAWS 「 と統合する のサービス AWS PrivateLink」を参照してください。インターフェイス VPC エンドポイントの作成の詳細については、 AWS PrivateLink 「 ユーザーガイド」の「インターフェイス VPC エンドポイントを使用して AWS サービスにアクセスする」を参照してください。

  • インターネット経由でリソースに接続する — モデルがインターネットにアクセスできるサブネットを持たない Amazon VPC 内のインスタンスで実行されている場合、モデルはインターネット上のリソースにアクセスできません。モデルがインターフェイス VPC エンドポイントをサポートしていない AWS サービス、または 外のリソースにアクセスする必要がある場合は AWS、パブリックサブネットのパブリック NAT ゲートウェイを使用してインターネットにアクセスできるプライベートサブネットでモデルを実行していることを確認してください。プライベートサブネットでモデルを実行したら、プライベートサブネットからパブリックサブネットのパブリック NAT ゲートウェイへのアウトバウンド接続を許可するようにセキュリティグループとネットワークアクセスコントロールリスト (NACL) を設定します。詳細については、「Amazon VPC ユーザーガイ」ドの「NAT ゲートウェイ」を参照してください。

CloudWatch のログとメトリクスを使って Amazon SageMaker Processing ジョブをモニタリングする

Amazon SageMaker AI は、トレーニングジョブをモニタリングするための Amazon CloudWatch logsとメトリクスを提供します。CloudWatch は、CPU、GPU、メモリ、GPU メモリ、ディスクメトリクス、イベントログを提供します。SageMaker 処理ジョブの詳細については、「Amazon CloudWatch で Amazon SageMaker AI をモニタリングするためのメトリクス」と「SageMaker AI ジョブとエンドポイントメトリクス」を参照してください。