このトピックでは、スケーリング設定で名前付けルールを設定する方法について説明します。これらのルールにより、スケールアウト時に追加される ECS インスタンスに対して連番かつ一意なインスタンス名またはホスト名が生成され、インスタンス管理が簡素化されます。
背景情報
スケーリンググループは、1 回のスケールアウトまたは複数回のスケールアウトにわたって 1 つ以上の ECS インスタンスを追加できます。スケーリング設定または起動テンプレートで、インスタンス名またはホスト名の名前付けルールを設定できます。
インスタンス名またはホスト名のルールを設定する方法はシナリオによって異なります。次の表に示します。このトピックでは シナリオ 1 のみを取り上げます。
シナリオ
ソリューション
参照
シナリオ 1:スケーリンググループ内のすべてのスケールアウトされた ECS インスタンスに、連番かつ一意なインスタンス名またはホスト名が必要です。
スケーリング設定でインスタンス名またはホスト名のルールを設定する必要があります。この構成には起動テンプレートを使用できません。
重要スケーリンググループ内のインスタンス名またはホスト名は連番で増加しますが、必ずしも連続的に増加するとは限りません。たとえば、スケールアウト中に作成されたホスト名が
ess-node-0999、ess-node-1000、およびess-node-1002の場合、これはホスト名ess-node-1001の ECS インスタンスの起動に失敗したことを示しています。スケーリンググループはこのインスタンスを不健全と判断して削除し、その後新しい ECS インスタンスを作成して、次に利用可能なホスト名ess-node-1002を割り当てます。シナリオ 2:各スケールアウトイベントごとに ECS インスタンスのインスタンス名またはホスト名が一意かつ連番であるが、スケーリンググループ内のすべてのインスタンス間で一意である必要はありません。
指定されたソートルールを使用して名前を設定します。
シナリオ 3:スケールアウトされた ECS インスタンスのインスタンス名またはホスト名に要件がありません。
シナリオ 1 または 2 で説明されているような名前付けルールを設定する必要はありません。静的な名前を設定できます。
たとえば、ホスト名を
hostnameに設定すると、すべてのスケールアウトされた ECS インスタンスのホスト名はhostnameになります。なし
方法 1:コンソールによる設定
スケーリンググループを作成します。
詳細については、「スケーリンググループの作成」をご参照ください。
スケーリング設定を作成して有効化します。
詳細については、「ECS インスタンス用のスケーリング設定の作成」をご参照ください。詳細設定セクションで、インスタンス名およびホストの名前付けルールを指定します。
たとえば、インスタンス名を
ess-node-(AUTO_INCREMENT)[0,3]に設定し、ホストをess-node-(AUTO_INCREMENT)[0,3]-ecshostに設定します。説明この例で使用している名前付けルールは、固定値による増分です。詳細については、「(推奨)固定値による増分」をご参照ください。動的ソートルールに基づいてインスタンス名またはホスト名を生成したい場合は、「拡張連番値による動的ソート」をご参照ください。
スケーリンググループを有効化します。
詳細については、「スケーリンググループの有効化」をご参照ください。
スケーリングルールを作成して実行します。
スケーリングルールを作成します。
詳細については、「スケーリングルールの作成」をご参照ください。
この例ではシンプルなルールを使用します。スケーリングルールを実行すると、スケーリンググループに 3 つの ECS インスタンスが追加されます。
スケーリングルールを実行します。
詳細については、「スケーリングルールの実行」をご参照ください。
スケーリングアクティビティが成功すると、新しく作成された 3 つの ECS インスタンスのインスタンス名およびホスト名は次のようになります。
インスタンス名:ess-node-000、ess-node-001、ess-node-002
ホスト名:ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost
方法 2:API による設定
CreateScalingGroup API オペレーションを呼び出して、スケーリンググループを作成します。
詳細については、「CreateScalingGroup」をご参照ください。
CreateScalingConfiguration API オペレーションを呼び出して、スケーリング設定を作成します。
詳細については、「CreateScalingConfiguration」をご参照ください。リクエストのパラメーターで、InstanceName パラメーターおよび HostName パラメーターを設定する必要があります。
たとえば、InstanceName を
ess-node-(AUTO_INCREMENT)[0,3]に設定し、HostName をess-node-(AUTO_INCREMENT)[0,3]-ecshostに設定します。説明この例で使用している名前付けルールは、固定値による増分です。詳細については、「(推奨)固定値による増分」をご参照ください。動的ソートルールに基づいてインスタンス名またはホスト名を生成したい場合は、「拡張連番値による動的ソート」をご参照ください。
EnableScalingGroup API オペレーションを呼び出して、スケーリンググループを有効化します。
詳細については、「EnableScalingGroup」をご参照ください。
スケーリングルールを作成して実行します。
CreateScalingRule API オペレーションを呼び出して、スケーリングルールを作成します。
詳細については、「CreateScalingRule」をご参照ください。
この例ではシンプルなルールを使用します。スケーリングルールを実行すると、スケーリンググループに 3 つの ECS インスタンスが追加されます。
ExecuteScalingRule API オペレーションを呼び出して、スケーリングルールを実行します。
詳細については、「ExecuteScalingRule」をご参照ください。
ルールを実行すると、新しく作成された 3 つの ECS インスタンスのインスタンス名およびホスト名は次のようになります。
インスタンス名:ess-node-000、ess-node-001、ess-node-002
ホスト名:ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost
(推奨)固定増分ソート
パラメーターのフォーマットは name_prefix(AUTO_INCREMENT)[begin_number,bits]name_suffix です。
インスタンス名とホスト名のルールおよびロジックは同一です。このセクションではホスト名のルールを例として使用します。
表 1. パラメーター
フィールド | 必須 | 説明 | 例 |
name_prefix | はい | ホスト名のプレフィックス。 | ess-node- |
(AUTO_INCREMENT) | はい | このソート方法を識別するための固定値。 | (AUTO_INCREMENT) |
[begin_number,bits] | はい | ホスト名の連番を指定します。このパラメーターを設定すると、ホスト名の連番が増加します。 重要 [begin_number,bits] フィールドにはスペースを含めることはできません。デフォルトでは、番号は連番で増加します。ただし、新しいインスタンスの起動に失敗した場合、スケーリンググループはそのインスタンスを削除して代替インスタンスを作成します。これにより、ホスト名が連続しない(飛び飛びになる)可能性があります。
説明 上限にすぐに達してしまうのを避けるため、bits は少なくとも 3 に設定することを推奨します。上限に達した場合、名前付けルールを再構成するまでスケーリングアクティビティは失敗します。 | [0,6] |
name_suffix | いいえ | ホスト名のサフィックス。 | -ecshost |
表 2. パラメーターの例
名前付けの例 | 既存の最大値 | 新しいホスト名 | 説明 |
ess-node-(AUTO_INCREMENT)[0,3]-ecshost | なし | ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost | 最初のスケールアウト時、連番の桁数は bits の値になります。連番は begin_number の値から開始され、追加される各 ECS インスタンスごとに増加します。 |
| なし | ess-node-000000-ecshost、ess-node-000001-ecshost、ess-node-000002-ecshost | begin_number または bits を設定しない場合、begin_number はデフォルトで 0、bits はデフォルトで 6 になります。 |
ess-node-(AUTO_INCREMENT)[99,1]-ecshost | ess-node-000099-ecshost | ess-node-000100-ecshost、ess-node-000101-ecshost、ess-node-000102-ecshost |
|
ess-node-(AUTO_INCREMENT)[0,2]-ecshost | ess-node-99-ecshost | スケーリングアクティビティはエラーを報告して停止します。 |
|
ess-node-(AUTO_INCREMENT)[0,4] | ess-node-0998 | ess-node-0999、ess-node-1000、ess-node-1002 |
|
動的拡張ソート
パラメーターのフォーマットは name_prefix(ess_extend_begin,ess_extend_bits)[begin_number,bits]name_suffix です。
インスタンス名とホスト名のルールおよびロジックは同一です。このセクションではホスト名のルールを例として使用します。
表 3. パラメーター
フィールド | 必須 | 説明 | 例 |
name_prefix | はい | ホスト名のプレフィックス。 | ess-node- |
(ess_extend_begin,ess_extend_bits) | はい | ホスト名の拡張連番を指定します。スケーリンググループ内の既存のホスト名の基本連番が最大値に達すると、このパラメーターが 1 増加し、基本連番が 0 から再開します。このサイクルは上限に達するまで繰り返されます。
重要 拡張連番と基本連番の両方が上限に達した場合、スケーリングアクティビティは失敗します。その場合は名前付けルールを再構成する必要があります。 (ess_extend_begin,ess_extend_bits) フィールドにはスペースを含めることはできません。指定された ess_extend_begin の桁数が bits の値より大きい場合、bits はデフォルトで 3 になります。 | (0,3) |
[begin_number,bits] | はい | ホスト名の基本連番を指定します。このパラメーターは最大値まで増加します。次のスケールアウトでは、拡張パラメーターが 1 増加し、このパラメーターが 0 から再開します。このサイクルは上限に達するまで繰り返されます。 重要 デフォルトでは、システムは値を連番で増加させます。ただし、スケールアウトされた ECS インスタンスの起動に失敗した場合、スケーリンググループはそのインスタンスを削除して新しい ECS インスタンスを作成します。その結果、スケーリンググループ内の ECS インスタンスのホスト名が飛び飛びに増加する可能性があります。
重要
[begin_number,bits] フィールドにはスペースを含めることはできません。指定された begin_number の桁数が bits の値より大きい場合、bits はデフォルトで 6 になります。 | [0,6] |
name_suffix | いいえ | ホスト名のサフィックス。 | -ecshost |
表 4. パラメーターの例
名前付けの例 | 既存の最大値 | 新しいホスト名 | 説明 |
ess-node-(0,3)[0,3]-ecshost | なし | ess-node-000000-ecshost、ess-node-000001-ecshost、ess-node-000002-ecshost | 最初のスケールアウト時:
|
| なし | ess-node-000000000-ecshost、ess-node-000000001-ecshost、ess-node-000000002-ecshost |
|
ess-node-(0,1)[0,1]-ecshost | ess-node-08-ecshost | ess-node-10-ecshost、ess-node-11-ecshost、ess-node-12-ecshost |
|
ess-node-(0,1)[0,1]-ecshost | ess-node-Z9-ecshost | スケーリングアクティビティはエラーを報告して停止します。 |
|
ess-node-(0,1)[0,3] | ess-node-0099 | ess-node-0100、ess-node-0101、ess-node-0103 |
|
ess-node-(0,1)[99,1]-ecshost | ess-node-0000099-ecshost | ess-node-0000100-ecshost、ess-node-0000101-ecshost、ess-node-0000102-ecshost |
|