View a markdown version of this page

HyperPod Ray Endpoint Operator のインストール - Amazon SageMaker AI

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

HyperPod Ray Endpoint Operator のインストール

HyperPod Ray Endpoint Operator は、HyperPod で Ray クラスターの認証されたパブリックエンドポイントを生成します。インストール後、 をセットアップしなくても、インターネットアクセスを使用してどこからでも Ray Dashboard に安全にアクセスし、ジョブを送信およびモニタリングし、ログとクラスターメトリクスを表示できますkubectl port-forward。

重要

インストールする前に、HyperPod Ray Endpoint Operator のセキュリティのベストプラクティス「」でデプロイのセキュリティ保護に関するガイダンスを確認してください。

前提条件

  • SageMaker Spaces アドオンはアクティブで、ウェブブラウザアクセスが有効になっています。HyperPod Ray Endpoint Operator はそれに依存します。詳細については、「Spaces アドオンのセットアップ」を参照してください。

  • kubectl および helmがインストールされ、クラスター用に がkubectl設定されています。

  • Amazon EKS Pod Identity Agent アドオンがクラスターにインストールされます (KMS 署名に必要)。詳細については、「Amazon EKS ユーザーガイド」の「EKS Pod Identity Agent のセットアップ」を参照してください。

HyperPod へのオペレータのインストールに関する一般的な情報については、「オペレータのインストール」を参照してください。

認証の仕組み

HyperPod Ray Endpoint Operator は、有効期間の短い JSON ウェブトークン (JWTs) を使用して Ray クラスターダッシュボードへのアクセスを認証します。ダッシュボード URL をリクエストすると、オペレーターは Amazon EKS API サーバーを介して ID を検証し、Ray クラスターを作成したことを確認し、署名付き URL を返します。この URL を開くと、オペレーターはトークンをセッション Cookie と交換します。

トークンとセッション Cookie はどちらも 1 つの Ray クラスターのパブリックエンドポイントに限定されます。HyperPod Ray Endpoint Operator の認証されたパスを介して他のクラスターにアクセスするために使用することはできません。

JWTsは、30 分ごとにローテーションするキーで署名されます。 AWS KMS キーが設定されると、ローテーターは AWS KMS を使用して署名キーマテリアルを生成します。 AWS KMS キーが設定されていない場合、ローテーターは署名キーをローカルで生成します。 AWS KMS キーは、キー生成イベントのout-of-band失効メカニズムと CloudTrail 監査証跡を提供するため、 キーを設定することをお勧めします。

KMS 署名を設定する (推奨)

HyperPod Ray Endpoint Operator は、30 分ごとに署名キーをローテーションします。 AWS KMS キーを設定すると、ローテーターはそれを使用して新しい署名キーマテリアルを生成します。これにより、ローカルで生成されたキーでは使用できない 2 つの追加機能が提供されます。

  • AWS KMS キーを無効にすると、クラスターへのアクセスを必要とせずにすべてのセッションを取り消すことができます。

  • CloudTrail は、監査のために各キー生成イベントを記録します。

KMS 署名を設定するには、次の手順を実行します。

  1. AWS KMS キーを作成します。詳細については、「AWS KMS デベロッパーガイド」の「キーの作成」を参照してください。

    aws kms create-key \ --key-spec SYMMETRIC_DEFAULT \ --key-usage ENCRYPT_DECRYPT \ --description "HyperPod Ray Endpoint Operator JWT signing"
  2. 次の最小アクセス許可ポリシーを使用して IAM ロールを作成します。詳細については、「 IAM ユーザーガイド」の「IAM ロールの作成」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:region:account-id:key/key-id" } ] }
  3. Pod Identity の関連付けを作成します。詳細については、「Amazon EKS ユーザーガイド」の「EKS Pod Identity で IAM ロールを引き受けるように Kubernetes サービスアカウントを設定する」を参照してください。

    aws eks create-pod-identity-association \ --cluster-name eks-cluster-name \ --namespace hyperpod-ray \ --service-account hyperpod-ray-endpoint-operator-jwt-rotator \ --role-arn arn:aws:iam::account-id:role/role-name

HyperPod Ray Endpoint Operator をインストールする

  1. sagemaker-hyperpod-cli リポジトリのクローンを作成し、最新のリリースタグを確認します。

    git clone https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli git checkout $(git tag --sort=-v:refname | head -n 1)
  2. KMS ベースの署名を使用して をインストールします (推奨)。

    helm upgrade --install hyperpod-ray-endpoint-operator \ ./helm_chart/HyperPodHelmChart/charts/hyperpod-ray-endpoint-operator \ --namespace hyperpod-ray \ --create-namespace \ --set region=region \ --set domain=your-route53-domain \ --set manager.enableEndpointsByDefault=true|false \ --set kmsKeyArn="arn:aws:kms:region:account-id:key/key-id"

    KMS なしで をインストールするには (署名キーはローカルで生成されます)。

    helm upgrade --install hyperpod-ray-endpoint-operator \ ./helm_chart/HyperPodHelmChart/charts/hyperpod-ray-endpoint-operator \ --namespace hyperpod-ray \ --create-namespace \ --set region=region \ --set domain=your-route53-domain \ --set manager.enableEndpointsByDefault=true|false

    説明は以下のとおりです。

    • domain は、SageMaker Spaces アドオンが設定された Route 53 ドメインです。

    • manager.enableEndpointsByDefault は、認証されたダッシュボードエンドポイントがすべての Ray リソースに対して自動的に作成されるかどうかを制御します。に設定するとtrue、すべての Ray リソース (RayCluster、RayJob、RayService、RayCronJob) がエンドポイントを自動的に取得します。個々のリソースは、メタデータ注釈access.sagemaker.amazonaws.com/enabled: "false"に を追加してオプトアウトできます。に設定するとfalse、リソースが で明示的にオプトインしない限り、エンドポイントは作成されませんaccess.sagemaker.amazonaws.com/enabled: "true"。

  3. オペレータポッドが実行されていることを確認します。

    kubectl get pods -n hyperpod-ray

署名付き URL を生成する

HyperPod Ray Endpoint Operator をインストールしたら、HyperPod CLI を使用して Ray クラスターダッシュボードの署名付き URL を生成します。

hyp create ray-dashboard-connection \ --cluster-name ray-cluster-name \ --namespace namespace

このコマンドは、現在の kubeconfig コンテキストを介して認証し、クラスター所有者であることを確認し、存続期間の短い署名付き URL を返します。ブラウザで URL を開き、Ray ダッシュボードにアクセスします。

注記

署名付き URL を生成するには、Kubernetes ユーザーまたはサービスアカウントに connection.access.sagemaker.amazonaws.com API グループのcreateRayDashboardConnectionリソースに対するアクセス許可が必要です。

プログラムによるジョブの送信では、URLs を手動で生成するのではなく、PyPI ウェブサイトの toolkit-for-ray-on-sagemaker-ai Python ライブラリをsagemaker_ray://アドレススキームで使用します。

ray job submit --address "sagemaker_ray://cluster-name/namespace" -- python train.py

sagemaker_ray:// アドレススキームは、ターミナル出力またはログに URL を公開せずに認証を処理します。

アンインストール

helm uninstall hyperpod-ray-endpoint-operator -n hyperpod-ray

次の手順

インストール後、クラスター内アクセスの保護、セッションの管理、ダッシュボードの使用状況の監査に関するベストプラクティスHyperPod Ray Endpoint Operator のセキュリティのベストプラクティスを確認してください。