View a markdown version of this page

AWS PCS의 노드 수명 주기 작업에 대한 사용 AWS유지 관리 스크립트 - AWS PCS

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

AWS PCS의 노드 수명 주기 작업에 대한 사용 AWS유지 관리 스크립트

AWS 는 일반적인 수명 주기 작업에 대한 유지 관리형 스크립트를 게시합니다. 컴퓨팅 노드 그룹 구성에서 직접 유지 관리 스크립트를 참조합니다. 스크립트는 멱등성이 있으며 부팅할 때마다 안전하게 실행할 수 있습니다.

AWS 는 각의 AWS관리형 퍼블릭 Amazon S3 버킷에서 스크립트를 배포합니다 AWS 리전. Amazon S3 URI로 스크립트를 참조합니다. 자체 스크립트를 참조하는 것과 동일한 방식으로 유지 관리형 스크립트를 참조합니다. AWS관리형 버킷에서 직접 스크립트를 참조할 수 있습니다.

사용 가능한 스크립트

스크립트

설명

사전 조건 패키지

mount-efs.sh

지정된 경로에 Amazon EFS 파일 시스템을 탑재하고 재부팅 시 이를 유지합니다.

amazon-efs-utils, nfs-utils

mount-fsx-lustre.sh

지정된 경로에 Amazon FSx for Lustre 파일 시스템을 탑재하고 재부팅 시 이를 유지합니다.

lustre-client

configure-efs-homes.sh

Amazon EFS 파일 시스템을 홈 디렉터리 기본으로 탑재하고 각 사용자의 홈 디렉터리가 처음 로그인할 때 생성되도록 PAM을 구성합니다.

amazon-efs-utils, nfs-utils및 PAM mkhomedir 패키지(스크립트별 요구 사항 참조)

configure-ldaps.sh

인증된 바인드( AWS Secrets Manager의 자격 증명) 또는 익명 바인드를 지원하여 LDAP 또는 LDAPS 인증을 위한 SSSD를 구성합니다.

sssd, sssd-ldapsssd-tools, 및 관련 패키지(스크립트별 요구 사항 참조)

configure-cloudwatch-logs.sh

노드의 수명 주기 작업 로그를 Amazon CloudWatch Logs로 전달하도록 Amazon CloudWatch 에이전트를 구성합니다.

amazon-cloudwatch-agent

중요

이러한 스크립트는 필수 패키지를 설치하지 않습니다. 스크립트를 사용하기 전에 AMI에 필요한 패키지를 설치합니다. 사전 조건이 누락된 경우 스크립트가 실패합니다. 일부 스크립트에서는 노드의 인스턴스 역할에 특정 권한이 있어야 합니다. 각 스크립트의 요구 사항을 참조하세요.

스크립트 참조

수명 주기 작업의 scriptLocation 필드에서 Amazon S3 URI로 스크립트를 참조합니다. 스크립트는 각각에서 AWS관리형 aws-pcs-repo-region 버킷의 aws-pcs-node-lifecycle-scripts 접두사 아래에 저장됩니다 AWS 리전. 클러스터 AWS 리전 와 동일한의 버킷을 사용합니다.

s3://aws-pcs-repo-region/aws-pcs-node-lifecycle-scripts/script-vversion.sh

각 스크립트는 의미 체계 버전 관리로 버전이 지정됩니다. 특정 버전을 고정하거나 메이저 버전 내에서 최신 릴리스를 추적할 수 있습니다.

  • 특정 버전 고정 -와 같은 전체 의미 체계 버전을 사용합니다mount-efs-v1.0.0.sh. 특정 버전의 콘텐츠는 변경할 수 없습니다. 프로덕션에 고정 버전을 사용합니다.

  • 최신 버전 추적 -와 같은 메이저 버전 별칭을 사용합니다mount-efs-v1-latest.sh. 별칭은 해당 메이저 버전 내의 최신 릴리스를 가리킵니다. 와 페어링scriptCachingPolicyREFRESH_ON_REBOOT하여 재부팅 시 업데이트를 선택합니다.

모든 스크립트에는 접미사가 있는 동일한 위치에 컴패니언 .sha256 SHA-256 체크섬 파일이 있습니다(예: mount-efs-v1.0.0.sh.sha256). .sha256 값을 읽고 스크립트의 로 설정합니다checksum. 그러면 에이전트가 다운로드 시 스크립트의 무결성을 확인합니다. 자세한 내용은 스크립트 무결성(체크섬) 단원을 참조하십시오.

사용 가능한 스크립트 버전

AWS 는 각 스크립트를 독립적으로 실행합니다. 다음 표에는 각 스크립트의 사용 가능한 버전이 나열되어 있습니다. 에 설명된 대로 스크립트의 Amazon S3 URI에서 버전을 사용합니다스크립트 참조.

mount-efs.sh

버전

릴리스 날짜

릴리스 정보

1.0.0

2026년 7월 23일

최초 릴리스입니다.

mount-fsx-lustre.sh

버전

릴리스 날짜

릴리스 정보

1.0.0

2026년 7월 23일

최초 릴리스입니다.

configure-efs-homes.sh

버전

릴리스 날짜

릴리스 정보

1.0.0

2026년 7월 23일

최초 릴리스입니다.

configure-ldaps.sh

버전

릴리스 날짜

릴리스 정보

1.0.0

2026년 7월 23일

최초 릴리스입니다.

configure-cloudwatch-logs.sh

버전

릴리스 날짜

릴리스 정보

1.0.0

2026년 7월 23일

최초 릴리스입니다.

예: 유지 관리 스크립트를 사용하여 EFS 파일 시스템 탑재

다음 예제에서는 mount-efs.sh에서 유지 관리되는 스크립트를 참조합니다us-west-2 AWS 리전. 인수를 명명된 플래그로 전달합니다. 스크립트의 인수는 섹션을 참조하세요스크립트 인수.

aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng \ --node-lifecycle-actions '{ "stages": { "nodeBootstrapped": [ { "name": "Mount EFS home directory", "scriptSource": { "scriptLocation": "s3://aws-pcs-repo-us-west-2/aws-pcs-node-lifecycle-scripts/mount-efs-v1.0.0.sh" }, "arguments": ["--file-system-id", "fs-12345678", "--mount-point", "/shared"], "onError": "TERMINATE", "executionPolicy": "EVERY_BOOT" } ] } }'

노드의 인스턴스 역할에 스크립트 객체에 대한 s3:GetObject 권한이 있어야 합니다. 프라이빗 서브넷의 노드는 S3 게이트웨이 VPC 엔드포인트를 통해 버킷에 도달할 수 있습니다. 자세한 내용은 스크립트 스토리지 위치 단원을 참조하십시오.

스크립트 인수

각 스크립트는 명명된 플래그 인수를 사용합니다. 각 플래그와 해당 값을 arguments 배열의 개별 요소로 전달합니다(예: ["--file-system-id", "fs-12345678"]). 모든 스크립트는 로 실행root되며 AL2, AL2023, RHEL, Ubuntu 및 Rocky Linux 운영 체제를 지원합니다.

mount-efs.sh

플래그

필수

기본값

설명

--file-system-id

와 같은 EFS 파일 시스템 ID입니다fs-0123456789abcdef0.

--mount-point

와 같이 탑재할 절대 경로입니다/mnt/efs.

--options

아니요

tls,iam

쉼표로 구분된 탑재 옵션. 기본값은 전송 중 암호화 및 IAM 인증을 활성화합니다.

기본 iam 옵션을 사용하면 노드의 인스턴스 역할이 elasticfilesystem:ClientMount 및를 허용해야 합니다elasticfilesystem:ClientWrite. 노드의 서브넷에는 보안 그룹이 노드의 인바운드 NFS(TCP 2049)를 허용하는 EFS 탑재 대상이 있어야 합니다.

mount-fsx-lustre.sh

플래그

필수

기본값

설명

--fsx-dns-name

FSx for Lustre 파일 시스템 DNS 이름입니다.

--mount-name

파일 시스템의 Lustre 탑재 이름(FSx 콘솔의 MountName 값).

--mount-point

와 같이 탑재할 절대 경로입니다/fsx.

--options

아니요

noatime,flock

쉼표로 구분된 탑재 옵션. 기본값은 FSx for Lustre 권장 사항을 따릅니다.

노드의 서브넷은 파일 시스템에 도달해야 하며, 파일 시스템의 보안 그룹은 노드의 인바운드 Lustre 트래픽(예약된 소스 포트를 사용하는 클라이언트의 경우 TCP 988 및 1018~1023)을 허용해야 합니다.

configure-efs-homes.sh

플래그

필수

기본값

설명

--efs-id

와 같은 EFS 파일 시스템 ID입니다fs-0123456789abcdef0.

--home-base

아니요

/home

에 EFS 파일 시스템을 탑재하고 그 아래에 홈 디렉터리를 생성할 절대 경로입니다.

--options

아니요

tls,iam

쉼표로 구분된 탑재 옵션. 기본값은 전송 중 암호화 및 IAM 인증을 활성화합니다.

이 스크립트에는 amazon-efs-utils, nfs-utils및 PAM mkhomedir 지원이 필요합니다. RHEL 패밀리 노드에서 , 및 oddjoboddjob-mkhomedir를 설치합니다authselect. AL2023에서는 authselect를 명시적으로 설치합니다. Ubuntu에서를 설치합니다libpam-modules. IAM 및 네트워크 요구 사항은와 일치합니다mount-efs.sh.

configure-ldaps.sh

플래그

필수

설명

--ldap-uri

LDAP 서버 URI. ldap:// 또는 로 시작해야 합니다ldaps://.

--search-base

와 같은 LDAP 검색 기반dc=example,dc=com.

--secret-arn

아니요

AWS 바인드 자격 증명을 보유한 보안 암호의 Secrets Manager ARN입니다. 이 플래그를 생략하면 스크립트는 익명 바인드에 대해 SSSD를 구성합니다.

--tls-cacert

아니요

TLS 확인을 위한 CA 번들의 절대 경로입니다. 기본값은 운영 체제의 CA 번들입니다.

이 스크립트에는 sssd, sssd-ldap및가 필요합니다sssd-tools. RHEL 패밀리 노드에서는 authselect 또는 authconfig 및 도 필요합니다oddjob-mkhomedir. Ubuntu에서는이 필요합니다libpam-modules.

--secret-arn를 사용하면 노드의 인스턴스 역할secretsmanager:GetSecretValue이 보안 암호를 허용해야 하며 노드에는 awsclipython3 패키지가 필요합니다. 보안 암호 값은 형식의 JSON이어야 합니다{"username": "<bind-dn>", "password": "<bind-password>"}. 익명 바인드는 AWS API 호출을 수행하지 않으며 IAM 권한이 필요하지 않습니다.

configure-cloudwatch-logs.sh

플래그

필수

기본값

설명

--log-group-name

아니요

/aws/pcs/${PCS_CLUSTER_ID}/lifecycle

전달할 CloudWatch Logs 로그 그룹입니다. 생략하면 스크립트는 AWS PCS가 설정하는 PCS_CLUSTER_ID 환경 변수에서 이름을 추출합니다.

스크립트는 수명 주기 작업 로그 디렉터리(/var/log/amazon/pcs/lifecycle/actions)를 전달합니다. 노드의 인스턴스 역할은 대상 로그 그룹에서 logs:CreateLogStream, 및 logs:CreateLogGrouplogs:PutLogEvents를 허용해야 합니다. 이 스크립트를 사용하여 사후 디버깅을 위해 로그를 인스턴스 외부로 전달합니다.

참고

이러한 로그를 전달root하려면 Amazon CloudWatch 에이전트가 로 실행되어야 합니다. root 사용자만를 읽을 수 있습니다/var/log/amazon/pcs/lifecycle/actions.

참고

스크립트는 전용 조각 파일에 구성을 씁니다. Amazon CloudWatch 에이전트는이 조각을 덮어쓰지 않고 기존 구성과 결합하므로 스크립트는 기존 지표 및 로그 그룹 설정을 유지합니다.