Amazon VPC 内のリソースへのアクセス権を SageMaker 処理ジョブに付与する - Amazon SageMaker

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

Amazon VPC 内のリソースへのアクセス権を SageMaker 処理ジョブに付与する

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

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

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

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

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

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

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

以下は、 CreateProcessingJobオペレーションの呼び出しに含める VpcConfigパラメータの例です。

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

SageMaker 処理用のプライベート VPC の設定

SageMaker 処理ジョブ用にプライベート 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/MyBucket) が解決されるようにします。デフォルトの DNS 設定を使用しない場合は、エンドポイントルートテーブルを設定することで、処理ジョブのデータの場所の指定に使用する URL が解決されるようにします。VPC エンドポイントルートテーブルについては、Amazon VPC ユーザーガイドの「ゲートウェイエンドポイントのルーティング」を参照してください。

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

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

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

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

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

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

CloudWatch ログとメトリクスを使用して Amazon SageMaker Processing Jobs をモニタリングする

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