Elastic Algorithm service (EAS) でサービスをデプロイするときに単一のインスタンスタイプのみを指定すると、指定されたタイプのリソースが不足し、サービスを作成できない場合があります。 この問題に対処するために、EASでは、サービスの作成時に複数のインスタンスタイプを指定できます。 次に、システムは、設定ファイルで指定したインスタンスタイプに基づいてリソースを準備します。 これにより、単一のインスタンスタイプのみを指定するシナリオでリソースが不足する可能性が低くなります。 このトピックでは、複数のインスタンスタイプを指定する方法について説明します。
前提条件
クライアントを使用して複数のインスタンスタイプを指定する場合は、EASCMDクライアントがインストールされており、ID認証が完了していることを確認してください。 詳細については、「EASCMDクライアントのダウンロードとID認証の完了」をご参照ください。
制限事項
パブリックリソースグループにデプロイされたEASサービスに対してのみ、複数のインスタンスタイプを指定できます。
サービスのデプロイ時に複数のインスタンスタイプを指定する
サービスの作成時に複数のインスタンスタイプを指定できます。 既存のサービスを更新して、複数のインスタンスタイプを設定することもできます。
次の例は、Platform for AI (PAI) コンソールとEASCMDクライアントで複数のインスタンスタイプを設定する方法を示しています。
リソースタイプ | 機械モデル | インスタンスタイプ | 入札価格 |
プリエンプティブル | 8vcpu + 16GB | ecs.c8i.2xlarge | 1 |
Common | 4vcpu + 8GB | ecs.c8i.xlarge | なし |
PAIコンソールで複数のインスタンスタイプを設定する
PAI コンソールにログインします。 ページ上部のリージョンを選択します。 次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS) の入力] をクリックします。
サービスの作成: [推論サービス] タブで、[サービスのデプロイ] をクリックします。 [サービスのデプロイ] ページで、[カスタムモデルのデプロイ] セクションの [カスタムデプロイ] をクリックします。
サービスの更新: [推論サービス] タブで目的のサービスを見つけ、[操作] 列の [更新] をクリックします。
表示されるページの [リソース展開] セクションで、次の表に示すパラメーターを設定します。 その他のパラメーターについては、「PAIコンソールでのモデルサービスのデプロイ」をご参照ください。
パラメーター
説明
リソースタイプ
[パブリックリソース] を選択します。
デプロイリソース
リソースタイプ: インスタンスタイプを選択します。
入札: 入札をオンにすると、プリエンプティブルインスタンスが使用されます。 入札をオフにすると、標準インスタンスが使用されます。
入札価格: プリエンプティブルインスタンスに対してのみ入札価格を指定する必要があります。 システムは、入札価格に基づいてプリエンプティブルインスタンスに自動的に入札します。
インスタンスの作成に必要なリソースが十分で、入札価格がインスタンスの市場価格以上の場合、インスタンスを作成できます。
複数のインスタンスタイプを指定:
[追加] をクリックして、複数のインスタンスタイプを追加します。 最大10個のインスタンスタイプを追加できます。 リソースは、インスタンスタイプが設定されている順序に基づいて準備されます。
プリエンプティブルインスタンス保護期間
設定は、入札をオンにしたときにのみ有効になります。 次の設定方法がサポートされています。
1時間の保護期間: プリエンプティブルインスタンスに1時間の保護期間を指定できます。 保護期間中、システムはインスタンスへのアクセスを保証します。
固定保護期間なし: プリエンプティブルインスタンスに保護期間がありません。 リソースの使用を保証するために、固定時間範囲の保護期間は提供されない。
プリエンプティブルインスタンスの詳細については、「プリエンプティブルインスタンスの指定」をご参照ください。
[デプロイ] または [更新] をクリックします。 [サービスステータス] パラメーターの値が [実行中] に変更されると、サービスがデプロイされます。
EASCMDクライアントで複数のインスタンスタイプを設定する
service.json
という名前のサービス構成ファイルを作成します。 サンプル内容:{ "name": "service_name", "model_path": "http://examplebucket.aliyuncs.com/models%2Fmnist_saved_model.tar.gz", "processor": "tensorflow_cpu_1.12", "metadata": { "instance": 1 }, "cloud": { "computing": { "instances": [ { "type": "ecs.c8i.2xlarge", "spot_price_limit": 1 }, { "type": "ecs.c8i.xlarge" } ], "disable_spot_protection_period": false } } }
サービス設定ファイルで必要なパラメーターを次の表に示します。 その他のパラメーターについては、「EASCMDクライアントを使用するコマンドの実行」をご参照ください。
パラメーター
説明
インスタンス
サービスインスタンスの数。 この例では、JSON設定ファイルで1つのインスタンスが指定されています。
インスタンス
指定できる1つ以上のインスタンスタイプ。 最初のインスタンスタイプのリソースが不足している場合、システムは次のインスタンスタイプのリソースを準備します。
type: インスタンスタイプ。
spot_price_limit: プリエンプティブルインスタンスの最高入札価格。 このパラメーターはオプションです。
このパラメーターを設定すると、このパラメーターで指定された値よりも低い価格のプリエンプティブインスタンスが使用されます。 単位はUSDです。従量課金方式のみサポートされています。
このパラメーターを空のままにすると、インスタンスタイプは標準の従量課金インスタンスになります。
disable_spot_protection_期間
インスタンス保護期間を無効にするかどうかを指定します。 デフォルト値:false 有効な値:
false: プリエンプティブルインスタンスの作成後、1時間の保護期間があります。 保護期間中、市場価格が入札価格よりも高くても、インスタンスをリリースすることはできません。
true: プリエンプティブインスタンスには保護期間がありません。 保護期間のないインスタンスは、保護期間のあるインスタンスよりも10% に安価です。
JSONファイルが配置されているディレクトリで次のコマンドを実行します。 詳細については、「EASCMDクライアントを使用するコマンドの実行」をご参照ください。
この例では、Windows 64サーバーが使用されます。
サービスの作成
eascmdwin64.exe create <service.json>
<service.json>: 作成したJSONファイルの名前。
サービスの更新
eascmdwin64.exe modify <service_name> -s <service.json>
注:
<service_name>: 管理するEASサービスの名前。
<service.json>: 作成したJSONファイルの名前。