

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

# Amazon VPC のリソースへのアクセス権を SageMaker AI トレーニングジョブに付与する
<a name="train-vpc"></a>

**注記**  
トレーニングジョブの場合は、デフォルトのテナンシー VPC でのみサブネットを設定できます。このデフォルトでは、インスタンスが共有ハードウェアで実行されます。VPC のテナンシー属性の詳細については、「[ハードウェア専有インスタンス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)」を参照してください。

## Amazon VPC アクセス用にトレーニングジョブを設定する
<a name="train-vpc-configure"></a>

トレーニングジョブへのアクセスを制御するには、インターネットにアクセスできないプライベートサブネットを備えた Amazon VPC で実行します。

サブネットとセキュリティグループ ID を指定して、VPC で実行されるようにトレーニングジョブを設定します。トレーニングジョブのコンテナのサブネットを指定する必要はありません。Amazon AI SageMaker は、Amazon ECR からトレーニングコンテナイメージを自動的にプルします。

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

API を使用するには、[CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) オペレーションの `VpcConfig` パラメータでサブネットとセキュリティグループ ID を指定します。SageMaker AI は、サブネットとセキュリティグループの詳細を使用してネットワークインターフェイスを作成してトレーニングコンテナにアタッチします。ネットワークインターフェイスは、VPC 内でのトレーニングコンテナへのネットワーク接続を提供します。これにより、トレーニングジョブは VPC に配置されているリソースに接続できます。

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

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

## SageMaker AI トレーニング用のプライベート VPC を設定する
<a name="train-vpc-vpc"></a>

プライベート VPC を SageMaker AI トレーニングジョブ用に設定する場合、次のガイドラインに従います。VPC のセットアップについては、Amazon VPC ユーザーガイドの「[VPC とサブネットの使用](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/working-with-vpcs.html)」を参照してください。**

**Topics**
+ [サブネットに十分な IP アドレスを確保する](#train-vpc-ip)
+ [Amazon S3 VPC エンドポイントを作成する](#train-vpc-s3)
+ [カスタムエンドポイントポリシーを使用して S3 へのアクセスを制限する](#train-vpc-policy)
+ [ルートテーブルの設定](#train-vpc-route-table)
+ [VPC セキュリティグループを設定する](#train-vpc-groups)
+ [VPC の外部のリソースに接続する](#train-vpc-nat)
+ [CloudWatch のログとメトリクスを使って Amazon SageMaker トレーニングジョブをモニタリングする](#train-vpc-cloudwatch)

### サブネットに十分な IP アドレスを確保する
<a name="train-vpc-ip"></a>

Elastic Fabric Adapter (EFA) を使用しないトレーニングインスタンスには、少なくとも 2 つのプライベート IP アドレスが必要です。**EFA を使用するトレーニングインスタンスには、少なくとも 5 つのプライベート IP アドレスが必要です。詳細については、「Amazon EC2 ユーザーガイド」の 「[複数の IP アドレス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/MultipleIP.html)」を参照してください。

VPC サブネットには、トレーニングジョブの各インスタンス用プライベート IP アドレスが少なくとも 2 つ必要です。詳細については、*Amazon VPC ユーザーガイド*の [IPv4 用の VPC とサブネットのサイズ設定](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html#vpc-sizing-ipv4)を参照してください。

### Amazon S3 VPC エンドポイントを作成する
<a name="train-vpc-s3"></a>

トレーニングコンテナがインターネットにアクセスできないように VPC を設定した場合、アクセスを許可する VPC エンドポイントを作成しない限り、トレーニングコンテナはトレーニングデータを含む Amazon S3 バケットに接続できません。VPC エンドポイントを作成することで、データとモデルのアーティファクトを保存するバケットにトレーニングコンテナがアクセスできるようにします。プライベート VPC からのリクエストのみに S3 バケットへのアクセスを許可するカスタムポリシーも作成することをお勧めします。詳細については、[Amazon S3 のエンドポイント](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-s3.html)を参照してください。

**S3 VPC エンドポイントを作成するには**

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

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

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

1. **[Gateway]** (ゲートウェイ) タイプを選択します。

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

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

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

### カスタムエンドポイントポリシーを使用して S3 へのアクセスを制限する
<a name="train-vpc-policy"></a>

デフォルトのエンドポイントポリシーでは、VPC のすべてのユーザーまたはサービスに対して S3 へのフルアクセスが許可されています。S3 へのアクセスを詳細に制限するには、カスタムエンドポイントポリシーを作成します。詳細については、「[Amazon S3 のエンドポイントポリシー](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3)」を参照してください。バケットポリシーを使って、S3 バケットへのアクセスを Amazon VPC からのトラフィックのみに制限することもできます。詳細については、「[Amazon S3 バケットポリシー](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-s3-bucket-policies)」を参照してください。

#### トレーニングコンテナへのパッケージのインストールを制限する
<a name="train-vpc-policy-repos"></a>

デフォルトエンドポイントポリシーでは、ユーザーは、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/*" 
              ] 
         } 
    ] 
}
```

### ルートテーブルの設定
<a name="train-vpc-route-table"></a>

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

### VPC セキュリティグループを設定する
<a name="train-vpc-groups"></a>

分散型トレーニングでは、同じトレーニングジョブ内の異なるコンテナ間の通信を許可する必要があります。そのためには、同じセキュリティグループのメンバー間のインバウンド接続を許可するセキュリティグループのルールを設定します。EFA 対応インスタンスの場合は、インバウンド接続とアウトバウンド接続の両方が同じセキュリティグループからのすべてのトラフィックを許可するようにする必要があります。詳細については、「Amazon Virtual Private Cloud ユーザーガイド」の「[セキュリティグループのルール](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html#SecurityGroupRules)」を参照してください。**

### VPC の外部のリソースに接続する
<a name="train-vpc-nat"></a>

インターネットにアクセスできないように VPC を設定する場合、その VPC を使用するトレーニングジョブは、VPC の外部のリソースにアクセスできません。トレーニングジョブが VPC の外部のリソースにアクセスする必要がある場合は、次のいずれかのオプションを使用してアクセスを可能にします。
+ トレーニングジョブがインターフェイス VPC エンドポイントをサポートする AWS サービスにアクセスする必要がある場合は、そのサービスに接続するためのエンドポイントを作成します。インターフェイスエンドポイントをサポートするサービスのリストについては、「Amazon Virtual Private Cloud ユーザーガイド」の「[VPC エンドポイント](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html)」を参照してください。**インターフェイス VPC エンドポイントの作成の詳細については、*Amazon Virtual Private Cloud * [AWS Private Cloud ユーザーガイドの「インターフェイス VPC エンドポイント (PrivateLink)](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-interface.html)」を参照してください。
+ トレーニングジョブがインターフェイス VPC エンドポイントをサポートしていない AWS サービスまたは 外のリソースにアクセスする必要がある場合は AWS、NAT ゲートウェイを作成し、アウトバウンド接続を許可するようにセキュリティグループを設定します。VPC 用の NAT ゲートウェイのセットアップについては、*Amazon Virtual Private Cloud ユーザーガイド*の「[シナリオ 2: パブリックサブネットとプライベートサブネットを持つ VPC (NAT)](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html)」を参照してください。

### CloudWatch のログとメトリクスを使って Amazon SageMaker トレーニングジョブをモニタリングする
<a name="train-vpc-cloudwatch"></a>

Amazon SageMaker AI は、トレーニングジョブをモニタリングするための Amazon CloudWatch ログとメトリクスを提供します。CloudWatch は、CPU、GPU、メモリ、GPU メモリ、ディスクメトリクス、イベントログを提供します。Amazon SageMaker のトレーニングジョブのモニタリングの詳細については、「[Amazon CloudWatch における Amazon SageMaker AI メトリクス](monitoring-cloudwatch.md)」と「[SageMaker AI ジョブメトリクス](monitoring-cloudwatch.md#cloudwatch-metrics-jobs)」を参照してください。