View a markdown version of this page

PCS AWSのノードライフサイクルアクションにメンテナンスされたスクリプト AWS を使用する - AWS PCS

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

PCS AWSのノードライフサイクルアクションにメンテナンスされたスクリプト AWS を使用する

AWS は、一般的なライフサイクルアクション用に管理されたスクリプトを発行します。メンテナンススクリプトは、コンピューティングノードグループ設定から直接参照します。スクリプトはべき等であり、起動するたびに安全に実行できます。

AWS は、各 のパブリックで管理 AWSされた Amazon S3 バケットからスクリプトを配布します AWS リージョン。Amazon S3 URI でスクリプトを参照します。保守スクリプトは、独自のスクリプトを参照するのと同じ方法で参照します。スクリプトは、 AWSマネージドバケットから直接参照できます。

使用可能なスクリプト

Script

説明

前提条件パッケージ

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-utilsnfs-utils、および PAM mkhomedirパッケージ (スクリプトごとの要件を参照)

configure-ldaps.sh

LDAP または LDAPS 認証用の SSSD を設定し、認証されたバインド ( AWS Secrets Manager からの認証情報) または匿名バインドをサポートします。

sssdsssd-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。特定のバージョンのコンテンツは変更できません。本番稼働用の固定バージョンを使用します。

  • 最新バージョンを追跡する — などの major-version エイリアスを使用します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

フラグ

[Required] (必須)

[Default] (デフォルト)

[Description] (説明)

--file-system-id

はい

などの EFS ファイルシステム IDfs-0123456789abcdef0

--mount-point

はい

など、 にマウントする絶対パス/mnt/efs

--options

いいえ

tls,iam

カンマ区切りのマウントオプション。デフォルトでは、転送中の暗号化と IAM 認証が有効になります。

デフォルトiamオプションでは、ノードのインスタンスロールで elasticfilesystem:ClientMountと を許可する必要がありますelasticfilesystem:ClientWrite。ノードのサブネットには、セキュリティグループがノードからのインバウンド NFS (TCP 2049) を許可する EFS マウントターゲットが必要です。

mount-fsx-lustre.sh

フラグ

[Required] (必須)

[Default] (デフォルト)

[Description] (説明)

--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

フラグ

[Required] (必須)

[Default] (デフォルト)

[Description] (説明)

--efs-id

はい

などの EFS ファイルシステム IDfs-0123456789abcdef0

--home-base

いいえ

/home

EFS ファイルシステムを にマウントし、ホームディレクトリを作成する絶対パス。

--options

いいえ

tls,iam

カンマ区切りのマウントオプション。デフォルトでは、転送中の暗号化と IAM 認証が有効になります。

このスクリプトには、amazon-efs-utilsnfs-utils、および PAM mkhomedir サポートが必要です。RHEL ファミリーノードで、、oddjoboddjob-mkhomedir、および をインストールしますauthselect。AL2023 で、 をauthselect明示的にインストールします。Ubuntu で、 をインストールしますlibpam-modules。IAM とネットワークの要件は に一致しますmount-efs.sh

configure-ldaps.sh

フラグ

必須

[Description] (説明)

--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 バンドルです。

このスクリプトには、sssdsssd-ldap、および が必要ですsssd-tools。RHEL ファミリーノードでは、 authselectまたは authconfigと も必要ですoddjob-mkhomedir。Ubuntu では、 が必要ですlibpam-modules

では--secret-arn、ノードのインスタンスロールがシークレットsecretsmanager:GetSecretValueを許可する必要があり、ノードには awscliおよび python3パッケージが必要です。シークレットの値は、 形式の JSON である必要があります{"username": "<bind-dn>", "password": "<bind-password>"}。匿名バインドは AWS API コールを行わず、IAM アクセス許可を必要としません。

configure-cloudwatch-logs.sh

フラグ

[Required] (必須)

[Default] (デフォルト)

説明

--log-group-name

いいえ

/aws/pcs/${PCS_CLUSTER_ID}/lifecycle

転送先の CloudWatch Logs ロググループ。省略すると、スクリプトは PCS AWS が設定するPCS_CLUSTER_ID環境変数から名前を取得します。

スクリプトはライフサイクルアクションログディレクトリ () を転送します/var/log/amazon/pcs/lifecycle/actions。ノードのインスタンスロールはlogs:CreateLogGroup、ターゲットロググループlogs:PutLogEventsで 、logs:CreateLogStream、および を許可する必要があります。このスクリプトを使用して、事後デバッグのためにログをインスタンス外に転送します。

注記

これらのログを転送するrootには、Amazon CloudWatch エージェントは として実行する必要があります。root ユーザーのみが を読み取ることができます/var/log/amazon/pcs/lifecycle/actions

注記

スクリプトはその設定を専用のフラグメントファイルに書き込みます。Amazon CloudWatch エージェントは、このフラグメントを上書きせずに既存の設定と組み合わせるため、スクリプトは既存のメトリクスとロググループ設定を保持します。