

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

# PCS AWSのノードライフサイクルアクションにメンテナンスされたスクリプト AWS を使用する
<a name="cng-node-lifecycle-actions-vetted-scripts"></a>

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

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

## 使用可能なスクリプト
<a name="cng-node-lifecycle-actions-vetted-scripts-available"></a>


| **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-utils`、`nfs-utils`、および PAM `mkhomedir`パッケージ (スクリプトごとの要件を参照) | 
| `configure-ldaps.sh` | LDAP または LDAPS 認証用の SSSD を設定し、認証されたバインド ( AWS Secrets Manager からの認証情報) または匿名バインドをサポートします。 | `sssd`、`sssd-ldap`、`sssd-tools`、および関連パッケージ (スクリプトごとの要件を参照) | 
| `configure-cloudwatch-logs.sh` | ノードのライフサイクルアクションログを Amazon CloudWatch Logs に転送するように Amazon CloudWatch エージェントを設定します。 | `amazon-cloudwatch-agent` | 

**重要**  
これらのスクリプトは、前提条件パッケージをインストールしません。スクリプトを使用する前に、必要なパッケージを AMI にインストールします。前提条件がない場合、スクリプトは失敗します。一部のスクリプトでは、ノードのインスタンスロールに特定のアクセス許可が必要です。各スクリプトの要件を参照してください。

## スクリプトを参照する
<a name="cng-node-lifecycle-actions-vetted-scripts-reference"></a>

ライフサイクルアクションの `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}}-v{{version}}.sh
```

各スクリプトは[セマンティックバージョニングでバージョ](https://semver.org/)ニングされます。特定のバージョンを固定したり、メジャーバージョン内の最新リリースを追跡したりできます。
+ **特定のバージョンを固定**する — などの完全なセマンティックバージョンを使用します`mount-efs-v1.0.0.sh`。特定のバージョンのコンテンツは変更できません。本番稼働用の固定バージョンを使用します。
+ **最新バージョンを追跡する** — などの major-version エイリアスを使用します`mount-efs-v1-latest.sh`。エイリアスは、そのメジャーバージョン内の最新のリリースを指します。とペアリング`scriptCachingPolicy``REFRESH_ON_REBOOT`して、再起動時に更新を取得します。

すべてのスクリプトには、同じ場所にサフィックス (例: ) `.sha256` が付いたコンパニオン SHA-256 チェックサムファイルがあります`mount-efs-v1.0.0.sh.sha256`。`.sha256` 値を読み取り、スクリプトの として設定します`checksum`。エージェントは、ダウンロード時にスクリプトの整合性を検証します。詳細については、「[スクリプトの整合性 (チェックサム)](cng-node-lifecycle-actions-configure.md#cng-node-lifecycle-actions-configure-checksums)」を参照してください。

## 使用可能なスクリプトバージョン
<a name="cng-node-lifecycle-actions-vetted-scripts-versions"></a>

AWS は、各スクリプトを個別にバージョン化します。次の表に、各スクリプトの使用可能なバージョンを示します。「」で説明されているように、スクリプトの Amazon S3 URI でバージョンを使用します[スクリプトを参照する](#cng-node-lifecycle-actions-vetted-scripts-reference)。

### `mount-efs.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-versions-mount-efs"></a>


| **バージョン** | **リリース日** | **リリースノート** | 
| --- | --- | --- | 
| 1.0.0 | 2026 年 7 月 23 日 | 初回リリース。 | 

### `mount-fsx-lustre.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-versions-mount-fsx"></a>


| **バージョン** | **リリース日** | **リリースノート** | 
| --- | --- | --- | 
| 1.0.0 | 2026 年 7 月 23 日 | 初回リリース。 | 

### `configure-efs-homes.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-versions-efs-homes"></a>


| **バージョン** | **リリース日** | **リリースノート** | 
| --- | --- | --- | 
| 1.0.0 | 2026 年 7 月 23 日 | 初回リリース。 | 

### `configure-ldaps.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-versions-ldaps"></a>


| **バージョン** | **リリース日** | **リリースノート** | 
| --- | --- | --- | 
| 1.0.0 | 2026 年 7 月 23 日 | 初回リリース。 | 

### `configure-cloudwatch-logs.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-versions-cwl"></a>


| **バージョン** | **リリース日** | **リリースノート** | 
| --- | --- | --- | 
| 1.0.0 | 2026 年 7 月 23 日 | 初回リリース。 | 

## 例: メンテナンスされたスクリプトを使用して EFS ファイルシステムをマウントする
<a name="cng-node-lifecycle-actions-vetted-scripts-example"></a>

次の例では、 で管理されている`mount-efs.sh`スクリプトを参照しています`us-west-2` AWS リージョン。引数は名前付きフラグとして渡します。スクリプトの引数については、「」を参照してください[スクリプト引数](#cng-node-lifecycle-actions-vetted-scripts-args)。

```
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 エンドポイントを介してバケットに到達できます。詳細については、「[スクリプトストレージの場所](cng-node-lifecycle-actions-configure.md#cng-node-lifecycle-actions-configure-storage)」を参照してください。

## スクリプト引数
<a name="cng-node-lifecycle-actions-vetted-scripts-args"></a>

各スクリプトは名前付きフラグ引数を取ります。各フラグとその値を`arguments`配列の個別の要素 (例: ) として渡します`["--file-system-id", "fs-12345678"]`。すべてのスクリプトは として実行`root`され、AL2、AL2023、RHEL、Ubuntu、Rocky Linux オペレーティングシステムをサポートします。

### `mount-efs.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-args-efs"></a>


| **フラグ** | **[Required]** (必須) | **[Default]** (デフォルト) | **[Description]** (説明) | 
| --- | --- | --- | --- | 
| `--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`
<a name="cng-node-lifecycle-actions-vetted-scripts-args-fsx"></a>


| **フラグ** | **[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`
<a name="cng-node-lifecycle-actions-vetted-scripts-args-efs-homes"></a>


| **フラグ** | **[Required]** (必須) | **[Default]** (デフォルト) | **[Description]** (説明) | 
| --- | --- | --- | --- | 
| `--efs-id` | はい | — | などの EFS ファイルシステム ID`fs-0123456789abcdef0`。 | 
| `--home-base` | いいえ | `/home` | EFS ファイルシステムを にマウントし、ホームディレクトリを作成する絶対パス。 | 
| `--options` | いいえ | `tls,iam` | カンマ区切りのマウントオプション。デフォルトでは、転送中の暗号化と IAM 認証が有効になります。 | 

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

### `configure-ldaps.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-args-ldaps"></a>


| **フラグ** | **必須** | **[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 バンドルです。 | 

このスクリプトには、`sssd`、`sssd-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`
<a name="cng-node-lifecycle-actions-vetted-scripts-args-cwl"></a>


| **フラグ** | **[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 エージェントは、このフラグメントを上書きせずに既存の設定と組み合わせるため、スクリプトは既存のメトリクスとロググループ設定を保持します。