# モデルをAWS EKSにデプロイする

> モデルをAWS EKSにデプロイする - AWS Elastic Kubernetes Service（EKS）にDataRobotモデルをデプロイして監視します。

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-07-15T05:55:44.910114+00:00` (UTC).

## Primary page

- [モデルをAWS EKSにデプロイする](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [開始する前に](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#before-you-start): In-page section heading.
- [AWSおよびEKSのインストールと設定](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#install-and-configure-aws-and-eks): In-page section heading.
- [モデルをEKSにデプロイする](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#deploy-models-to-eks): In-page section heading.
- [PPS Dockerイメージを設定して実行する](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#configure-and-run-the-pps-docker-image): In-page section heading.
- [Amazon ECRにDockerイメージをプッシュする](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#push-the-docker-image-to-amazon-ecr): In-page section heading.
- [Amazon EKSクラスターの作成](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#create-an-amazon-eks-cluster): In-page section heading.
- [MLOpsパッケージをKubernetesにデプロイする](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#deploy-the-mlops-package-to-kubernetes): In-page section heading.
- [水平ポッド自動スケーリングの設定](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#set-up-horizontal-pod-autoscaling): In-page section heading.
- [モデルを世界に公開する（ロードバランシング）](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#expose-your-model-to-the-world-load-balancing): In-page section heading.
- [削除](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#clean-up): In-page section heading.
- [まとめ](https://docs.datarobot.com/ja/docs/classic-ui/integrations/aws/deploy-dr-models-on-aws.html.md#wrap-up): In-page section heading.

## Documentation content

DataRobot MLOpsでは、DataRobotモデルを社内のAWS Elastic Kubernetes Service（EKS）クラスターにデプロイできますが、MLOpsの [監視](https://docs.datarobot.com/ja/docs/classic-ui/mlops/monitor/index.html.md) および [ガバナンス](https://docs.datarobot.com/ja/docs/classic-ui/mlops/governance/index.html.md) 機能も引き続き利用できます。

このエクスポート可能なDataRobotモデルは、 [ポータブル予測サーバー（PPS）](https://docs.datarobot.com/ja/docs/reference/glossary/index.html.md#portable-prediction-server-pps) と呼ばれています。 このモデルはDockerコンテナに組み込まれるため、柔軟性と移植性があり、Kubernetesなどのコンテナオーケストレーションツールに適しています。

次の手順で、DataRobotモデルをEKSにデプロイする方法を説明します。

## 開始する前に

> [!NOTE] 本機能の提供について
> DataRobotモデルをEKSにデプロイするには、「MMMモデルパッケージのエクスポートを有効化」フラグを必要とするモデルパッケージをエクスポートする必要があります。 この機能を有効にする方法については、DataRobotの担当者にお問い合わせください。

Amazon EKSにデプロイする前に、EKSクラスターを作成する必要があります。 クラスターをスピンアップするには、次の2つの方法があります。

- eksctlツール（Amazon EKSのCLI）を使用。 これは、EKSクラスターを作成する最も簡単で最速の方法です。
- AWSマネジメントコンソールを使用。 この手法では、きめ細かいチューニング（IAMロールやVPCの作成など）が可能です。

このトピックでは、 eksctl ツールを使用したインストール方法を紹介します。 詳細な手順については、 [Amazon EKSの開始方法 – eksctl](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html) を参照してください。

いずれかのツールがすでにインストールおよび設定されている場合は、対応する手順をスキップできます。

### AWSおよびEKSのインストールと設定

以下で説明する手順に従って、Amazon Web Services CLI、EKS、およびKubernetes CLIをインストールして設定します。

1. AWS CLI（バージョン2）をインストールします。 aws --version
2. AWS CLIの認証情報を設定します。
3. eksctlをインストールします。 eksctl version
4. kubectl（KubernetesクラスターのCLI）をインストールして設定します。 kubectl version --short --client

## モデルをEKSにデプロイする

DataRobotモデルをKubernetesインフラストラクチャにデプロイすることは、主に次の3つのアクティビティで構成されます。

- MLOpsパッケージを含むDockerコンテナを準備し、コンテナレジストリにプッシュする
- DataRobotで外部デプロイを作成する
- Kubernetesクラスターを作成する

### PPS Dockerイメージを設定して実行する

次の手順を完了するには、まずモデルを生成し、 [MLOpsモデルパッケージを作成](https://docs.datarobot.com/ja/docs/classic-ui/mlops/deployment/registry/reg-create.html.md) します。

DataRobotは、ポータブル予測サーバーの設定とDockerイメージの作成に役立つUIを提供します。 次の手順を実行します。

1. ポータブル予測サーバー（PPS）を設定します 。
2. PPS Dockerイメージを取得します 。
3. Dockerにイメージをロードします 。
4. モデルパッケージをダウンロードします 。
5. Dockerイメージを実行します 。
6. モデルを監視します 。
7. 外部デプロイを作成します 。 デプロイの作成時は、MLOpsモデルIDとMLOpsデプロイIDをメモしておいてください。 MLOpsパッケージをKubernetesにデプロイするときに、これらのIDが必要になります。

### Amazon ECRにDockerイメージをプッシュする

Amazon EKSクラスターがコンテナイメージをダウンロードして実行できるように、コンテナイメージをAmazon Elastic Container Registry（ECR）にアップロードする必要があります。

1. Elastic Container Registryに対して認証するようにDocker CLIツールを設定します。 awsecrget-login-password--regionus-east-1|dockerlogin--usernameXXX--password-stdin00000000000.xxx.ecr.us-east-1.amazonaws.com
2. ビルドしたばかりのDockerイメージをECRにプッシュします。 dockerpush00000000000.xxx.ecr.us-east-1.amazonaws.com/house-regression-model:latest

### Amazon EKSクラスターの作成

DockerイメージがECRに保存され、外部デプロイが作成されたので、Amazon EKSクラスターをスピンアップできます。 EKSクラスターには、次のいずれかを備えたVPCが必要です。

- 2つのパブリックサブネットと2つのプライベートサブネット
- 3つのパブリックサブネットを持つVPC

Amazon EKSでは、少なくとも2つのアベイラビリティーゾーンにサブネットが必要です。 パブリックサブネットとプライベートサブネットを持つVPCをお勧めします。Kubernetesがパブリックサブネットにパブリックロードバランサーを作成して、プライベートサブネット内のノードで実行されるポッドへのトラフィックを制御できるようにします。

Amazon EKSクラスターを作成するには、以下の手順を実行します。

1. （オプション）VPCに2つのパブリックサブネットと2つのプライベートサブネットを作成または選択します。 パブリックサブネットに対して「パブリックIPv4アドレスの自動割り当て」が有効になっていることを確認します。 備考対応する--vpc-private-subnetsおよび--vpc-public-subnetsパラメーターを指定しない場合、eksctlツールは必要なすべてのサブネットをバックグラウンドで作成します。
2. クラスターを作成します。 eksctlcreatecluster\--namehouse-regression\--ssh-access\--ssh-public-keymy-public-key.pub\--managed 備考--managedパラメーターを使用すると、Amazon EKSマネージド型ノードグループが有効になります。 この機能は、Amazon EKS Kubernetesクラスターのノード（EC2インスタンス）のプロビジョニングとライフサイクル管理を自動化します。 クラスター用に最適化されたノードグループをプロビジョニングできます。 EKSは、最新バージョンのKubernetesとホストOSでノードを最新の状態に保ちます。eksctlツールでは、コマンドラインフラグまたは設定ファイルを使用して、特定のサイズとインスタンスタイプファミリーを選択できます。--ssh-public-keyはオプションですが、クラスターでノードグループを作成するときに指定することを強くお勧めします。 このオプションは、マネージド型ノードグループ内のノードへのSSHアクセスを有効にします。 SSHアクセスを有効にすると、インスタンスに接続して、問題がある場合に診断情報を収集できます。 ノードグループの作成後にリモートアクセスを有効にすることはできません。クラスターのプロビジョニングには通常10～15分かかり、結果は次のようになります。
3. クラスターの準備ができたら、kubectlの設定が正しいかどうかテストします。 kubectlgetsvc

### MLOpsパッケージをKubernetesにデプロイする

MLOpsパッケージをKubernetesにデプロイするには、以下の手順を実行します。

1. 次のように、Kubernetesの名前空間を作成します。 kubectlcreatenamespacehouse-regression-namespace
2. 以下の内容をローカルマシンのyamlファイル（この場合はhouse-regression-service.yaml）に保存し、プロジェクトの値に置き換えます。画像、DataRobot APIトークン、モデルID、デプロイIDの値を指定します。 （MLOpsで外部デプロイを作成したときに、IDを保存しておく必要があります。） apiVersion:v1kind:Servicemetadata:name:house-regression-servicenamespace:house-regression-namespacelabels:app:house-regression-appspec:selector:app:house-regression-appports:-protocol:TCPport:80targetPort:8080---apiVersion:apps/v1kind:Deploymentmetadata:name:house-regression-deploymentnamespace:house-regression-namespacelabels:app:house-regression-appspec:replicas:3selector:matchLabels:app:house-regression-apptemplate:metadata:labels:app:house-regression-appspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:-matchExpressions:-key:beta.kubernetes.io/archoperator:Invalues:-amd64containers:-name:house-regression-modelimage:<your_aws_account_endpoint>.ecr.us-east-1.amazonaws.com/house-regression-model:latestenv:-name:PORTABLE_PREDICTION_API_WORKERS_NUMBERvalue:"2"-name:PORTABLE_PREDICTION_API_MONITORING_ACTIVEvalue:"True"-name:PORTABLE_PREDICTION_API_MONITORING_SETTINGSvalue:spooler_type=filesystem;directory=/tmp;max_files=50;file_max_size=10240000;model_id=<your mlops_model_id_obtained_at_step_5>;deployment_id=<your mlops_deployment_id_obtained_at_step_5>-name:MONITORING_AGENTvalue:"True"-name:MONITORING_AGENT_DATAROBOT_APP_URLvalue:https://app.datarobot.com/-name:MONITORING_AGENT_DATAROBOT_APP_TOKENvalue:<your_datarobot_api_token>ports:-containerPort:80
3. Kubernetesサービスとデプロイを作成します。 kubectlapply-fhouse-regression-service.yaml
4. 名前空間に存在するすべてのリソースを表示します。 kubectlgetall-nhouse-regression-namespace

### 水平ポッド自動スケーリングの設定

Kubernetes Horizontal Pod Autoscalerは、デプロイ、レプリケーションコントローラー、またはレプリカセット内のポッド数を、そのリソースのCPU使用率に基づいて自動的にスケーリングします。 これにより、需要の増加に合わせてアプリケーションをスケールアップしたり、リソースが不要になったときにスケールバックしたりできるため、他のアプリケーション用にノードを解放できます。 目標のCPU使用率を設定すると、Horizontal Pod Autoscalerはアプリケーションをスケールアップまたはスケールバックして、その目標を達成しようとします。

1. php-apacheデプロイ用のHorizontal Pod Autoscalerリソースを作成します。 kubectlautoscaledeploymenthouse-regression-deployment-nhouse-regression-namespace--cpu-percent=80--min=1--max=5
2. 名前空間に存在するすべてのリソースを表示します。 kubectlgetall-nhouse-regression-namespace Horizontal Pod Autoscalerがリソースリストに表示されます。

### モデルを世界に公開する（ロードバランシング）

Amazon EKSは、LoadBalancerタイプのKubernetesサービスを介して、Amazon EC2インスタンスノードで実行されているポッドのNetwork Load BalancerとClassic Load Balancerをサポートします。

1. 各アベイラビリティーゾーンでパブリックサブネットを（サブネットIDの辞書式順序で）選択する代わりに、VPC内のパブリックサブネットにタグを付けて、外部ロードバランサーにこれらのサブネットのみを使用することをKubernetesが認識できるようにします。 kubernetes.io/role/elb = 1
2. 次の方法でプライベートサブネットにタグを付けて、内部ロードバランサーにサブネットを使用できることを、Kubernetesが認識できるようにします。 kubernetes.io/role/internal-elb = 1 重要2020年3月26日以降は、Amazon EKS AWS CloudFormationテンプレートを使用してVPCを作成する場合、テンプレートによって作成されたサブネットは、ここで説明されているように作成時にタグ付けされます。
3. kubectlexposeコマンドを使用して、デプロイ用のKubernetesサービスを生成します。 kubectlexposedeploymenthouse-regression-deployment-nhouse-regression-namespace--name=house-regression-external--type=LoadBalancer--port80--target-port8080
4. 次のコマンドを実行して、サービスの詳細を取得します。 kubectlgetservice-nhouse-regression-namespace
5. EXTERNAL_IPアドレスをコピーします。
6. EXTERNAL_IPアドレスを使用してモデルをスコアリングします。 curl-XPOSThttp://<EXTERNAL_IP>/predictions-H"Content-Type: text/csv"--data-binary@kaggle_house_test_dataset.csv
7. 作成した外部デプロイのサービス正常性を確認します。 スコアリングリクエストが統計に含まれるようになりました。

### 削除

1. サンプルサービス、デプロイ、ポッド、名前空間を削除します。 kubectldeletenamespacehouse-regression-namespace
2. クラスターを削除します。 eksctldeletecluster--namehouse-regression

## まとめ

この基本ステップでは、ポータブル予測サーバー（PPS）を介してAmazon EKSプラットフォームにDataRobotモデルをデプロイし、監視する方法について説明しました。 PPSはMLOpsエージェントと共にDockerコンテナに組み込まれているため、主要なIT（サービスの正常性、リクエスト数など）および機械学習（精度、データドリフトなど）指標をクラウドで取得し、一元化されたDataRobot MLOpsダッシュボードでそれらを監視できます。

DataRobot PPSを使用すると、ベンダーロックインを回避し、クラウド環境間で簡単に移行したり、複数の環境に同時にモデルをデプロイしたりできます。
