View a markdown version of this page

AWS PCS에서 로그 크기 조정 - AWS PCS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS PCS에서 로그 크기 조정

조정 로그는 AWS 병렬 컴퓨팅 서비스가 클러스터의 컴퓨팅 노드 그룹을 조정하는 방법에 대한 레코드를 제공합니다. 각 로그 항목은 인스턴스 시작, 노드 등록, 스케일 다운 또는 이유와 함께 시작 실패 등 하나의 컴퓨팅 노드에 대해 하나의 상태 전환을 기록합니다. 조정 로그를 사용하여 노드 그룹이 목표 크기에 도달하지 못한 이유, 용량상의 이유로 시작되지 않은 이유, 특정 노드가 시작되거나 중지된 시기와 같은 질문에 답할 수 있습니다.

조정 로그를 Amazon CloudWatch, Amazon Simple Storage Service(Amazon S3) 및 Amazon Data Firehose로 전송할 수 있습니다. 각 전환에 대해 AWS PCS는 다음 데이터를 기록합니다.

  • 클러스터 및 컴퓨팅 노드 그룹 식별자

  • 노드 이름

  • 새 상태

  • 사유 코드 및 사람이 읽을 수 있는 설명

  • 인스턴스가 전환과 연결된 경우의 EC2 인스턴스 ID

  • 해당하는 경우 인스턴스 유형 및 서브넷과 같은 시작 컨텍스트

AWS PCS는 로그 유형을 통해 조정 PCS_SCALING_LOGS 로그를 전달합니다. 조정 로그 전송은 옵트인됩니다. AWS PCS는 클러스터에 대한 전송을 구성할 때까지 클러스터에 대한 조정 로그를 전송하지 않습니다.

사전 조건

AWS PCS 클러스터를 관리하는 IAM 보안 주체는 pcs:AllowVendedLogDeliveryForResource 작업을 허용해야 합니다.

다음 예제 IAM 정책은 필요한 권한을 부여합니다.

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

조정 로그 설정

AWS Management Console 또는를 사용하여 AWS PCS 클러스터에 대한 조정 로그를 설정할 수 있습니다 AWS CLI.

AWS Management Console
콘솔을 사용하여 조정 로그를 설정하려면
  1. AWS PCS 콘솔을 엽니다.

  2. 탐색 창에서 클러스터를 선택합니다.

  3. 조정 로그를 추가할 클러스터를 선택합니다.

  4. 클러스터 세부 정보 페이지에서 로그 탭을 선택합니다.

  5. 조정 로그에서 추가를 선택하여 CloudWatch Logs, Amazon S3 및 Firehose 중에서 최대 3개의 로그 전송 대상을 추가합니다. CloudWatch

  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 참조에 나와 있는 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를 참조하세요. Amazon CloudWatch

  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를 참조하세요. Amazon CloudWatch

조정 로그 찾기

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" 예 AWS PCS 클러스터 ID
resource_type "PCS_CLUSTER" 예 항상 "PCS_CLUSTER"
event_timestamp 1789179816460 예 이벤트 발생 시 Unix epoch 밀리초
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" } }