View a markdown version of this page

PCS AWS でのログのスケーリング - AWS PCS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

PCS AWS でのログのスケーリング

スケーリングログは、 AWS Parallel Computing Service がクラスター内のコンピューティングノードグループをスケーリングする方法の記録を提供します。各ログエントリは、インスタンスの起動、ノード登録、スケールダウン、起動失敗など、1 つのコンピューティングノードに対して 1 つの状態遷移を記録します。スケーリングログを使用して、ノードグループがターゲットサイズに達しなかった理由、容量の理由で起動に失敗した理由、特定のノードがいつ起動または停止したかなどの質問に回答できます。

スケーリングログは、Amazon CloudWatch、Amazon Simple Storage Service (Amazon S3)、および Amazon Data Firehose に送信できます。移行ごとに、 AWS PCS は次のデータを記録します。

  • クラスターおよびコンピューティングノードグループ識別子

  • ノード名

  • 新しいステータス

  • 理由コードと人間が読める説明

  • インスタンスが移行に関連付けられているときの EC2 インスタンス ID

  • 必要に応じて、インスタンスタイプやサブネットなどの起動コンテキスト

AWS PCS は、 ログタイプを通じてスケーリングPCS_SCALING_LOGSログを配信します。スケーリングログ配信はオプトインです。 AWS PCS は、配信を設定するまで、クラスターのスケーリングログを配信しません。

前提条件

PCS クラスターを管理する IAM AWS プリンシパルは、 pcs:AllowVendedLogDeliveryForResourceアクションを許可する必要があります。

次の IAM ポリシーの例では、必要なアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PcsAllowVendedLogsDelivery", "Effect": "Allow", "Action": ["pcs:AllowVendedLogDeliveryForResource"], "Resource": [ "arn:aws:pcs:*::cluster/*" ] } ] }

スケーリングログの設定

AWS マネジメントコンソール または を使用して、PCS AWS クラスターのスケーリングログを設定できます AWS CLI。

AWS マネジメントコンソール
コンソールでスケーリングログを設定するには
  1. AWS PCS コンソールを開きます。

  2. ナビゲーションペインで [Clusters] (クラスター) を選択します。

  3. スケーリングログを追加するクラスターを選択します。

  4. クラスターの詳細ページで、ログタブを選択します。

  5. スケーリングログ で、追加 を選択して、CloudWatch Logs、Amazon S3、Firehose の中から最大 3 つのログ配信先を追加します。

  6. ログ配信の更新を選択します。

AWS CLI
を使用してスケーリングログを設定するには AWS CLI
  1. ログ配信先を作成します。

    aws logs put-delivery-destination --region region \ --name pcs-logs-destination \ --delivery-destination-configuration \ destinationResourceArn=resource-arn

    置き換え前:

    • region — など、送信先を作成する AWS リージョン 。 us-east-1

    • pcs-logs-destination — 送信先の名前

    • resource-arn — CloudWatch Logs ロググループ、S3 バケット、または Firehose 配信ストリームの Amazon リソースネーム (ARN)。

    詳細については、「Amazon CloudWatch Logs API Reference」の「PutDeliveryDestination」を参照してください。

  2. PCS クラスターをログ配信ソースとして設定します。

    aws logs put-delivery-source --region region \ --name cluster-logs-source-name \ --resource-arn cluster-arn \ --log-type PCS_SCALING_LOGS

    置き換え前:

    • region — クラスター AWS リージョン の など。 us-east-1

    • cluster-logs-source-name — ソースの名前

    • cluster-arn — AWS PCS クラスターの ARN

    詳細については、Amazon CloudWatch Logs API リファレンス」の「PutDeliverySource」を参照してください。

  3. 配信ソースを配信先に接続します。

    aws logs create-delivery --region region \ --delivery-source-name cluster-logs-source \ --delivery-destination-arn destination-arn

    置き換え前:

    • region — AWS リージョンなど us-east-1

    • cluster-logs-source — 配信ソースの名前

    • destination-arn — 配信先の ARN

    詳細については、Amazon CloudWatch Logs API リファレンス」のCreateDelivery」を参照してください。

スケーリングログの検索

CloudWatch Logs と Amazon S3 でログの送信先を設定できます。 AWS PCS は次の構造化パス名とファイル名を使用します。

CloudWatch Logs

AWS PCS は CloudWatch Logs ストリームに次の名前形式を使用します。

AWSLogs/PCS/cluster-id/node_lifecycle.log

例: AWSLogs/PCS/pcs_abc123de45/node_lifecycle.log

Amazon S3

AWS PCS は S3 パスに次の名前形式を使用します。

AWSLogs/account-id/PCS/region/cluster-id/node_lifecycle/year/month/day/hour/

例: AWSLogs/111122223333/PCS/us-east-1/pcs_abc123de45/node_lifecycle/2026/09/03/11/

AWS PCS はログファイルに次の名前形式を使用します。

PCS_cluster-id_node_lifecycle_year-month-day-hour_random-id.log.gz

例: PCS_pcs_abc123de45_node_lifecycle_2026-09-03-11_04be080b.log.gz

ログフィールドのスケーリング

AWS PCS はスケーリングログデータを JSON オブジェクトとして書き込みます。各ログエントリには、最上位のメタデータフィールドとdetailsオブジェクトが含まれます。最上位フィールドは、クラスター、イベント時間、コンピューティングノードグループ、スケジューラノード ID を識別します。details オブジェクトは移行の詳細を保持します。

次の表は、各ログエントリの最上位フィールドを示しています。

最上位フィールド
名前 値の例 必須 コメント
resource_id "pcs_22l8nzr3t9" はい PCS AWS クラスター ID
resource_type "PCS_CLUSTER" はい 常に "PCS_CLUSTER"
event_timestamp 1789179816460 はい イベント発生時の Unix エポックミリ秒
compute_node_group_id "pcs_56zr33g8" はい ノードが属するコンピューティングノードグループ
scheduler_node_id "compute-1" はい スケジューラノード ID
status_code "LAUNCH_FAILED" はい ノードの新しいステータス。「ステータスコードと理由コード」を参照してください。
reason_code "INSUFFICIENT_CAPACITY" はい 移行が発生した理由
description "The launch failed because EC2 did not have enough capacity" はい ステータスと理由コードから派生した人間が読める概要
details {...} いいえ 移行の追加コンテキスト。キーは移行タイプによって異なります

次の表は、 details オブジェクト内に表示されるキーを示しています。

details オブジェクト内のフィールド
名前 値の例 必須 注意事項
instance_id "i-0abcdef01234567a" いいえ ノードに関連付けられた EC2 インスタンス。起動失敗後など、インスタンスが関連付けられていない場合は存在しない
ec2_error_code "InsufficientInstanceCapacity" いいえ 起動に失敗した EC2 エラーコード。アカウントの CreateFleet 呼び出しの CloudTrail レコードに同じコードが表示されます。
instance_type "t4g.micro" いいえ 起動されたインスタンスタイプ
subnet_id "subnet-0abc123" いいえ 起動の対象となるサブネット

ステータスコードと理由コード

status_code フィールドには、ノードが入力した状態が表示されます。reason_code フィールドにはその理由が表示されます。例えば、INSUFFICIENT_CAPACITY理由のあるLAUNCH_FAILEDステータスは、Amazon EC2 がターゲットサブネットでリクエストされたインスタンスタイプの容量を提供できなかったことを意味します。は、Amazon EC2 クォータが起動をブロックしたLIMIT_EXCEEDEDことを意味します。

ステータスコードと理由コード
ステータスコード 理由コード 説明
LAUNCHED SCHEDULER_REQUESTED スケジューラのスケールアップリクエストを満たすために起動されたインスタンス
LAUNCHED MAINTAIN_MIN_CAPACITY ノードグループの最小容量を維持するために起動されたインスタンス
REGISTERED REGISTER_SUCCESS PCS エージェントを介して正常に登録されたノード
ACTIVE BOOTSTRAP_SUCCESS ノードブートストラップが完了しました。slurmd が実行中でジョブを受け入れています
PENDING_REPLACEMENT NODE_GROUP_UPDATE ノードグループの更新で電源が切断される前にノードがドレインしている
PENDING_REPLACEMENT EC2_HEALTH_CHECK_FAILED ノードまたはそのインスタンスのヘルスチェックが失敗したため、ノードがドレインしています
PENDING_REPLACEMENT EC2_SCHEDULED_EVENT インスタンスに EC2 メンテナンスイベントがスケジュールされているため、ノードはドレインしています
LAUNCH_FAILED INSUFFICIENT_CAPACITY 使用可能な容量が不足しているため、ノードがインスタンスを取得できませんでした
LAUNCH_FAILED LIMIT_EXCEEDED アカウントクォータを超えたため、インスタンスの起動に失敗しました
LAUNCH_FAILED LAUNCH_ERROR ノードがインスタンスの起動に失敗しました
TERMINATED SCHEDULER_REQUESTED スケジューラがノードを解放した後に終了したインスタンス (アイドルタイムアウトまたはパワーダウン)
TERMINATED UNHEALTHY_NODE スケジューラがノードを異常と報告したため、インスタンスが終了しました
TERMINATED BOOTSTRAP_FAILED ノードがブートストラップに失敗したためインスタンスが終了しました
TERMINATED EXTERNALLY_TERMINATED インスタンスは PCS の外部で終了しました。ノードは解放され、置き換えることができます。
TERMINATED REPLACEMENT_REQUESTED ノードが置き換えのためにドレインされたため、インスタンスが終了しました
TERMINATED NODE_GROUP_DELETION コンピューティングノードグループの削除の一環として終了したインスタンス
TERMINATE_FAILED EC2_OPERATION_NOT_PERMITTED インスタンスの終了に失敗しました。インスタンスで終了保護が有効になっていないことを確認する
TERMINATE_FAILED EC2_ERROR インスタンスの終了に失敗しました

スケーリングログの例

次の例は、インスタンスの正常な起動を示しています。

{ "resource_id": "pcs_abc123de45", "resource_type": "PCS_CLUSTER", "event_timestamp": 1789179816460, "compute_node_group_id": "pcs_abcdef01", "scheduler_node_id": "compute-1", "status_code": "LAUNCHED", "reason_code": "SCHEDULER_REQUESTED", "description": "Instance launched to satisfy a scheduler scale-up request.", "details": { "instance_id": "i-0abc12345def67890", "instance_type": "c6i.xlarge", "subnet_id": "subnet-0123456789abcdef0" } }

次の例は、EC2 容量不足による起動失敗を示しています。インスタンスinstance_idが起動されなかったため、 は存在しません。

{ "resource_id": "pcs_abc123de45", "resource_type": "PCS_CLUSTER", "event_timestamp": 1789179816460, "compute_node_group_id": "pcs_abcdef01", "scheduler_node_id": "compute-2", "status_code": "LAUNCH_FAILED", "reason_code": "INSUFFICIENT_CAPACITY", "description": "Node did not get an instance because there was not enough capacity available.", "details": { "ec2_error_code": "InsufficientInstanceCapacity" } }