Platform for AI (PAI) のElastic Algorithm Service (EAS) は、elastic resource pool機能を提供します。 この機能により、リソースグループのノードリソースが不足している場合でも、専用リソースグループにデプロイされているサービスをスケールアウトできます。 サービスのスケールアウト中に専用リソースグループ内のノードリソースが不十分な場合、従量課金のパブリックリソースグループにサービスの新しいインスタンスが作成され、パブリックリソースグループのルールに基づいて課金されます。 サービスのスケールイン中に、パブリックリソースグループに存在するサービスインスタンスが最初にリリースされます。
前提条件
専用リソースグループが作成されます。 詳細については、「専用リソースグループの操作」をご参照ください。
背景情報
EAS専用リソースグループのサブスクリプションまたは従量課金インスタンスを作成できます。 これにより、費用対効果の高い方法で十分なリソースを購入してコストを削減できます。
実際の使用時には、専用リソースグループ内のサービスをスケーラブルにすることができます。 たとえば、ピーク時には、オフピーク時に自動的にスケールインできる従量課金リソースが必要になる場合があります。 このニーズに応えるために、EASは、サービスインスタンスをサービスに自動的に追加および削除できるようにする自動水平スケーリング機能を提供します。 しかし、専用リソースグループの場合、サービスのためのサービスインスタンスの最大数は、リソースグループのノードリソースによって制限され、ノードリソースを手動で追加または削除することは、非効率的で不便である。 この制限をなくすために、EASでは、水平スケーリング中にパブリックサービスグループにサービスインスタンスを作成できます。
メリット
エラスティックリソースプール機能と水平自動スケーリングを併用すると、リソースグループ内のノードリソースに制限されることなく、クエリ /秒 (QPS) やCPU使用率などのメトリックに基づいて、専用リソースグループにデプロイされたサービスのスケーリングを自動化できます。 この場合、サービスはサブスクリプションと従量課金の課金方法に基づいて課金され、コストを削減します。
手順
サービスのデプロイ時にサービスの自動スケーリングを有効にする
コンソールの使用
PAI コンソールにログインします。 ページ上部のリージョンを選択します。 次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS) の入力] をクリックします。
[サービスのデプロイ] をクリックします。 [カスタムモデルのデプロイ] セクションで、[カスタムデプロイ] をクリックします。
[カスタムデプロイ] ページの [リソースデプロイ] セクションで、必要なパラメーターを設定します。 次の表に、主要なパラメーターを示します。 その他のパラメーターの詳細については、「PAIコンソールを使用したモデルサービスのデプロイ」をご参照ください。
パラメーター
説明
リソースタイプ
[EASリソースグループ] を選択します。
リソースグループ
作成した専用リソースグループを選択します。
Elasticリソースプール
[Elastic Resource Pool] をオンにし、[resource Type] のパブリックリソースグループを選択して、専用リソースグループにデプロイされているサービスのelasticリソースプール機能を有効にします。
Elastic Resource Poolをオンにし、サービスのデプロイに使用する専用リソースグループが完全に占有されている場合、スケールアウト中に従量課金制インスタンスがパブリックリソースグループに自動的に追加されます。 追加されたインスタンスはパブリックリソースとして課金されます。 パブリックリソースグループ内のインスタンスは、スケールイン中に優先的にリリースされます。
[デプロイ] をクリックします。
クライアントを使用する
EASCMDクライアントを使用してサービスをデプロイするときに、サービスの自動スケーリングを有効にできます。 次のセクションでは、例としてWindows 64サーバーを使用する手順について説明します。
JSONファイルを設定します。
重要リソースの設定方法と仮想プライベートクラウド (VPC) ダイレクト接続機能は、サービスのリソースグループタイプによって異なります。 パブリックリソースグループでは、cloud.com putingパラメーターを使用して、必要なノードタイプを指定し、サービスのリソースをさらに取得できます。 cloud.net作業パラメーターを使用して、サービスのVPC直接接続機能を有効にすることもできます。 サービスが専用リソースグループにデプロイされている場合、専用リソースグループに対してのみVPCダイレクト接続機能を有効にできます。 専用リソースグループにサービスをデプロイし、そのサービスのエラスティックリソースプール機能を有効にする場合は、サービススケーリング中にVPC直接接続が利用可能になるように、e cloud.net作業パラメーターを設定する必要があります。
次のコードは、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****" } } }
上記のコードでは、
resource_burstable: サービスの自動スケーリングを有効にするかどうかを指定します。 このパラメーターをtrueに設定すると、サービスの自動スケーリングが有効になります。
cloud.net動作: 専用リソースグループにデプロイされているサービスでは、このパラメーターは有効になりません。 サービスのエラスティックリソースグループ機能を有効にした場合、このパラメーターを設定して、サービスのスケーリング中にVPC直接接続を確実に利用できるようにする必要があります。
cloud.com puting: オプション。 スケールアウト時にパブリックリソースグループで必要なノードタイプを指定できます。 詳細については、「パブリックリソースグループの操作」をご参照ください。
その他のパラメーターについては、「モデルサービスのパラメーター」をご参照ください。
EASCMDクライアントを使用してサービスをデプロイします。 詳細については、「EASCMDまたはDSWを使用したモデルサービスのデプロイ」をご参照ください。
専用リソースグループがサービスのスケールアウトをサポートするには不十分な場合、サービスに追加されたサービスインスタンスはパブリックリソースグループを使用します。
サービスのデプロイ後にサービスの自動スケーリングを有効または無効にする
コンソールの使用
PAI コンソールにログインします。 ページ上部のリージョンを選択します。 次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS) の入力] をクリックします。
サービスの [操作] 列で [更新] をクリックします。
[サービスの更新] ページの [リソースのデプロイ] セクションで、リソースの自動スケーリング機能を有効または無効にします。
リソースの自動スケーリングの有効化
[リソースのデプロイ] セクションで、[Elastic Resource Pool] をオンにし、パブリックリソースグループのリソースタイプを設定します。
リソースの自動スケーリングの無効化
[リソースのデプロイ] セクションで、[Elastic Resource Pool] をオフにします。
[Update] をクリックします。
クライアントを使用する
次のコマンドを実行して、デプロイされたサービスのエラスティックリソースプール機能を有効または無効にできます。 次のセクションでは、例としてWindows 64サーバーを使用します。
専用リソースグループにサービスをデプロイしたときにcloud.net作業パラメーターを設定しなかった場合、そのサービスのエラスティックリソースプール機能を有効にした場合、パブリックリソースグループに追加された新しいサービスインスタンスではVPC直接接続は利用できません。
# Enable the elastic resource pool feature for a deployed service.
eascmdwin64.exe modify <service_name> -Dmetadata.resource_burstable=true
# Disable the elastic resource pool feature for a deployed service.
eascmdwin64.exe modify <service_name> -Dmetadata.resource_burstable=false
<service_name> を、管理するサービスの名前に置き換えます。
elasticリソースプール機能は、新しいサービスインスタンスに対してのみ有効です。 たとえば、サービスのエラスティックリソースプール機能を有効にする前にサービスがスケールアウトされ、保留中の2つのサービスインスタンスがある場合、エラスティックリソースプール機能を有効にした後、2つのインスタンスはパブリックリソースグループに自動的に移行されません。 PAIコンソールで2つのインスタンスを再起動すると、インスタンスはパブリックリソースグループにスケジュールされます。 エラスティックリソースプール機能がサービスに対して有効化された後、特定のサービスインスタンスがパブリックリソースグループにスケジュールされている場合、機能が無効化された後、サービスインスタンスは自動的に専用リソースグループにスケジュールされません。
関連ドキュメント
水平自動スケーリング機能を有効にすると、指定したメトリックに基づいてインスタンスを自動的にスケーリングできます。 詳細については、「水平自動スケーリング機能の有効化または無効化」をご参照ください。
インスタンスの数を特定の数に自動的にスケーリングする方法については、「スケジュールされたスケーリング」をご参照ください。