

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

# `pcluster update-cluster` を使用する
<a name="using-pcluster-update-cluster-v3"></a>

 AWS ParallelCluster 3.x では、 は現在のクラスターの作成に使用される設定と、設定ファイルの設定で問題がないか[`pcluster update-cluster`](pcluster.update-cluster-v3.md)を分析します。問題が発見された場合は報告され、問題を解決するための手順が表示されます。例えば、コンピューティング [`InstanceType`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-InstanceType) が変更された場合、アップデートを行う前にコンピューティングフリートを停止する必要があります。この問題は、発見された時点で報告されます。ブロッキング問題が発見されなければ、アップデートプロセスが開始され、変更が報告されます。

[`pcluster update-cluster`](pcluster.update-cluster-v3.md) `--dryrun option` を使用して、実行前に変更を確認できます。詳細については、「[`pcluster update-cluster` の例](#pcluster-update-cluster-examples)」を参照してください。

トラブルシューティングヘルプについては、「[AWS ParallelCluster トラブルシューティング](troubleshooting-v3.md)」を参照してください。

## ポリシー定義を更新します
<a name="pcluster-update-policy-definitions"></a>

**更新ポリシー: この設定を変更して更新するには、クラスターのログインノードを停止する必要があります。**  
クラスター内のログインノードが使用中である場合、これらの設定を変更することはできません。変更を元に戻すか、クラスターのログインノードを停止する必要があります (各プールのカウントを 0 に設定することで、クラスター内のログインノードを停止できます）。クラスターのログインノードが停止したら、クラスター (pcluster update-cluster) を更新して変更をアクティブ化できます。  
この更新ポリシーは、 AWS ParallelCluster バージョン 3.7.0 以降でサポートされています。

**更新ポリシー: ログインノードプールを追加できますが、プールを削除するには、クラスター内のすべてのログインノードを停止する必要があります。**  
プールを削除するには、クラスター内のすべてのログインノードを停止する必要があります (各プールのカウントを 0 に設定することで、クラスター内のログインノードを停止できます)。クラスターのログインノードを停止したら、クラスターを更新 ([`pcluster update-cluster`](pcluster.update-cluster-v3.md)) して変更を有効にすることができます。  
この更新ポリシーは、 AWS ParallelCluster バージョン 3.11.0 以降でサポートされています。

**更新ポリシー: この設定を変更して更新するには、プール内のログインノードを停止する必要があります。**  
プール内のログインノードが使用中の場合、これらの設定を変更することはできません。変更を元に戻すか、プールのログインノードを停止する必要があります (プール内のログインノードを停止するには、プールのカウントを 0 に設定します)。プールのログインノードを停止したら、クラスターを更新 ([`pcluster update-cluster`](pcluster.update-cluster-v3.md)) して変更を有効にすることができます。  
この更新ポリシーは、 AWS ParallelCluster バージョン 3.11.0 以降でサポートされています。

**更新ポリシー: この設定は、更新中に変更できます。**  
この設定を変更すると、[`pcluster update-cluster`](pcluster.update-cluster-v3.md) を使ってクラスターを更新できるようになります。

**更新ポリシー: この設定が変更された場合、更新は許可されません。**  
この設定を変更すると、クラスターの更新ができなくなります。元のクラスターの設定を元に戻し、更新した設定で新しいクラスターを作成する必要があります。元のクラスターは後日削除できます。[`pcluster create-cluster`](pcluster.create-cluster-v3.md) を使用して新しいクラスターを作成します。[`pcluster delete-cluster`](pcluster.delete-cluster-v3.md) を使用して元のクラスターを削除します。

**更新ポリシー: この設定は、更新中には分析されません。**  
これらの設定は、[`pcluster update-cluster`](pcluster.update-cluster-v3.md) を使用して変更し、クラスターを更新することができます。

**更新ポリシー: この設定を更新で変更するためには、コンピューティングフリートを停止する必要があります。**  
これらの設定は、コンピューティングフリートが存在する間は変更できません。変更を元に戻すか、コンピューティングフリートを停止する必要があります ([`pcluster update-compute-fleet`](pcluster.update-compute-fleet-v3.md) を使用します)。コンピューティングフリートを停止したら、クラスター ([`pcluster update-cluster`](pcluster.update-cluster-v3.md)) を更新して変更を有効にすることができます。例えば、Slurm のスケジューラを [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`ComputeResources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources)/ - [`Name`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Name)/[`MinCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MinCount) > 0 で使用している場合、コンピューティングフリートが開始されます。

**更新ポリシー: この設定を変更して更新するには、コンピューティングフリートとログインノードを停止する必要があります。**  
コンピューティングフリートが存在する間、またはログインノードが使用中の場合、これらの設定を変更することはできません。変更を元に戻すか、コンピューティングフリートとログインノードを停止する必要があります (コンピューティングフリートを停止するには、[`pcluster update-compute-fleet`](pcluster.update-compute-fleet-v3.md) を使用できます)。コンピューティングフリートとログインノードを停止したら、クラスターを更新 ([`pcluster update-cluster`](pcluster.update-cluster-v3.md)) して変更を有効にすることができます。

**更新ポリシー: これらの設定は、更新中に減らすことはできません。**  
これらの設定は変更できますが、減らすことはできません。これらの設定を減らす必要がある場合は、元のクラスターの設定を元に戻し、更新した設定で新しいクラスターを作成する必要があります。元のクラスターは後日削除できます。[`pcluster create-cluster`](pcluster.create-cluster-v3.md) を使用して新しいクラスターを作成します。[`pcluster delete-cluster`](pcluster.delete-cluster-v3.md) を使用して元のクラスターを削除します。

**更新ポリシー: この設定が変更された場合、更新は許可されません。強制的に更新した場合、新しい値は無視され、既存の値が使用されます。**  
この設定を変更すると、クラスターの更新ができなくなります。元のクラスターの設定を元に戻し、更新した設定で新しいクラスターを作成する必要があります。元のクラスターは後日削除できます。[`pcluster create-cluster`](pcluster.create-cluster-v3.md) を使用して新しいクラスターを作成します。[`pcluster delete-cluster`](pcluster.delete-cluster-v3.md) を使用して元のクラスターを削除します。

**更新ポリシー: この設定を更新で変更するためには、コンピューティングフリートが停止しているか、[`QueueUpdateStrategy`](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) が設定されている必要があります。**  
これらの設定は変更することができます。コンピューティングフリートを停止するか ([`pcluster update-compute-fleet`](pcluster.update-compute-fleet-v3.md) を使用します)、[`QueueUpdateStrategy`](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) を設定する必要があります。コンピューティングフリートを停止されるか、[`QueueUpdateStrategy`](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) が設定された後、クラスター ([`pcluster update-cluster`](pcluster.update-cluster-v3.md)) を更新して変更を有効にすることができます。  
この更新ポリシーは、 AWS ParallelCluster バージョン 3.2.0 以降でサポートされています。

**更新ポリシー:このリスト値の設定では、更新中に新しい値を追加することができ、既存の値を削除する場合はコンピューティングフリートを停止する必要があります。**  
これらの設定には更新時に新しい値を追加できます。リストに新しい値を追加すると、クラスターは ([`pcluster update-cluster`](pcluster.update-cluster-v3.md)) を使用して更新できます。  
リストから既存の値を削除するには、コンピューティングフリートを ([`pcluster update-compute-fleet`](pcluster.update-compute-fleet-v3.md) を使用して) 停止する必要があります。  
例えば、Slurm スケジューラを使用していて、新しいインスタンスタイプを [Instances/InstanceType](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Instances) に追加する場合は、コンピューティングフリートを停止せずにクラスターを更新できます。既存のインスタンスタイプを [Instances/InstanceType](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Instances) から削除するには、最初にコンピューティングフリートを停止する必要があります ([pcluster update-compute-fleet](pcluster.update-compute-fleet-v3.md) を使用します)。  
この更新ポリシーは、 AWS ParallelCluster バージョン 3.2.0 以降でサポートされています。

**更新ポリシー: キューのサイズを減らすには、コンピューティングフリートを停止するか、**[QueueUpdateStrategy](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy)** を TERMINATE に設定して、この設定を変更して更新する必要があります。**  
これらの設定は変更できますが、変更に伴ってキューのサイズが小さくなる場合は、コンピューティングフリートを停止するか (pcluster update-compute-fleet を使用)、[QueueUpdateStrategy](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) を TERMINATE に設定する必要があります。コンピューティングフリートを停止するか、[QueueUpdateStrategy](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) を TERMINATE に設定したら、クラスターを更新 ([pcluster update-cluster](pcluster.update-cluster-v3.md)) して変更を有効にすることができます。  
クラスターの容量のサイズを変更するときに設定した TERMINATE は、ノードリストの最後尾にあるノードのみを終了し、同じパーティションの他のすべてのノードはそのまま残します。  
例えば、クラスターの初期容量が `MinCount = 5` および `MaxCount = 10` である場合、ノードは `st-[1-5]; dy-[1-5]` です。クラスターのサイズを `MinCount = 3` および `MaxCount = 5` に変更すると、新しいクラスター容量はノード `st-[1-3]; dy-[1-2]` によって構成され、ノード は更新中に変更されません。更新中に終了されるのは、ノード `st-[4-5]; dy-[3-5]` のみです。  
以下の変更がサポートされており、コンピューティングフリートを停止したり、[QueueUpdateStrategy](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) を TERMINATE に設定したりする必要はありません。  
+ 新しい [SlurmQueue](Scheduling-v3.md#Scheduling-v3-SlurmQueues) の追加
+ 新しい [ComputeResource](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources) の追加
+ [MaxCount](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MaxCount) の増加
+ [MinCount](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MinCount) の増加と [MaxCount](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MaxCount) の同等以上の増加

  **注:** この更新ポリシーは、 AWS ParallelCluster バージョン 3.9.0 以降でサポートされています。

**更新ポリシー: このリスト値の設定では、コンピューティングフリートを停止するか、[`QueueUpdateStrategy`](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) が設定されている必要があります。既存の値を削除する場合は、コンピューティングフリートを停止する必要があります。**  
これらの設定には更新時に新しい値を追加できます。コンピューティングフリートを停止するか ([`pcluster update-compute-fleet`](pcluster.update-compute-fleet-v3.md) を使用します)、[`QueueUpdateStrategy`](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) を設定する必要があります。コンピューティングフリートを停止されるか、[`QueueUpdateStrategy`](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) が設定された後、クラスター ([`pcluster update-cluster`](pcluster.update-cluster-v3.md)) を更新して変更を有効にすることができます。  
リストから既存の値を削除するには、コンピューティングフリートを ([`pcluster update-compute-fleet`](pcluster.update-compute-fleet-v3.md) を使用して) 停止する必要があります。  
この更新ポリシーは、 AWS ParallelCluster バージョン 3.3.0 以降でサポートされています。

**更新ポリシー: マネージドプレースメントグループを削除するには、すべてのコンピューティングノードを停止する必要があります。この設定を更新で変更するためには、コンピューティングフリートが停止しているか、[`QueueUpdateStrategy`](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) が設定されている必要があります。**  
マネージドプレイスメントグループを削除するには、コンピューティングフリートを停止 ([`pcluster update-compute-fleet`](pcluster.update-compute-fleet-v3.md) を使用します) する必要があります。コンピューティングフリートを停止する前にクラスター更新を実行してマネージドプレイスメントグループを削除すると、無効な設定メッセージが返され、更新は続行されません。コンピューティングフリートを停止すると、インスタンスが実行されていないことが保証されます。

## `pcluster update-cluster` の例
<a name="pcluster-update-cluster-examples"></a>

これらの設定は変更できますが、変更に伴ってキューのサイズが小さくなる場合は、コンピューティングフリートを停止するか (pcluster update-compute-fleet を使用)、[QueueUpdateStrategy](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) を TERMINATE に設定する必要があります。コンピューティングフリートを停止するか、[QueueUpdateStrategy](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy) を TERMINATE に設定したら、クラスター ([pcluster update-cluster](pcluster.update-cluster-v3.md)) を更新して変更を有効にすることができます。
+ この例では、いくつかの許可された変更を伴う更新を実際に行い、更新を直接開始します。

  ```
  $ pcluster update-cluster --cluster-name cluster_name --cluster-config ~/.parallelcluster/test_cluster --region us-east-1
  {
    "cluster": {
      "clusterName": cluster_name,
      "cloudformationStackStatus": "UPDATE_IN_PROGRESS",
      "cloudformationStackArn": stack_arn,
      "region": "us-east-1",
      "version": "3.15.0",
      "clusterStatus": "UPDATE_IN_PROGRESS"
    },
    "changeSet": [
      {
        "parameter": "HeadNode.Networking.AdditionalSecurityGroups",
        "requestedValue": [
          "sg-0cd61884c4ad11234"
        ],
        "currentValue": [
          "sg-0cd61884c4ad16341"
        ]
      }
    ]
  }
  ```
+ この例では、いくつかの変更が許可されたドライランアップデートを行います。ドライランは、アップデートを開始せずに変更内容を報告するのに便利です。

  ```
  $ pcluster update-cluster --cluster-name cluster_name --cluster-config ~/.parallelcluster/test_cluster --region us-east-1 --dryrun true
  {
    "message": "Request would have succeeded, but DryRun flag is set.",
    "changeSet": [
      {
        "parameter": "HeadNode.Networking.AdditionalSecurityGroups",
        "requestedValue": [
          "sg-0cd61884c4ad11234"
        ],
        "currentValue": [
          "sg-0cd61884c4ad16341"
        ]
      }
    ]
  }
  ```
+ この例では、アップデートをブロックするいくつかの変更を加えたアップデートです。

  ```
  $ pcluster update-cluster --cluster-name cluster_name --cluster-config ~/.parallelcluster/test_cluster --region us-east-1
  {
    "message": "Update failure",
    "updateValidationErrors": [
      {
        "parameter": "HeadNode.Ssh.KeyName",
        "requestedValue": "mykey_2",
        "message": "Update actions are not currently supported for the 'KeyName' parameter. Restore 'KeyName' value to 'jenkinsjun'. If you need this change, please consider creating a new cluster instead of updating the existing one.",
        "currentValue": "mykey_1"
      },
      {
        "parameter": "Scheduling.SlurmQueues[queue1].ComputeResources[queue1-t2micro].InstanceType",
        "requestedValue": "c4.xlarge",
        "message": "All compute nodes must be stopped. Stop the compute fleet with the pcluster update-compute-fleet command",
        "currentValue": "t2.micro"
      },
      {
        "parameter": "SharedStorage[ebs1].MountDir",
        "requestedValue": "/my/very/very/long/shared_dir",
        "message": "Update actions are not currently supported for the 'MountDir' parameter. Restore 'MountDir' value to '/shared'. If you need this change, please consider creating a new cluster instead of updating the existing one.",
        "currentValue": "/shared"
      }
    ],
    "changeSet": [
      {
        "parameter": "HeadNode.Networking.AdditionalSecurityGroups",
        "requestedValue": [
          "sg-0cd61884c4ad11234"
        ],
        "currentValue": [
          "sg-0cd61884c4ad16341"
        ]
      },
      {
        "parameter": "HeadNode.Ssh.KeyName",
        "requestedValue": "mykey_2",
        "currentValue": "mykey_1"
      },
      {
        "parameter": "Scheduling.SlurmQueues[queue1].ComputeResources[queue1-t2micro].InstanceType",
        "requestedValue": "c4.xlarge",
        "currentValue": "t2.micro"
      },
      {
        "parameter": "SharedStorage[ebs1].MountDir",
        "requestedValue": "/my/very/very/long/shared_dir",
        "currentValue": "/shared"
      }
    ]
  }
  ```