デプロイメントセットを設定することで、Elastic Compute Service (ECS) インスタンスの配置を制御し、物理サーバ上の単一障害点を軽減したり、高頻度取引などのアプリケーションの超低遅延要件を満たすことができます。高可用性戦略を選択してインスタンスを分散させ、フォールトトレランスを向上させるか、低遅延戦略を選択してインスタンスを同じ場所に配置し、ネットワーク通信を高速化します。
制限事項
デプロイメントセット内に専用ホストを作成することはできません。
リージョンとゾーンの制限:インスタンスとそのデプロイメントセットは、同じリージョンに存在する必要があります。低遅延戦略を使用するデプロイメントセットの場合、すべてのインスタンスが同じゾーンに存在する必要があります。
インスタンスファミリーの制限:第 6 世代以降のほとんどのインスタンスファミリーは、高可用性戦略、高可用性グループ戦略、および低遅延戦略を使用するデプロイメントセットをサポートしています。
クイックスタート
ステップ 1: デプロイメントセットの作成
コンソール
ECS コンソール - デプロイメントセットに移動します。
ページの左上隅で、リージョンとリソースグループを選択します。
デプロイメントセット ページで、デプロイメントセットの作成 をクリックします。
デプロイメントセットの作成 ダイアログボックスで、名前 と 説明 を入力し、ストラテジー を選択します。高可用性戦略を選択した場合、デプロイメントタイプ (物理サーバ、ラック、またはスイッチ) とアフィニティ (1~10) も設定できます。デプロイメント戦略の選択方法
API
CreateDeploymentSet オペレーションを呼び出して、指定したリージョンにデプロイメントセットを作成し、そのデプロイメント戦略を設定します。
高可用性グループ戦略の場合、
GroupCountパラメーターを指定してグループ数を設定します。高可用性戦略の場合、
Typeパラメーターを指定してデプロイメントタイプ (host、rack、またはsw) を設定します。デフォルト値はhostです。高可用性戦略の場合、
Affinityパラメーターを指定してアフィニティレベル (1~10) を設定します。デフォルト値は 1 です。
ステップ 2:インスタンスの作成または追加
コンソール
インスタンスタイプ、リージョン、および ECS インスタンスの数は、制限事項に準拠する必要があります。詳細については、「制限事項」をご参照ください。
デプロイメントセットに新しいインスタンスを作成する:
デプロイメントセットのリストページで、ターゲットのデプロイメントセットを見つけます。操作 列で、インスタンスの作成 をクリックします。[カスタム起動] ページで、インスタンスの構成を完了します。
既存のインスタンスをデプロイメントセットに追加する:「インスタンスのデプロイメントセットの変更」をご参照ください。
API
デプロイメントセットに新しいインスタンスを作成する:RunInstances オペレーションを呼び出し、
DeploymentSetIdパラメーターを指定します。既存のインスタンスをデプロイメントセットに追加する:ModifyInstanceDeployment オペレーションを呼び出し、
InstanceIdとDeploymentSetIdパラメーターを指定します。説明指定したデプロイメントセットが
AvailabilityGroup戦略 (高可用性グループ戦略) を使用している場合、DeploymentSetGroupNoパラメーターを使用して、デプロイメントセット内のインスタンスのグループ番号を指定できます。
デプロイメント戦略
デプロイメント戦略は、Elastic Compute Service (ECS) インスタンスを物理サーバ上にどのように配置するかを決定します。高可用性、ネットワーク遅延、デプロイメント規模の要件に基づいて戦略を選択できます。
シナリオ | 推奨戦略 | 主な制限事項 |
厳密な障害分離が必要な小規模クラスター | 高可用性戦略 | ゾーンごとに最大 20 インスタンス |
グループベースの分離を伴う大規模デプロイメント | 高可用性グループ戦略 | 最大 7 グループ、各ゾーンのグループごとに最大 20 インスタンス |
低ネットワーク遅延 | 低遅延戦略 | すべてのインスタンスが同じゾーンにある必要があります。インスタンスの最大数は 20 です。 |
高可用性戦略
単一障害点によって複数のインスタンスが利用できなくなるのを防ぐため、インスタンスを異なる物理サーバ、ラック、またはスイッチに分散させます。
分散の粒度が細かいほど (例えばスイッチレベルなど)、フォールトトレランスは向上しますが、インスタンスの作成に失敗する可能性が高くなります。現在のゾーンに分散要件を満たすだけの十分な物理サーバ、ラック、またはスイッチがない場合、インスタンスの作成は失敗します。この場合、しばらく待ってからリトライするか、別のゾーンを選択してください。
ユースケース:Hadoop 分散コンピューティングクラスターや SQL データベースクラスターなど、高いサービス継続性と障害分離が求められる小規模なデプロイメント。
ゾーン:インスタンスは異なるゾーンにまたがってデプロイメントできます。
インスタンス数の制限:単一ゾーン内のインスタンスの最大数は、デプロイメントタイプとアフィニティ設定によって異なります。
デプロイメントタイプ
デプロイメントタイプは、デプロイメントセット内で ECS インスタンスを分散させるためのディメンションを指定します。有効な値を次の表に示します。
値 | 分散ディメンション | 説明 |
| 物理サーバ | 単一のサーバ障害が複数のインスタンスに影響を与えるのを防ぐため、インスタンスは異なる物理サーバに分散されます。 |
| ラック | ラックの電源障害による大規模なインスタンス障害のリスクを軽減するため、インスタンスは異なるラックに分散されます。 |
| スイッチ | スイッチの障害によるネットワーク中断のリスクを軽減するため、インスタンスは異なるスイッチに分散されます。 |
アフィニティ
アフィニティは、物理サーバ 1 台あたりに許可されるインスタンスの最大数を定義します。値は 1 から 10 までの整数で、デフォルト値は 1 です。
アフィニティが 1 の場合は厳密な分散が適用され、各物理サーバは最大 1 つのインスタンスしかホストできません。
アフィニティが 1 より大きい場合はベストエフォートでの分散が提供され、ある程度の障害分離を必要としながらも多数のインスタンスを配置するシナリオに適しています。
次の例は、host デプロイメントタイプにおいてアフィニティがインスタンスの分散にどのように影響するかを示しています。
シナリオ 1:デプロイメントセットに基づくインスタンスの作成
アフィニティが 2 の host タイプのデプロイメントセットを作成し、そのセット内に 3 つの ECS インスタンスを作成します。システムはアフィニティの制約に基づいてインスタンスを異なる物理サーバに分散させ、各物理サーバは最大 2 つのインスタンスをホストします。
シナリオ 2:デプロイメントセットのアフィニティの引き上げ
既存のデプロイメントセットのアフィニティを 1 から 2 に引き上げると、1 つの物理サーバでより多くのインスタンスをホストできるようになり、将来のスケーリングのためのスペースが確保されます。既存のインスタンスは移行されません。
インスタンス数の制限
デプロイメントタイプとアフィニティによって、デプロイメントセットのインスタンス数の制限が決まります。
デプロイメントタイプ | アフィニティ | ゾーンごとの 制限 |
| 1-10 | 20 インスタンス |
| 1-10 | 20 インスタンス |
| 1-10 | 20 インスタンス |
高可用性グループ戦略
インスタンスを複数のグループ (最大 7) に割り当てます。異なるグループのインスタンスは異なる物理サーバに厳密に分散されますが、同じグループ内のインスタンスは同じ場所に配置されることがあります。
異なるグループの ECS インスタンスは、単一障害点を避けるために、指定されたリージョン内の別々の物理サーバに厳密に配置されます。同じグループ内のインスタンスは分散が保証されず、インスタンス間のネットワーク遅延を減らすために同じ物理サーバに配置される場合があります。
DescribeInstances 操作を呼び出して、デプロイメントセット内のインスタンスのグループ番号 (DeploymentSetGroupNo) をクエリできます。HDFS や Cassandra などの分散アプリケーションは、このグループ番号を使用してインテリジェントなレプリカ配置を決定し、異なるレプリカが異なるグループに配置されるように保証できます。これにより、グループレベルの障害が発生した場合でもデータの可用性が維持されます。
ユースケース:Redis のプライマリ/レプリカレプリケーションや Nginx の負荷分散など、組み込みの高可用性メカニズムを持つサービス、特に高い分離性が求められる大規模デプロイメント。
ゾーン:インスタンスは異なるゾーンにまたがってデプロイメントできます。
インスタンス数の制限:単一ゾーンでグループごとに最大 20 インスタンス、ゾーンごとに最大 7 グループ。
低遅延戦略
インスタンスを同じネットワークトポロジー内に配置し、インスタンス間のネットワーク通信遅延を最小限に抑えます。
この戦略は、高可用性と引き換えに低遅延を実現します。複数のインスタンスが同じ物理サーバに配置される可能性があります。ご利用のアプリケーションに、マルチコピーレプリケーションやプライマリ/セカンダリフェールオーバーなど、独自の高可用性メカニズムが組み込まれていることを確認してください。
ユースケース:ハイパフォーマンスコンピューティング (HPC)、リアルタイムデータ分析、AI 推論など、ネットワーク遅延に非常に敏感なアプリケーション。
ゾーン:すべてのインスタンスは同じゾーンにデプロイメントする必要があります。
インスタンス数の制限:インスタンスの最大数は 20 です。
容量不足:同じネットワークトポロジー内で十分なリソースが利用できない場合、インスタンスの作成は失敗します。しばらく待ってからリトライするか、サポートに連絡してリソースの可用性を確認することを推奨します。
関連操作
インスタンスのデプロイメントセットの変更
ECS インスタンスのデプロイメントセットを変更して、別のセットに移動したり、未割り当てのインスタンスをセットに追加したりできます。
コンソール
ECS コンソール - インスタンスに移動します。
ページの左上隅で、リージョンとリソースグループを選択します。
ターゲットインスタンスの ID をクリックしてインスタンス詳細ページに移動します。すべての操作 をクリックしてすべての操作を展開し、 を検索してクリックします。
デプロイメントセットの変更 ダイアログボックスで、ターゲットデプロイメントセットを選択し、強制変更 設定を構成します。
はい:インスタンスの物理サーバの変更を許可します。この操作によりインスタンスが再起動され、サービス継続性に影響する可能性があります。このオプションは注意して使用してください。
いいえ:インスタンスの物理サーバを変更しません。このオプションは、指定されたデプロイメントセットにインスタンスを追加しようとします。これにより、再起動のリスクは回避されますが、インスタンスが新しいデプロイメントセットの要件を満たさない場合、変更は失敗します。
API
ModifyInstanceDeployment 操作を呼び出し、次のパラメーターを指定してインスタンスのデプロイメントセットを変更します:
RegionId:インスタンスが存在するリージョン。例:中国 (杭州) の場合は
cn-hangzhou。InstanceId:インスタンスの ID。例:
i-bp67acfmxazb4ph***。DeploymentSetId:ターゲットデプロイメントセットの ID。例:
ds-bp67acfmxazb4ph****。Force:デプロイメントセットを変更する際に物理サーバの変更を強制するかどうかを指定します。有効値:
true:インスタンスの物理サーバの変更を許可します。このアクションによりインスタンスが再起動され、サービス継続性に影響する可能性があります。このオプションは注意して使用してください。
false (デフォルト):インスタンスの物理サーバを変更しません。このオプションは、指定されたデプロイメントセットにインスタンスを追加しようとします。これにより、再起動のリスクは回避されますが、インスタンスが新しいデプロイメントセットの要件を満たさない場合、変更は失敗します。
デプロイメントセットからのインスタンスの削除
デプロイメントセットを削除する際にインスタンスを保持するには、まずインスタンスを削除する必要があります。削除後もインスタンスは元の状態を保持します。
ModifyInstanceDeployment 操作を呼び出し、次のパラメーターを指定してインスタンスをデプロイメントセットから削除します:
RegionId:インスタンスが存在するリージョン。例:中国 (杭州) の場合は
cn-hangzhou。InstanceId:インスタンスの ID。例:
i-bp67acfmxazb4ph***。DeploymentSetId:デプロイメントセットの ID。例:
ds-bp67acfmxazb4ph****。RemoveFromDeploymentSet:選択したインスタンスをデプロイメントセットから削除するかどうかを指定します。値を
trueに設定します。
インスタンスが削除されたことを確認します:API 呼び出しが成功し、ステータスコード 200 が返された場合、削除は成功です。
デプロイメントセットの変更または削除
ECS コンソール - デプロイメントセットページに移動し、ターゲットデプロイメントセットを見つけ、[操作] 列の 情報の変更 または 削除 をクリックします。画面の指示に従って操作を完了します。
デプロイメントセットの変更:デプロイメントセットの名前と説明を変更できます。
デプロイメントセットの削除:不要になったデプロイメントセットは、リソースを占有しないように削除できます。
重要デプロイメントセットを削除する前に、インスタンスが含まれていないことを確認してください。インスタンスが存在する場合は、デプロイメントセットを削除する前に、それらをデプロイメントセットから削除する必要があります。詳細については、「インスタンスのデプロイメントセットの変更」または「デプロイメントセットからのインスタンスの削除」をご参照ください。
制限事項
リージョンで需要が急増する期間中、Elastic Compute Service (ECS) インスタンスの作成またはエコノミーモードでの従量課金 ECS インスタンスの再起動が失敗することがあります。 ほとんどの場合、しばらく待ってからリトライすることで解決できます。 詳細については、「エコノミーモード」をご参照ください。
デプロイメントセットのクォータ: 各 Alibaba Cloud アカウントが所有できるデプロイメントセットの数には上限があります。 クォータは クォータセンター で確認できます。
デプロイメントタイプ (Type) は変更不可: デプロイメントセットの作成後、そのデプロイメントタイプは変更できません。 デプロイメントタイプを変更するには、新しいデプロイメントセットを作成し、インスタンスを移行する必要があります。
アフィニティ変更のルール:
アフィニティの増加: この設定は制限なく直接変更できます。 デプロイメントタイプが
hostの場合、アフィニティを増やすと最大インスタンス数も増加することがあります。アフィニティの減少: アフィニティを変更する前に、まずデプロイメントセットからすべてのインスタンスを削除する必要があります。
デプロイメントセットはマージできません。
課金
デプロイメントセット機能は無料です。Elastic Compute Service (ECS) インスタンス、ディスク、スナップショット、イメージ、パブリック帯域幅など、ご利用のリソースに対してのみ課金されます。詳細については、「課金概要」をご参照ください。