翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用してアプリを作成する AWS CLI
を使用してアプリケーションを作成し、セキュリティをより詳細 AWS CLI にカスタマイズできます。
前提条件
を使用してアプリを作成するには AWS CLI、以下が必要です。
-
ターミナルへのアクセス権。これには、ローカル IDEs、Amazon EC2 インスタンス、または が含まれます AWS CloudShell。
-
開発環境へのアクセス権。ローカルの IDE や、Studio または Studio Classic 内の Jupyter Notebook 環境が該当します。
-
設定済みの AWS CLI インストール。詳細については、「AWS CLIの設定」を参照してください。
-
適切なアクセス許可を持つ IAM ロール。以下の手順を実行するには、ご利用の環境に
iam:CreateRole、iam:CreatePolicy、iam:AttachRolePolicy、およびiam:ListPoliciesのアクセス許可が必要です。これらのアクセス許可は、このユーザーガイドの手順を実行するために使用されるロールに必要です。このガイドの手順では、MLflow アプリケーションの実行ロールとして使用される IAM ロールを作成し、Amazon S3 バケット内のデータにアクセスできるようにします。さらに、MLflow SDK を介してアプリを操作しているユーザーの IAM ロールに MLflow APIs を呼び出すアクセス許可を付与するポリシーが作成されます。詳細については、「ロールのアクセス許可ポリシーの変更 (コンソール)」を参照してください。SageMaker Studio ノートブックを使用している場合は、Studio ユーザープロファイルのサービスロールを更新し、これらの IAM アクセス許可を付与してください。サービスロールを更新するには、SageMaker AI コンソールに移動し、使用しているドメインを選択します。次に、そのドメインで、使用しているユーザープロファイルを選択します。サービスロールがリストに表示されます。IAM コンソールに移動し、[ロール] でそのサービスロールを検索し、
iam:CreateRole、iam:CreatePolicy、iam:AttachRolePolicy、およびiam:ListPoliciesアクションを許可するポリシーでロールを更新してください。
AWS CLI モデルのセットアップ
ターミナル内の以下のコマンドラインステップに従って、MLflow で Amazon SageMaker AI AWS CLI の を設定します。
-
の更新バージョンをインストールします AWS CLI。詳細については、「AWS CLI ユーザーガイド」の「AWS CLIの最新バージョンをインストールまたは更新する」を参照してください。
-
次のコマンドを使用して、 AWS CLI がインストールされていることを確認します。
aws sagemaker helpqを押してプロンプトを終了します。トラブルシューティングのヘルプについては、一般的な設定の問題のトラブルシューティング を参照してください。
MLflow インフラストラクチャを設定する
次のセクションでは、MLflow アプリと、アプリに必要な Amazon S3 バケットおよび IAM ロールを設定する方法を示します。
S3 バケットを作成する
ターミナル内で、次のコマンドを使用して、汎用 Amazon S3 バケットを作成します。
重要
アーティファクトストアに Amazon S3 URI を指定するときは、Amazon S3 バケットが MLflow アプリ AWS リージョン と同じ にあることを確認します。クロスリージョンアーティファクトストレージはサポートされていません。
bucket_name=bucket-nameregion=valid-regionaws s3api create-bucket \ --bucket$bucket_name\ --region$region\ --create-bucket-configuration LocationConstraint=$region
出力は次の例に類似したものになります:
{ "Location": "/bucket-name" }
IAM 信頼ポリシーを設定する
次の手順に従って、IAM 信頼ポリシーを作成します。ロールおよび信頼ポリシーの詳細については、「AWS Identity and Access Management ユーザーガイド」の「ロールに関する用語と概念」を参照してください。
-
ターミナル内で、次のコマンドを使用して
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 -
ターミナル内で、次のコマンドを使用して
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 -
信頼ポリシーを使用してロールを作成します。次に、MLflow がアカウント内の Amazon S3 と SageMaker Model Registry にアクセスすることを許可する IAM ロールポリシーをアタッチします。MLflow は、アプリのアーティファクトストアの Amazon S3 と、自動モデル登録の SageMaker Model Registry にアクセスできる必要があります。
注記
既存のロールを更新する場合は、代わりに次のコマンドを使用します。
aws iam update-assume-role-policy --role-name$role_name--policy-documentfile:///tmp/mlflow-trust-policy.jsonrole_name=role-nameaws iam create-role \ --role-name$role_name\ --assume-role-policy-document file:///tmp/mlflow-trust-policy.jsonaws iam put-role-policy \ --role-name$role_name\ --policy-namecustom-policy\ --policy-document file:///tmp/custom-policy.jsonrole_arn=$(aws iam get-role --role-name $role_name --query 'Role.Arn' --output text)
MLflow アプリを作成する
ターミナル内で API を使用してcreate-mlflow-app、 AWS リージョン 選択した にアプリケーションを作成します。このステップには通常約 2~3 分かかります。
次のコマンドは、自動モデル登録を有効にして新しいアプリを作成します。自動モデル登録を無効にするには、--no-automatic-model-registration を指定します。
アプリを作成したら、MLflow UI を起動できます。詳細については、「署名付き URL を使用して MLflow UI を起動する」を参照してください。
注記
アプリの作成が完了するまでに最大 2~3 分かかる場合があります。アプリの作成に 3 分以上かかる場合は、必要な IAM アクセス許可があることを確認してください。アプリを正常に作成すると、自動的に起動します。
デフォルトでは、作成されたアプリは最新バージョンであり、自動的に更新されます。
app_name=app-nameregion=valid-regionversion=valid-versionaws sagemaker create-mlflow-app \ --name$app_name\ --artifact-store-uri s3://$bucket_name\ --role-arn$role_arn\--automatic-model-registration\ --region$region
出力は次の例のようになります:
{ "AppArn": "arn:aws:sagemaker:region:123456789012:mlflow-app/app-name" }
重要
後で使用するために、アプリ ARN を書き留めます。クリーンアップ手順には $bucket_name も必要です。