vCPU とメモリを指定して Elastic Container Instance (ECI) を作成する際、コストとパフォーマンスを制御するためにコンピュートカテゴリを指定することもできます。ECI は、エコノミー型 (vCPU 単位価格が低く、コスト重視のワークロードに適しています) と汎用型 (デフォルトインスタンスと同一スペックでより高いパフォーマンスを提供します) の 2 つのコンピュートカテゴリをサポートしています。この機能は、ECS インスタンスタイプを直接指定する場合には適用されません。
エコノミー型と汎用型の両方のコンピュートカテゴリインスタンスの一時記憶領域は、デフォルトで 30 GiB です。
コンピュートカテゴリの選択
| エコノミー型 | 一般 | |
|---|---|---|
| vCPU 範囲 | 0.25~8 | 1~64 |
| vCPU 単位価格 | 汎用型よりも低い | デフォルト (カテゴリなし) と同じ |
| メモリ単位価格 | 汎用型と同じ | デフォルト (カテゴリなし) と同じ |
| パフォーマンス | 標準 | 同一スペックのデフォルトインスタンスよりも高い |
| 最適用途 | バッチジョブ、開発/テスト、シンプルなウェブサービス | 本番 API、遅延の影響を受けやすいサービス、安定したパフォーマンスのワークロード |
ガイドライン:
コスト重視のワークロード (バッチ処理、開発/テスト、シンプルなウェブサービス):エコノミー型を使用します。エコノミー型インスタンスは vCPU 単位価格が低いため、スケールとともにコスト削減効果が大きくなります。これらのシナリオでは、パフォーマンスの変動は許容されます。
安定した一貫性のあるパフォーマンスを必要とする本番サービス (API、マイクロサービス、遅延の影響を受けやすいアプリケーション):汎用型を使用します。汎用型インスタンスは、コンピュートカテゴリなしで作成された同一スペックのインスタンスよりも高いパフォーマンスを提供します。
高可用性シナリオ:複数のコンピュートカテゴリを指定します。ECI は指定された順序で各カテゴリを試行するため、リソース枯渇によるインスタンス作成の失敗を減らすことができます。
エコノミー型と汎用型のコンピュートカテゴリは、パブリックプレビュー中です。
制限事項
vCPU とメモリのスペックモードが必要。この機能は、vCPU とメモリを指定してインスタンスを作成する場合にのみ適用されます。代わりに ECS インスタンスタイプを指定した場合、そちらが優先され、
ComputeCategoryパラメーターは無視されます。プリエンプティブインスタンスではサポートされていません。プリエンプティブインスタンスカテゴリとコンピュートカテゴリの両方を設定すると、
FeatureBasedConstraintConflictエラーが返されます。Arm ベースのインスタンスではサポートされていません。Arm CPU アーキテクチャとコンピュートカテゴリの両方を設定すると、
FeatureBasedConstraintConflictエラーが返されます。
課金
インスタンス作成後、DescribeContainerGroups API オペレーションを呼び出して、インスタンスの実際のコンピュートカテゴリ (ComputeCategory 応答フィールド) を確認します。課金は、割り当てられたカテゴリの単位価格に基づいて行われます。
エコノミー型コンピュートカテゴリ
コンピュートカテゴリなしで作成されたインスタンスと比較して、エコノミー型インスタンスは vCPU 単位価格が低く、メモリ単位価格は同じです。
| リソース | 1 秒あたり | 1 時間あたり |
|---|---|---|
| vCPU | USD 0.00000424/vCPU | USD 0.015264/vCPU |
| メモリ | USD 0.00000096/GiB | USD 0.003456/GiB |
汎用型コンピュートカテゴリ
| リソース | 1 秒あたり | 1 時間あたり |
|---|---|---|
| vCPU | USD 0.0000077/vCPU | USD 0.02772/vCPU |
| メモリ | USD 0.00000096/GiB | USD 0.003456/GiB |
サポートされているスペック
エコノミー型コンピュートカテゴリ
全リージョンで利用可能
| vCPU | メモリ (GiB) | ベースライン帯域幅 (双方向、Gbit/s) |
|---|---|---|
| 0.25 | 0.5 と 1 | 0.08 |
| 0.5 | 1 と 2 | 0.08 |
| 1 | 2、4、および 8 | 0.08 |
| 2 | 1、2、4、8、および 16 | 0.2 |
| 4 | 2、4、8、16、および 32 | 0.4 |
| 8 | 4、8、16、32、および 64 | 0.8 |
一部のリージョンでのみ利用可能
以下のスペックは、中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深セン)、中国 (河源)、中国 (広州)、中国 (成都)、シンガポールの各リージョンでのみ利用可能です。以下のいずれかのスペックを持つ Elastic Container Instance を作成する際は、指定されたリージョンとゾーンで対応するスペックがサポートされていることを確認してください。そうでない場合、そのリージョンとゾーンにリソースが存在しないため、インスタンスを作成できません。これらのスペックは、プリエンプティブインスタンスの作成には使用できません。
| vCPU | メモリ (GiB) | ベースライン帯域幅 (双方向、Gbit/s) |
|---|---|---|
| 2 | 6、10、12、および 14 | 0.2 |
| 4 | 6、10、12、14、18、20、22、24、26、28、および 30 | 0.4 |
| 6 | 6~48 GiB (2 GiB 単位で増分) | 0.8 |
| 8 | 10、12、14、18、20、22、24、26、28、30、34、36、38、40、42、44、46、48、50、52、54、56、58、60、および 62 | 0.8 |
汎用型コンピュートカテゴリ
全リージョンで利用可能
| vCPU | メモリ (GiB) | ベースライン帯域幅 (双方向、Gbit/s) |
|---|---|---|
| 1 | 2、4、および 8 | 1 |
| 2 | 1、2、4、8、および 16 | 1 |
| 4 | 2、4、8、16、および 32 | 1.5 |
| 8 | 4、8、16、32、および 64 | 2 |
| 12 | 12、24、48、および 96 | 2.5 |
| 16 | 16、32、64、および 128 | 3 |
| 24 | 24、48、96、および 192 | 4.5 |
| 32 | 32、64、128、および 256 | 6 |
| 52 | 96、192、および 384 | 12.5 |
| 64 | 128、256、および 512 | 20 |
一部のリージョンでのみ利用可能
以下のスペックは、中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深セン)、中国 (河源)、中国 (広州)、中国 (成都)、シンガポールの各リージョンでのみ利用可能です。以下のいずれかのスペックを持つ Elastic Container Instance を作成する際は、指定されたリージョンとゾーンで対応するスペックがサポートされていることを確認してください。そうでない場合、そのリージョンとゾーンにリソースが存在しないため、インスタンスを作成できません。これらのスペックは、プリエンプティブインスタンスの作成には使用できません。
| vCPU | メモリ (GiB) | ベースライン帯域幅 (双方向、Gbit/s) |
|---|---|---|
| 2 | 6、10、12、および 14 | 1 |
| 4 | 6、10、12、14、18、20、22、24、26、28、および 30 | 1.5 |
| 6 | 6~48 GiB (2 GiB 単位で増分) | 1.5 |
| 8 | 10、12、14、18、20、22、24、26、28、30、34、36、38、40、42、44、46、48、50、52、54、56、58、60、および 62 | 2.5 |
コンピュートカテゴリの設定
CreateContainerGroup API オペレーションで ComputeCategory パラメーターを使用します。vCPU とメモリは、以下のいずれかのメソッドを使用して指定します。
| メソッド | 仕組み |
|---|---|
| コンテナレベルのスペックのみ | 各コンテナに Container.N.Cpu と Container.N.Memory を設定します。ECI は、すべてのコンテナの値を合計してインスタンススペックを決定します。 |
| インスタンスレベル + コンテナレベルのスペック | インスタンスレベルで Cpu と Memory を設定します。オプションで、コンテナごとのスペックも設定できます。 |
InstanceType vCPU/メモリ表記 | InstanceType を 2-4Gi のような値に設定します。最大 5 つのコンマ区切りのスペックをサポートします。 |
パラメーター
| パラメーター | 型 | 例 | 説明 |
|---|---|---|---|
Cpu | 数値 | 2.0 | インスタンスに割り当てる vCPU の数 |
Memory | 数値 | 4.0 | インスタンスのメモリサイズ (GiB 単位) |
Container.N.Cpu | 数値 | 0.5 | コンテナ N に割り当てる vCPU の数 |
Container.N.Memory | 数値 | 1.0 | コンテナ N のメモリサイズ (GiB 単位) |
InstanceType | 文字列 | 2-4Gi | {vCPU}-{memory}Gi 形式の vCPU およびメモリスペック。最大 5 つのコンマ区切りの値をサポートします。ECS インスタンスタイプを指定することもできますが、ComputeCategory はこのパラメーターが vCPU/メモリ表記を使用する場合にのみ適用されます。 |
ComputeCategory | 文字列[] | economy | コンピュートカテゴリ。有効な値:economy、general。複数の値を指定してフォールバック順序を設定します。 |
インスタンスのスケジューリング方法
ComputeCategory を設定すると、ECI は以下のルールに基づいて実際のインスタンススペックとカテゴリを決定します。
| 設定 | 結果 |
|---|---|
ComputeCategory は設定されていますが、vCPU/メモリは指定されていません | 指定されたカテゴリを使用して、2 vCPU と 4 GiB のメモリを持つインスタンスを作成します。 |
vCPU/メモリと ComputeCategory が設定され、互換性がある | 指定どおりにインスタンスを作成します。 |
vCPU 数が 1 未満だが、カテゴリが general | ECI は、汎用型カテゴリの最小要件を満たすために vCPU 数を自動的に 1 に調整します。 |
vCPU 数が 8 を超えるが、カテゴリが economy | この組み合わせは無効です。ECI は自動調整できず、エラーを返します。 |
| vCPU/メモリがカテゴリの範囲内だが、サポートされているスペックと完全に一致しない | ECI は、最も近いサポートされているスペックに切り上げます。たとえば、7-13Gi と general の場合、8 vCPU と 16 GiB になります。 |
| 複数の vCPU/メモリスペックまたは複数のカテゴリが指定されている | ECI は、インスタンススペックをカテゴリよりも優先して、指定された順序で組み合わせを試行します。以下の優先ルールを参照してください。 |
複数のスペックまたはカテゴリの優先ルール
複数の InstanceType の値と複数の ComputeCategory の値が設定されている場合、ECI はすべてのスペックとカテゴリの組み合わせを反復処理します。スペックが外側のループ、カテゴリが内側のループとなります。たとえば、InstanceType=4-8Gi,8-16Gi,16-32Gi と ComputeCategory=general,economy の場合、以下の試行シーケンスが生成されます。
4-8Gi, general
4-8Gi, economy
8-16Gi, general
8-16Gi, economy
16-32Gi, general
16-32Gi, economy (無効 — 16 vCPU はエコノミー型カテゴリの最大 8 vCPU を超えるため、自動的にスキップされます)
スペックがサポートされているどの値とも一致しない場合、ECI は各カテゴリを試行する前に、最も近いサポートされているスペックに切り上げます。切り上げられたスペックが特定のカテゴリと互換性がない場合、そのカテゴリはそのスペックに対してスキップされます。たとえば、InstanceType=0.5-1.9Gi と ComputeCategory=general,economy の場合、0.5-2Gi に切り上げられます。0.5 vCPU は汎用型カテゴリと互換性がないため、ECI は 0.5-2Gi を economy のみでスケジューリングします。
例
例 1:コンテナレベルのスペックを設定し、エコノミー型カテゴリを使用
ContainerGroupName=test-category
# コンピュートカテゴリをエコノミー型に設定します。
ComputeCategory.1=economy
# 各コンテナの vCPU とメモリスペックを指定します。
Container.1.Cpu=1.0
Container.1.Memory=2.0
Container.1.Name=nginx
Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2例 2:インスタンスレベルのスペックを設定し、両方のカテゴリをフォールバックとして指定
ContainerGroupName=test-category
# インスタンスレベルで vCPU とメモリスペックを設定します。
Cpu=4.0
Memory=8.0
# まず汎用型を試行し、リソースが利用できない場合はエコノミー型にフォールバックします。
ComputeCategory.1=general
ComputeCategory.2=economy
# コンテナを設定します。
Container.1.Name=nginx
Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2例 3:汎用型カテゴリで複数のインスタンススペックを指定
ContainerGroupName=test-category
# 複数のインスタンススペックを指定します。ECI は利用可能なリソースを持つ最初のものを使用します。
InstanceType=2-4Gi,4-8Gi
# コンピュートカテゴリを汎用型に設定します。
ComputeCategory.1=general
# コンテナを設定します。
Container.1.Name=nginx
Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2