エラスティックリソースプールは、Elastic Algorithm Service (EAS) が提供するサービスレベルのハイブリッドリソーススケジューリング戦略です。この機能により、専用リソースグループにデプロイされたサービスがビジネスピーク時にスケールアウトをトリガーし、専用リソースが不足した場合に、従量課金のパブリックリソースグループに新しいレプリカを自動的にバーストできます。これにより、サービスのオートスケーリング機能が確保されます。
メリット
リソースグループの容量制限を突破:専用リソースグループの容量が枯渇した場合でも、サービスのスケールアウト時にパブリックリソースプールの従量課金インスタンスを自動的に使用できます。これにより、QPS や CPU 使用率などのメトリックに基づく水平方向のオートスケーリングが、専用リソースグループ内の物理ノード数によって制限されなくなります。
コスト最適化:ベースラインワークロードは低コストのプリペイドリソースで処理し、ピーク需要時のみオンデマンドの従量課金リソースを使用します。これにより、ピーク負荷に対応するために過剰な専用リソースを維持する必要がなくなり、全体的なリソースコストを削減できます。
仕組み
エラスティックリソースプールのスケジューリングロジックは、コストと安定性のバランスを取るために明確な優先順位に従います。
スケールアウト
サービスがスケールアウトをトリガーすると、EAS スケジューラはまず、そのサービスの専用リソースグループ内に新しいインスタンスを作成しようと試みます。
専用リソースグループにインスタンス作成に必要なリソース(利用可能なノードがない、またはインスタンス要件を満たすのに十分な CPU、メモリ、GPU の残り容量がないなど)が不足している場合、スケジューラはエラスティックリソースプールの設定時に指定したインスタンスタイプを使用して、パブリックリソースグループに新しいインスタンスをプロビジョニングします。
スケールイン
サービスがスケールインをトリガーすると、システムはまずパブリックリソースグループ内のインスタンスを終了します。
パブリックリソースグループ内のすべてのエラスティックインスタンスが終了した後でのみ、システムは専用リソースグループ内のインスタンスをスケールインします。この戦略により、より高コストなエラスティックリソースを優先的にリリースしながら、安定したベースラインインスタンスを維持できます。
前提条件
専用リソースグループを作成済みである必要があります。詳細については、「EAS リソースグループの操作」をご参照ください。
構成
サービスデプロイ時に有効化
コンソール
-
PAI コンソールにログインします。ページ上部でリージョンを選択し、目的のワークスペースを選択してから、Elastic Algorithm Service (EAS) をクリックします。
-
[サービスのデプロイ] をクリックします。[カスタムモデルのデプロイ] セクションで、[カスタムデプロイ] をクリックします。
Custom Deployment ページの Resource Information セクションで、以下の主要パラメーターを設定します。その他のパラメーターについては、「カスタムデプロイ」をご参照ください。
パラメーター
説明
Resource Type
EAS Resource Group を選択します。
Resource Group
既存の専用リソースグループを選択します。
Elastic Resource Pool
Elastic Resource Pool スイッチをオンにして、Resource Specification を選択します。
この機能を設定すると、サービスのスケールアウト時に専用リソースグループで提供可能なリソースを超えるリソースが必要となった場合、設定された従量課金のパブリックリソース上に新しいインスタンスが自動的に起動され、パブリックリソースグループのインスタンスとして請求されます。スケールイン時には、パブリックリソースグループ内のサービスインスタンスが最初に終了されます。

Deploy をクリックします。
JSON
エラスティックリソースプールを有効化するための主要パラメーターは以下のとおりです。その他のパラメーターについては、「JSON デプロイメント」をご参照ください。
resource_burstable:このパラメーターを true に設定すると、エラスティックリソースプールが有効になります。
cloud.networking:エラスティックリソースプールを有効化する際は、このフィールドを使用してサービスの VPC を設定し、エラスティックスケーリング中のネットワーク可用性を確保します。
重要専用リソースグループを使用する場合、VPC はリソースグループレベルで設定できますが、専用リソースグループの場合はサービスレベル(cloud.networking フィールドを使用)でのみ設定可能です。
cloud.computing:パブリックリソースにスケールアウトされるインスタンスに使用できるインスタンスタイプです。詳細については、「パブリックリソースの使用」をご参照ください。
以下の例は JSON 構成を示しています:
{
"model_path": "http://examplebucket.oss-cn-shanghai.aliyuncs.com/models/lr.pmml",
"name": "test_burstable_service",
"processor": "pmml",
"metadata": {
"instance": 1,
"cpu": 1,
"resource": "eas-r-xxx",
"resource_burstable": true
},
"cloud": {
"computing": {
"instance_type": "ecs.r7.2xlarge"
},
"networking": {
"security_group_id": "sg-uf68iou5an8j7sxd****",
"vswitch_id": "vsw-uf6nji7pzztuoe9i7****"
}
}
}デプロイ後に有効化または無効化
コンソール
-
PAI コンソールにログインします。ページ上部でリージョンを選択し、目的のワークスペースを選択してから、Elastic Algorithm Service (EAS) をクリックします。
デプロイ済みのサービスを見つけ、Actions 列の Update をクリックします。
Update Service ページで、Resource Information セクションに移動して、この機能を有効化または無効化します。
オートスケーリングを有効化する場合:
Resource Information セクションで、Elastic Resource Pool スイッチをオンにして、パブリックリソースグループ用のインスタンスタイプを設定します。
オートスケーリングを無効化する場合:
[Resource Information] セクションで、[Elastic Resource Pool] スイッチをオフにします。
Update をクリックします。
CLI
デプロイ済みのサービスに対してオートスケーリング機能を有効化または無効化するには、以下のコマンドを使用します。この例では Windows 64 ビット版クライアントを使用しています。
専用リソースグループにサービスをデプロイする際に cloud.networking パラメーターを設定していない場合、オートスケーリングを有効化しても、パブリックリソースグループにスケールアウトされたインスタンスは直接ネットワーク接続をサポートしません。
# サービスに対してエラスティックリソースプール機能を有効化します。
eascmdwin64.exe modify <service_name> -Dmetadata.resource_burstable=true
# サービスに対してエラスティックリソースプール機能を無効化します。
eascmdwin64.exe modify <service_name> -Dmetadata.resource_burstable=falseここで、<service_name> はデプロイ済みサービスの名前を指定します。
この変更は新しいサービスインスタンスにのみ影響し、既存のインスタンスは自動的に移行されません。たとえば、2 つのインスタンスが保留中の状態でエラスティックリソースプールを有効化しても、それらが自動的にパブリックリソースグループに移動することはありません。コンソールでインスタンスを再起動すると、その後パブリックリソースにスケジューリングされます。同様に、すでに使用中のサービスに対してオートスケーリングを無効化しても、パブリックリソースグループで実行中のインスタンスが自動的に専用リソースグループに戻ることはありません。
関連トピック
定義されたメトリックに基づいてインスタンスを自動的にスケーリングする方法については、「水平方向のオートスケーリング」をご参照ください。
スケジュール時刻に特定の数のレプリカに自動的にスケーリングする方法については、「スケジュールされたオートスケーリング」をご参照ください。