を使用した低レイテンシーのリアルタイム推論 AWS PrivateLink - Amazon SageMaker

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

を使用した低レイテンシーのリアルタイム推論 AWS PrivateLink

Amazon SageMaker は、マルチ AZ 配置を使用して高可用性と耐障害性を維持しながら、リアルタイム推論のレイテンシーを低く抑えます。アプリケーションレイテンシーは、インフラストラクチャーまたはオーバーヘッドレイテンシーとモデル推論レイテンシーという 2 つの主要な要素で構成されています。オーバーヘッドレイテンシーが減少することにより、より複雑で詳細かつ正確なモデルのデプロイや、スケーラブルで保守が容易なマイクロサービスモジュールへのモノリシックアプリケーションの分割といった、新たな可能性が開かれます。デプロイ SageMaker を使用すると、リアルタイム推論のレイテンシーを AWS PrivateLink 短縮できます。を使用すると AWS PrivateLink、インターフェイス VPC エンドポイントを使用して、スケーラブルな方法で仮想プライベートクラウド (VPC) からすべての SageMaker API オペレーションにプライベートにアクセスできます。インターフェイス VPC エンドポイントは、すべての SageMaker API コールのエントリポイントとして機能するプライベート IP アドレスを持つサブネット内の Elastic Network Interface です。

デフォルトでは、2 つ以上のインスタンスを持つ SageMaker エンドポイントは少なくとも 2 つの AWS アベイラビリティーゾーン (AZsにデプロイされ、任意の AZ のインスタンスは呼び出しを処理できます。その結果、オーバーヘッドレイテンシーの原因となる 1 つ以上の AZ「ホップ」が発生します。privateDNSEnabled オプションを true に設定して AWS PrivateLink デプロイを実行すると、次の 2 つの目的を達成できます。

  • すべての推論トラフィックを VPC 内に保持する。

  • 呼び出しトラフィックは、ランタイムの使用時に発信したクライアントと同じ AZ SageMaker に保持されます。これにより AZ 間の「ホップ」が回避され、オーバーヘッドレイテンシが減少します。

このガイドの以下のセクションでは、 AWS PrivateLink デプロイによるリアルタイム推論のレイテンシーを減少する方法を示します。

をデプロイするには AWS PrivateLink、まずエンドポイントに接続する VPC のインターフェイス SageMaker エンドポイントを作成します。 「インターフェイス VPC エンドポイントを使用して AWS サービスにアクセスする」の手順に従って、インターフェイスエンドポイントを作成してください。エンドポイントの作成中、コンソールインターフェイスで次の設定を選択します。

  • [その他の設定][DNS 名を有効化] チェックボックスをオンにします。

  • SageMaker エンドポイントで使用する適切なセキュリティグループとサブネットを選択します。

また、VPC の DNS ホスト名が有効になっていることも確認してください。VPC の DNS 属性を変更する方法の詳細については、「VPC の DNS 属性の表示と更新」を参照してください。

VPC に SageMaker エンドポイントをデプロイする

オーバーヘッドレイテンシーを低減するには、 のデプロイ時に指定したのと同じサブネットを使用して SageMaker エンドポイントを作成します AWS PrivateLink。これらのサブネットは、次のコードスニペットに示すように、クライアントアプリケーションの AZ と一致する必要があります。

model_name = '<the-name-of-your-model>' vpc = 'vpc-0123456789abcdef0' subnet_a = 'subnet-0123456789abcdef0' subnet_b = 'subnet-0123456789abcdef1' security_group = 'sg-0123456789abcdef0' create_model_response = sagemaker_client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, PrimaryContainer = { 'Image': container, 'ModelDataUrl': model_url }, VpcConfig = { 'SecurityGroupIds': [security_group], 'Subnets': [subnet_a, subnet_b], }, )

前述のコードスニペットは、開始する前に の手順に従っていることを前提としています。

SageMaker エンドポイントを呼び出す

最後に、 SageMaker ランタイムクライアントを指定し、次のコードスニペットに示すように SageMaker エンドポイントを呼び出します。

endpoint_name = '<endpoint-name>' runtime_client = boto3.client('sagemaker-runtime') response = runtime_client.invoke_endpoint(EndpointName=endpoint_name, ContentType='text/csv', Body=payload)

エンドポイント設定の詳細については、「リアルタイム推論用のモデルをデプロイする」を参照してください。