

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

# を使用して追跡サーバーを作成する AWS CLI
<a name="mlflow-create-tracking-server-cli"></a>

を使用して追跡サーバーを作成し、セキュリティをより詳細 AWS CLI にカスタマイズできます。

## 前提条件
<a name="mlflow-create-tracking-server-cli-prereqs"></a>

を使用して追跡サーバーを作成するには AWS CLI、以下が必要です。
+ **ターミナルへのアクセス権**。これには、ローカル IDEs、Amazon EC2 インスタンス、または が含まれます AWS CloudShell。
+ **開発環境へのアクセス権**。ローカルの IDE や、Studio または Studio Classic 内の Jupyter Notebook 環境が該当します。
+ **設定済みの AWS CLI インストール**。詳細については、「[AWS CLIの設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)」を参照してください。
+ **適切なアクセス許可を持つ IAM ロール**。以下の手順を実行するには、ご利用の環境に `iam:CreateRole`、`iam:CreatePolicy`、`iam:AttachRolePolicy`、および `iam:ListPolicies` のアクセス許可が必要です。これらのアクセス許可は、このユーザーガイドの手順を実行するために使用されるロールに必要です。このガイドの手順では、MLflow 追跡サーバーの実行ロールとして使用される IAM ロールを作成し、このロールが Amazon S3 バケット内のデータにアクセスできるようにします。さらに、MLflow SDK を介して追跡サーバーとやり取りするユーザーの IAM ロールに、MLflow API 呼び出すアクセス許可を付与するポリシーも作成します。詳細については、「[ロールのアクセス許可ポリシーの変更 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy)」を参照してください。

  SageMaker Studio ノートブックを使用している場合は、Studio ユーザープロファイルのサービスロールを更新し、これらの IAM アクセス許可を付与してください。サービスロールを更新するには、SageMaker AI コンソールに移動し、使用しているドメインを選択します。次に、そのドメインで、使用しているユーザープロファイルを選択します。サービスロールがリストに表示されます。IAM コンソールに移動し、**[ロール]** でそのサービスロールを検索し、`iam:CreateRole`、`iam:CreatePolicy`、`iam:AttachRolePolicy`、および `iam:ListPolicies` アクションを許可するポリシーでロールを更新してください。

## AWS CLI モデルをセットアップする
<a name="mlflow-create-tracking-server-cli-setup"></a>

ターミナル内の以下のコマンドラインステップに従って、MLflow で Amazon SageMaker AI AWS CLI の を設定します。

1. の更新バージョンをインストールします AWS CLI。詳細については、「*AWS CLI ユーザーガイド*」の「[AWS CLIの最新バージョンをインストールまたは更新する](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。

1. 次のコマンドを使用して、 AWS CLI がインストールされていることを確認します。

   ```
   aws sagemaker help
   ```

   `q` を押してプロンプトを終了します。

   トラブルシューティングのヘルプについては、[一般的な設定の問題のトラブルシューティング](mlflow-troubleshooting.md) を参照してください。

## MLflow インフラストラクチャを設定する
<a name="mlflow-create-tracking-server-cli-infra-setup"></a>

次のセクションでは、MLflow 追跡サーバーと、追跡サーバーに必要な Amazon S3 バケットおよび IAM ロールを併せて設定する方法を説明します。

### S3 バケットを作成する
<a name="mlflow-infra-setup-s3-bucket"></a>

ターミナル内で、次のコマンドを使用して、汎用 Amazon S3 バケットを作成します。

**重要**  
アーティファクトストアに Amazon S3 URI を指定するときは、Amazon S3 バケットが追跡サーバー AWS リージョン と同じ にあることを確認します。**クロスリージョンアーティファクトストレージはサポートされていません**。

```
bucket_name=bucket-name
region=valid-region

aws s3api create-bucket \
  --bucket $bucket_name \
  --region $region \
  --create-bucket-configuration LocationConstraint=$region
```

出力は次の例に類似したものになります:

```
{
    "Location": "/bucket-name"
}
```

### IAM 信頼ポリシーを設定する
<a name="mlflow-create-tracking-server-cli-trust-policy"></a>

次の手順に従って、IAM 信頼ポリシーを作成します。ロールおよび信頼ポリシーの詳細については、「*AWS Identity and Access Management ユーザーガイド*」の「[ロールに関する用語と概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)」を参照してください。

1. ターミナル内で、次のコマンドを使用して `mlflow-trust-policy.json` というファイルを作成します。

   ```
   cat <<EOF > /tmp/mlflow-trust-policy.json
   {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [                     
                         "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
   EOF
   ```

1. ターミナル内で、次のコマンドを使用して `custom-policy.json` というファイルを作成します。

   ```
   cat <<EOF > /tmp/custom-policy.json
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:Get*",
                   "s3:Put*",
                   "sagemaker:AddTags",
                   "sagemaker:CreateModelPackageGroup",
                   "sagemaker:CreateModelPackage",
                   "sagemaker:DescribeModelPackageGroup",
                   "sagemaker:UpdateModelPackage",
                   "s3:List*"
               ],
               "Resource": "*"
           }
       ]
   }
   EOF
   ```

1. 信頼ポリシーを使用してロールを作成します。次に、MLflow がアカウント内の Amazon S3 と SageMaker Model Registry にアクセスすることを許可する IAM ロールポリシーをアタッチします。MLflow には、Amazon S3 (追跡サーバーのアーティファクトストア) と SageMaker Model Registry (自動モデル登録) へのアクセス権が必要です。
**注記**  
既存のロールを更新する場合は、代わりに次のコマンドを使用します。`aws iam update-assume-role-policy --role-name $role_name --policy-document file:///tmp/mlflow-trust-policy.json`

   ```
   role_name=role-name
   
   aws iam  create-role \
     --role-name $role_name \
     --assume-role-policy-document file:///tmp/mlflow-trust-policy.json
   
   aws iam put-role-policy \
     --role-name $role_name \
     --policy-name custom-policy \
     --policy-document file:///tmp/custom-policy.json
   
   role_arn=$(aws iam get-role --role-name  $role_name --query 'Role.Arn' --output text)
   ```

## MLflow 追跡サーバーを作成する
<a name="mlflow-create-tracking-server-cli-create"></a>

ターミナル内で API を使用して`create-mlflow-tracking-server`、 AWS リージョン 任意の に追跡サーバーを作成します。最長で 25 分かかる場合があります。

`--tracking-server-config` パラメータを使用して、追跡サーバーのサイズを指定することもできます。`"Small"`、`"Medium"`、`"Large"` の中から選択します。デフォルトの MLflow 追跡サーバーの設定サイズは `"Small"` です。ログに記録されるデータ量、ユーザー数、使用頻度など、追跡サーバーの予想使用量に応じてサイズを選択できます。詳細については、「[MLflow 追跡サーバーのサイズ](mlflow.md#mlflow-create-tracking-server-sizes)」を参照してください。

次のコマンドは、自動モデル登録を有効にして新しい追跡サーバーを作成します。自動モデル登録を無効にするには、`--no-automatic-model-registration` を指定します。

追跡サーバーを作成したら、MLflow UI を起動できます。詳細については、「[署名付き URL を使用して MLflow UI を起動する](mlflow-launch-ui.md)」を参照してください。

**注記**  
追跡サーバーが作成されるまでに、最長で 25 分かかる場合があります。25 分経っても追跡サーバーが作成されない場合は、必要な IAM アクセス許可があるか確認してください。IAM アクセス許可の詳細については、「[MLflow の IAM アクセス許可を設定する](mlflow-create-tracking-server-iam.md)」を参照してください。追跡サーバーは、正常に作成されると自動的に起動します。

追跡サーバーを作成するときは、最新バージョンを指定することをお勧めします。使用できるバージョンの詳細については、「[追跡サーバーのバージョン](mlflow.md#mlflow-create-tracking-server-versions)」を参照してください。

デフォルトでは、作成された追跡サーバーが最新バージョンです。ただし、基盤となる MLflow API が変更される可能性があるため、常に最新バージョンを明示的に指定することをお勧めします。

```
ts_name=tracking-server-name
region=valid-region
version=valid-version        


aws sagemaker create-mlflow-tracking-server \
 --tracking-server-name $ts_name \
 --artifact-store-uri s3://$bucket_name \
 --role-arn $role_arn \
 --automatic-model-registration \
 --region $region \
 --mlflow-version $version
```

出力は次の例のようになります: 

```
{
    "TrackingServerArn": "arn:aws:sagemaker:region:123456789012:mlflow-tracking-server/tracking-server-name"
}
```

**重要**  
**後で使用するために、追跡サーバーの ARN を書き留めておきます。**クリーンアップ手順には `$bucket_name` も必要です。