관리자로 스크립트를 실행하여 작업자 구성 - 기한 클라우드

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

관리자로 스크립트를 실행하여 작업자 구성

사용자 지정 플릿 호스트 구성 스크립트를 사용하면 서비스 관리형 플릿 작업자에 대해 소프트웨어 설치와 같은 관리 작업을 수행할 수 있습니다. 이러한 스크립트는 승격된 권한으로 실행되므로 시스템에 맞게 작업자를 유연하게 구성할 수 있습니다.

Deadline Cloud는 작업자가 STARTING 상태가 된 후 작업을 실행하기 전에 스크립트를 실행합니다.

중요

스크립트는 시스템에서는 승격된 권한으로 실행되고 sudo Linux 시스템에서는 '관리자'로 실행됩니다Windows. 스크립트에 보안 문제가 발생하지 않도록 하는 것은 사용자의 책임입니다.

관리자 스크립트를 사용하는 경우 플릿의 상태를 모니터링할 책임이 있습니다.

스크립트의 일반적인 용도는 다음과 같습니다.

  • 관리자 액세스가 필요한 소프트웨어 설치

  • Docker 컨테이너 설치

콘솔 또는를 사용하여 호스트 구성 스크립트를 생성하고 업데이트할 수 있습니다 AWS CLI.

Console
  1. 플릿 세부 정보 페이지에서 구성 탭을 선택합니다.

  2. 스크립트 필드에 승격된 권한으로 실행할 스크립트를 입력합니다. 가져오기를 선택하여 워크스테이션에서 스크립트를 로드할 수 있습니다.

  3. 스크립트를 실행하기 위한 제한 시간을 초 단위로 설정합니다. 기본값은 300초(5분)입니다.

  4. 변경 사항 저장을 선택하여 스크립트를 저장합니다.

Create with CLI

다음 AWS CLI 명령을 사용하여 호스트 구성 스크립트가 있는 플릿을 생성합니다. 자리 표시자 텍스트를 정보로 바꿉니다.

aws deadline-internal create-fleet \ --farm-id farm-12345 \ --display-name "fleet-name" \ --max-worker-count 1 \ --configuration '{ "serviceManagedEc2": { "instanceCapabilities": { "vCpuCount": {"min": 2}, "memoryMiB": {"min": 4096}, "osFamily": "linux", "cpuArchitectureType": "x86_64" }, "instanceMarketOptions": {"type":"spot"} } }' \ --role-arn arn:aws:iam::111122223333:role/role-name \ --host-configuration '{ "scriptBody": "script body", "scriptTimeoutSeconds": timeout value}'
Update with CLI

다음 AWS CLI 명령을 사용하여 플릿의 호스트 구성 스크립트를 업데이트합니다. 자리 표시자 텍스트를 정보로 바꿉니다.

aws deadline update-fleet \ --farm-id farm-12345 \ --fleet-id fleet-455678 \ --host-configuration '{ "scriptBody": "script body", "scriptTimeoutSeconds": timeout value}'

다음 스크립트는 다음을 보여줍니다.

  • 스크립트에 사용할 수 있는 환경 변수

  • 해당 AWS 자격 증명은 쉘에서 작동합니다.

  • 스크립트가 승격된 셸에서 실행되고 있는지 여부

Linux

다음 스크립트를 사용하여 스크립트가 root 권한으로 실행 중임을 표시합니다.

# Print environment variables set # Check AWS Credentials aws sts get-caller-identity
Windows

다음 PowerShell 스크립트를 사용하여 스크립트가 관리자 권한으로 실행되고 있음을 표시합니다.

Get-ChildItem env: | ForEach-Object { "$($_.Name)=$($_.Value)" } aws sts get-caller-identity function Test-AdminPrivileges { $currentUser = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent()) $isAdmin = $currentUser.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) return $isAdmin } if (Test-AdminPrivileges) { Write-Host "The current PowerShell session is elevated (running as Administrator)." } else { Write-Host "The current PowerShell session is not elevated (not running as Administrator)." } exit 0

호스트 구성 스크립트 문제 해결

호스트 구성 스크립트를 실행할 때:

  • 성공 시: 작업자가 작업을 실행합니다.

  • 실패 시(0이 아닌 종료 코드 또는 충돌):

    • 작업자 종료

    플릿은 최신 호스트 구성 스크립트를 사용하여 새 작업자를 자동으로 시작합니다.

스크립트를 모니터링하려면:

  1. Deadline Cloud 콘솔에서 플릿 페이지를 엽니다.

  2. 작업자 보기를 선택하여 Deadline Cloud 모니터를 엽니다.

  3. 모니터 페이지에서 작업자 상태를 확인합니다.

중요 참고 사항:

  • 오류로 인해 종료된 작업자는 모니터의 작업자 목록에서 사용할 수 없습니다. CloudWatch Logs를 사용하여 다음 로그 그룹의 작업자 로그를 봅니다.

    /aws/deadline/farm-XXXXX/fleet-YYYYY

    해당 로그 그룹 내에는의 스트림이 있습니다.

    worker-ZZZZZ
  • CloudWatch Logs는 구성된 보존 기간에 따라 작업자 로그를 보존합니다.

호스트 구성 스크립트 실행 모니터링

관리자 스크립트를 사용하여 작업자를 구성하면 Deadline Cloud 작업자를 완벽하게 제어할 수 있습니다. 소프트웨어 패키지를 설치하거나, 운영 체제 파라미터를 재구성하거나, 공유 파일 시스템을 탑재할 수 있습니다. 이 고급 기능과 수천 명의 작업자로 확장할 수 있는 Deadline Cloud의 기능을 통해 구성 스크립트가 성공적으로 실행되거나 실패한 시기를 모니터링할 수 있습니다. 실패 원인에는 스크립트 오류, 결함 동작 또는 기타 알 수 없는 상황이 포함될 수 있습니다.

호스트 구성 스크립트 실행을 모니터링하려면 다음 솔루션을 사용하는 것이 좋습니다.

CloudWatch Logs 모니터링

모든 플릿 호스트 구성 로그는 플릿의 CloudWatch 로그 그룹, 특히 작업자의 CloudWatch 로그 스트림으로 스트리밍됩니다. 예를 들어 /aws/deadline/farm-123456789012/fleet-777788889999는 팜 123456789012, 플릿에 대한 로그 그룹입니다777788889999.

각 작업자는와 같은 전용 로그 스트림을 프로비저닝합니다worker-123456789012. 호스트 구성 로그에는 호스트 구성 스크립트 실행 및 호스트 구성 스크립트 실행 완료, 종료 코드: 0과 같은 로그 배너가 포함됩니다. 스크립트의 종료 코드는 완성된 배너에 포함되며 CloudWatch 도구를 사용하여 쿼리할 수 있습니다.

CloudWatch Logs Insights

CloudWatch Logs Insights는 로그 정보를 분석하는 고급 기능을 제공합니다. 예를 들어 다음 Log Insights 쿼리는 호스트 구성 종료 코드에 대한 구문 분석을 시간별로 정렬합니다.

fields @timestamp, @message, @logStream, @log | filter @message like /Finished running Host Configuration Script/ | parse @message /exit code: (?<exit_code>\d+)/ | display @timestamp, exit_code | sort @timestamp desc

CloudWatch Logs Insights에 대한 자세한 내용은 Amazon CloudWatch Logs 사용 설명서에서 CloudWatch Logs Insights를 사용하여 로그 데이터 분석하기를 참조하세요.

작업자 에이전트 구조화 로깅

Deadline Cloud의 작업자 에이전트는 구조화된 JSON 로그를 CloudWatch에 게시합니다. 작업자 에이전트는 작업자 상태를 분석하기 위한 다양한 구조화된 로그를 제공합니다. 자세한 내용은 GitHub의 Deadline Cloud 작업자 에이전트 로깅을 참조하세요.

구조화된 로그의 속성은 Log Insights의 필드에 압축이 풀립니다. 이 CloudWatch 기능을 사용하여 호스트 구성 시작 실패를 계산하고 분석할 수 있습니다. 예를 들어 개수 및 빈 쿼리를 사용하여 실패 발생 빈도를 확인할 수 있습니다.

fields @timestamp, @message, @logStream, @log | sort @timestamp desc | filter message like /Worker Agent host configuration failed with exit code/ | stats count(*) by exit_code, bin(1h)

지표 및 경보에 대한 CloudWatch 지표 필터

CloudWatch 지표 필터를 설정하여 로그에서 CloudWatch 지표를 생성할 수 있습니다. 이를 통해 호스트 구성 스크립트 실행을 모니터링하기 위한 경보 및 대시보드를 생성할 수 있습니다.

지표 필터를 생성하려면
  1. CloudWatch 콘솔을 엽니다.

  2. 탐색 창에서 로그를 선택한 다음 로그 그룹을 선택합니다.

  3. 플릿의 로그 그룹을 선택합니다.

  4. 지표 필터 생성을 선택합니다.

  5. 다음 중 하나를 사용하여 필터 패턴을 정의합니다.

    • 성공 지표의 경우:

      {$.message = "*Worker Agent host configuration succeeded.*"}
    • 실패 지표의 경우:

      {$.exit_code != 0 && $.message = "*Worker Agent host configuration failed with exit code*"}
  6. 다음을 선택하여 다음 값으로 지표를 생성합니다.

    • 지표 네임스페이스: 지표 네임스페이스(예: MyDeadlineFarm)

    • 지표 이름: 요청한 지표 이름(예: host_config_failure)

    • 지표 값: 1 (각 인스턴스는 1개)

    • 기본값: 비워 둡니다.

    • 단위: Count

지표 필터를 생성한 후 호스트 구성 실패율 상승에 대한 조치를 취하도록 표준 CloudWatch 경보를 구성하거나 day-to-day 운영 및 모니터링을 위해 CloudWatch 대시보드에 지표를 추가할 수 있습니다.

자세한 내용은 Amazon CloudWatch Logs 사용 설명서필터 및 패턴 구문을 참조하세요.