前提条件 - Amazon SageMaker

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

前提条件

非同期エンドポイントを使用するには、まず以下の前提条件を満たしていることを確認してください。

  1. Amazon SageMaker 用の IAM ロールを作成します。

    非同期推論では、Amazon S3 バケット URI にアクセスする必要があります。これを容易にするために、実行可能で、Amazon S3 SageMaker と Amazon SNS にアクセスする権限を持つ IAM ロールを作成します。このロールを使用すると、 SageMaker 自分のアカウントで実行でき、Amazon S3 バケットと Amazon SNS トピックにアクセスできます。

    IAM ロールは IAM コンソール、、 AWS SDK for Python (Boto3)またはを使用して作成できます。 AWS CLI次の例は、IAM ロールを作成し、IAM コンソールで必要なポリシーをアタッチする方法を示しています。

    1. AWS Management Console にサインインし、https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

    2. IAM コンソールのナビゲーションペインで、[ロール][ロールを作成] の順に選択します。

    3. [信頼できるエンティティの種類の選択] で、[AWS サービス] を選択します。

    4. このロールを引き受けることを許可するサービスを選択します。この場合は、を選択しますSageMaker。その後、[Next] (次へ) を選択します。

      • これにより、Amazon S3、Amazon ECR、ログなどの関連サービスへのアクセスを許可する IAM ポリシーが自動的に作成されます。 CloudWatch

    5. [次へ: タグ] を選択します。

    6. (オプション) タグをキーバリューのペアとしてアタッチして、メタデータをロールに追加します。IAM でのタグの使用の詳細については、「IAM リソースのタグ付け」を参照してください。

    7. [次へ: レビュー] を選択します。

    8. [Role name] (ロール名) を入力します。

    9. 可能な場合は、ロール名またはロール名のサフィックスを入力します。 AWS ロール名はアカウント内で一意である必要があります。大文字と小文字は区別されません。例えば、PRODROLEprodrole というロール名を両方作成することはできません。 AWS 他のリソースがそのロールを参照している可能性があるため、作成後にロールの名前を編集することはできません。

    10. (オプション) [Role description] に、新しいロールの説明を入力します。

    11. ロール情報を確認し、ロールの作成 を選択します。

      SageMaker ロール ARN を書き留めておきます。コンソールを使用してロールの ARN を見つけるには、次を実行します。

      1. IAM コンソール (https://console.aws.amazon.com/iam/) に移動します。

      2. [Roles] (ロール) を選択します。

      3. [Search] (検索) フィールドにロール名を入力して、先ほど作成したロールを検索します。

      4. ロールを選択します。

      5. ロールの ARN は、[Summary] (概要) ページの上部にあります。

  2. Amazon SageMaker、Amazon S3、Amazon SNS のアクセス権限をIAMロールに追加します。

    ロールが作成されたら、Amazon S3、およびオプションで Amazon SNS のアクセス権限を IAM SageMaker ロールに付与します。

    IAM コンソールで、[Roles] (ロール) を選択します。[Search] (検索) フィールドにロール名を入力して、作成したロールを検索します。

    1. ロールを選択します。

    2. 次に、[Attach policies] (ポリシーをアタッチ) を選択します。

    3. Amazon SageMaker 非同期推論には次のアクションを実行するためのアクセス権限が必要です:"sagemaker:CreateModel"、、、"sagemaker:CreateEndpointConfig""sagemaker:CreateEndpoint""sagemaker:InvokeEndpointAsync"

      これらのアクションは AmazonSageMakerFullAccess ポリシーに含まれています。このポリシーを IAM ロールに追加します。[Search] (検索) フィールドで AmazonSageMakerFullAccess を検索します。AmazonSageMakerFullAccess を選択します。

    4. Attach policy] (ポリシーのアタッチ) を選択します。

    5. 次に [Attach Policies] (ポリシーをアタッチ) を選択して Amazon S3 の許可を追加します。

    6. [Create policy] (ポリシーを作成) を選択します。

    7. [JSON] タブを選択します。

    8. 次のポリシーステートメントを追加します。

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Effect": "Allow", "Resource": "arn:aws:s3:::bucket_name/*" } ] }
    9. [次へ : タグ] を選択します。

    10. [Policy name] (ポリシー名) を入力します。

    11. [ポリシーの作成] を選択します。

    12. Amazon SNS の許可を追加するには、Amazon S3 の許可を追加する場合と同じ手順を繰り返します。ポリシーステートメントについては、以下をアタッチします。

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "arn:aws:sns:<region>:<Account_ID>:<SNS_Topic>" } ] }
  3. 推論データ (機械学習モデル、サンプルデータなど) を Amazon S3 にアップロードする。

  4. 構築済みの Docker 推論イメージを選択するか、独自の推論 Docker イメージを作成する。

    SageMaker には、組み込みアルゴリズム用のコンテナと、Apache MXNet、、、Chainerなどの最も一般的な機械学習フレームワーク用のビルド済みDockerイメージが用意されています。 TensorFlow PyTorch SageMaker利用可能なイメージの全リストについては、「利用可能なDeep Learning Containers イメージ」を参照してください。 SageMaker 用意されているコンテナーを使用する場合は、コンテナー内の環境変数を設定することで、エンドポイントのタイムアウトとペイロードサイズをデフォルトから増やすことができます。フレームワークごとに異なる環境変数を設定する方法については、非同期エンドポイントの「モデルの作成」ステップを参照してください。

    SageMaker 既存のコンテナがどれもニーズを満たさず、独自のコンテナも存在しない場合は、新しい Docker コンテナを作成する必要があるかもしれません。Docker イメージの作成方法の詳細については、「独自の推論コードの使用」を参照してください。

  5. Amazon SNS トピックを作成する (オプション)。

    処理を完了したリクエストに関する通知を送信する Amazon Simple Notification Service (Amazon SNS) トピックを作成します。Amazon SNS は、メッセージング指向のアプリケーション向け通知サービスです。HTTP、Amazon SQS、メールなどのトランスポートプロトコルを選択することにより、複数のサブスクライバーがタイムクリティカルなメッセージの「プッシュ」通知を要求および受信します。Amazon SNS トピックは、EndpointConfig API を使用して AsyncInferenceConfig を指定する際、EndpointConfig オブジェクトを作成するときに指定できます。

    手順に従って、Amazon SNS トピックを作成してサブスクライブします。

    1. Amazon SNS コンソールを使用してトピックを作成します。手順については、Amazon Simple Notification Service 開発者ガイドの「Amazon SNS トピックを作成する」を参照してください。

    2. トピックを受信します。手順については、Amazon Simple Notification Service 開発者ガイドの「Amazon SNS トピックをサブスクライブする」を参照してください。

    3. トピックのサブスクリプションの確認を求めるメールを受信したら、サブスクリプションを確認します。

    4. その Amazon リソースネーム (ARN) をメモします。作成した Amazon SNS AWS トピックはアカウント内の別のリソースで、固有の ARN があります。ARN の形式は次のとおりです。

      arn:aws:sns:aws-region:account-id:topic-name

    Amazon SNS の詳細については、「Amazon SNS 開発者ガイド」を参照してください。