

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Luncurkan instans dengan Pemesanan Kapasitas Sesuai Permintaan (ODCR)
<a name="launch-instances-odcr-v3"></a>

Dengan [Reservasi Kapasitas Sesuai Permintaan (ODCR)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html), Anda dapat memesan kapasitas untuk instans Amazon EC2 klaster di Availability Zone tertentu. Dengan cara ini, Anda dapat membuat dan mengelola Reservasi Kapasitas secara independen dari akun penagihan yang ditawarkan [Savings Plans](https://aws.amazon.com/savingsplans/) atau [Instans Cadangan regional](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/reserved-instances-scope.html).

Anda dapat mengkonfigurasi `open` atau `targeted` ODCR. *Open* ODCR mencakup setiap instance yang cocok dengan atribut ODCR. Atribut ini adalah tipe instance, platform, dan Availability Zone. Anda harus secara eksplisit mendefinisikan *Targeted* ODCR dalam konfigurasi cluster. Untuk menentukan apakah ODCR adalah `open` atau`targeted`, jalankan perintah Amazon AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html)EC2.

Anda juga dapat membuat ODCR dalam grup penempatan cluster yang disebut [cluster placement group on-demand capacity reservation (CPG ODCR](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html)).

Beberapa ODCRs dapat dikelompokkan dalam grup sumber daya. Ini dapat didefinisikan dalam file konfigurasi cluster. Untuk informasi selengkapnya tentang grup sumber daya, lihat [Apa itu grup sumber daya?](https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html) dalam *Panduan Pengguna Resource Groups dan Tags*.

## Menggunakan ODCR dengan AWS ParallelCluster
<a name="odcr-parallelcuster-v3"></a>

AWS ParallelCluster mendukung ODCR terbuka. Saat menggunakan ODCR terbuka, Anda tidak perlu menentukan apa pun. AWS ParallelCluster Instance dipilih secara otomatis untuk cluster. Anda dapat menentukan grup penempatan yang ada atau AWS ParallelCluster membuat yang baru untuk Anda.

### ODCR dalam konfigurasi cluster
<a name="odcr-parallelcuster-config-v3"></a>

Dimulai dengan AWS ParallelCluster versi 3.3.0, Anda dapat menentukan ODCR dalam file konfigurasi cluster, tanpa perlu menentukan penggantian instans proses Amazon EC2.

Anda mulai dengan membuat [reservasi kapasitas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-using.html) dan [grup sumber daya](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-cr-group.html) menggunakan metode yang dijelaskan dalam dokumentasi tertaut untuk masing-masing. Anda harus menggunakan AWS CLI metode untuk membuat grup reservasi kapasitas. Jika Anda menggunakan Konsol Manajemen AWS, Anda hanya dapat membuat grup sumber daya berbasis Tag atau Stack. Grup sumber daya berbasis tag dan berbasis Stack tidak didukung oleh AWS ParallelCluster atau AWS CLI saat meluncurkan instance dengan reservasi kapasitas.

Setelah reservasi kapasitas dan grup sumber daya dibuat, tentukan dalam [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`CapacityReservationTarget`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-CapacityReservationTarget)atau/[`SlurmQueues`[`ComputeResources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources)](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`CapacityReservationTarget`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-CapacityReservationTarget)seperti yang ditunjukkan pada contoh konfigurasi cluster berikut. Ganti yang *values* disorot dengan warna merah dengan nilai valid Anda.

```
Image:
  Os: os
HeadNode:
  InstanceType: head_node_instance
  Networking:
    SubnetId: public_subnet_id
  Ssh:
    KeyName: key_name
Scheduling:
  Scheduler: scheduler
  SlurmQueues:
    - Name: queue1
      Networking:
        SubnetIds:
          - private_subnet_id
      ComputeResources:
        - Name: cr1
          Instances:
            - InstanceType: instance
          MaxCount: max_queue_size
          MinCount: max_queue_size
          Efa:
            Enabled: true
          CapacityReservationTarget:
            CapacityReservationResourceGroupArn: capacity_reservation_arn
```

### USANG/TIDAK DIREKOMENDASIKAN - ODCR yang ditargetkan dengan penggantian instans Amazon EC2
<a name="odcr-parallelcuster-override-v3"></a>

**Awas**  
Dimulai dengan AWS ParallelCluster versi 3.3.0, kami tidak merekomendasikan metode ini. Bagian ini tetap sebagai referensi untuk implementasi menggunakan versi sebelumnya.
Metode ini tidak kompatibel dengan alokasi tipe instance Multiple dengan Slurm.

Support untuk `targeted` ODCRs ditambahkan di AWS ParallelCluster 3.1.1. Dalam rilis ini, mekanisme diperkenalkan yang mengesampingkan `RunInstances` parameter EC2 dan meneruskan informasi tentang reservasi yang akan digunakan untuk setiap sumber daya komputasi yang dikonfigurasi. AWS ParallelCluster Mekanisme ini kompatibel dengan `targeted` ODCR. Namun, ketika Anda menggunakan `targeted` ODCR, Anda harus menentukan konfigurasi `run-instances` override. *Ditargetkan* ODCRs harus didefinisikan secara eksplisit dalam perintah Amazon AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)EC2. Untuk menentukan apakah ODCR adalah `open` atau `targeted` menjalankan perintah Amazon AWS CLI EC2. [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html)

Beberapa ODCRs dapat dikelompokkan dalam grup sumber daya. Ini dapat digunakan dalam run-instance override untuk menargetkan beberapa ODCRs pada saat yang bersamaan.

Jika Anda menggunakan `targeted` ODCR, Anda dapat menentukan grup penempatan. Namun, Anda juga perlu menentukan konfigurasi `run-instances` override.

Misalkan itu AWS membuat `targeted` ODCR untuk Anda atau Anda memiliki kumpulan Instans Cadangan tertentu. Kemudian, Anda tidak dapat menentukan grup penempatan. Aturan yang dikonfigurasi oleh AWS mungkin bertentangan dengan pengaturan grup penempatan. Jadi, jika grup penempatan diperlukan untuk aplikasi Anda, gunakan [CPG ODCR](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html). Dalam kedua kasus, Anda juga harus menentukan konfigurasi `run-instances` override.

Jika Anda menggunakan CPG ODCR, Anda harus menentukan konfigurasi `run-instances` override dan Anda harus menentukan grup penempatan yang sama dalam konfigurasi cluster.

### Menggunakan Instans Cadangan dengan AWS ParallelCluster
<a name="odcr-reserved-instances"></a>

Instans cadangan [berbeda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html#capacity-reservations-differences) dari Reservasi Kapasitas (ODCR). Ada [2 jenis](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/reserved-instances-scope.html) instance cadangan. Instans Cadangan *Regional* tidak menyimpan kapasitas. Instans Cadangan *zona* cadangan kapasitas di Availability Zone yang ditentukan.

Jika Anda memiliki Instans Cadangan Regional, tidak ada reservasi kapasitas dan Anda bisa mendapatkan Kesalahan Kapasitas Tidak Cukup. Jika Anda memiliki Instans Cadangan zona, Anda memiliki reservasi kapasitas, tetapi tidak ada parameter `run-instances` API yang dapat Anda gunakan untuk menentukannya.

Instans cadangan didukung oleh AWS ParallelCluster versi apa pun. Anda tidak perlu menentukan apa pun AWS ParallelCluster dan instance dipilih secara otomatis.

Saat menggunakan Instans Cadangan zona, Anda dapat menghindari potensi Kesalahan Kapasitas Tidak Cukup dengan menghilangkan spesifikasi grup penempatan dalam konfigurasi klaster.

### USANG/TIDAK DIREKOMENDASIKAN - Menggunakan `RunInstances` kustomisasi dalam AWS ParallelCluster 3 untuk Pemesanan Kapasitas `targeted` Sesuai Permintaan (ODCR)
<a name="odcr-run-instances"></a>

**Awas**  
Dimulai dengan AWS ParallelCluster versi 3.3.0, kami tidak merekomendasikan metode ini. Bagian ini tetap sebagai referensi untuk implementasi menggunakan versi sebelumnya.
Metode ini tidak kompatibel dengan alokasi tipe instance Multiple dengan Slurm.

Anda dapat mengganti parameter Amazon `RunInstances` EC2 untuk setiap sumber daya komputasi yang dikonfigurasi dalam antrean klaster. Untuk melakukannya, buat `/opt/slurm/etc/pcluster/run_instances_overrides.json` file di node kepala cluster dengan konten potongan kode berikut:
+ `${queue_name}`adalah nama antrian yang ingin Anda terapkan penggantian.
+ `${compute_resource_name}`adalah sumber daya komputasi yang ingin Anda terapkan penggantian.
+ `${overrides}`adalah objek JSON arbitrer yang berisi daftar `RunInstances` penggantian yang akan digunakan untuk kombinasi spesifik antrian dan tipe instance. Sintaks overrides harus mengikuti spesifikasi yang sama yang didokumentasikan dalam panggilan boto3 [run\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.run_instances).

```
{
    "${queue_name}": {
        "${compute_resource_name}": {
            ${overrides}
        },
        ...
    },
    ...
}
```

Misalnya, JSON berikut mengkonfigurasi grup ODCR yang akan digunakan `group_arn` untuk `p4d.24xlarge` instance yang dikonfigurasi dalam dan. `my-queue` `my-compute-resource`

```
{
    "my-queue": {
        "my-compute-resource": {
            "CapacityReservationSpecification": {
                "CapacityReservationTarget": {
                    "CapacityReservationResourceGroupArn": "group_arn"
                }
            }
        }
    }
}
```

Setelah file JSON ini dibuat, AWS ParallelCluster daemon yang bertanggung jawab untuk penskalaan cluster secara otomatis menggunakan konfigurasi override untuk peluncuran misalnya. Untuk mengonfirmasi bahwa parameter yang ditentukan sedang digunakan untuk penyediaan contoh, lihat file log berikut:
+ `/var/log/parallelcluster/clustermgtd`(untuk kapasitas statis)
+ `/var/log/parallelcluster/slurm_resume.log`(untuk kapasitas dinamis)

Jika parameternya benar, Anda akan menemukan entri log yang berisi yang berikut ini:

```
Found RunInstances parameters override. Launching instances with: <parameters_list>
```

### USANG/TIDAK DIREKOMENDASIKAN - Buat klaster dengan Pemesanan Kapasitas `targeted` Sesuai Permintaan (ODCR)
<a name="odcr-create-cluster"></a>

**Awas**  
Dimulai dengan AWS ParallelCluster versi 3.3.0, kami tidak merekomendasikan metode ini. Bagian ini tetap sebagai referensi untuk implementasi menggunakan versi sebelumnya.
Metode ini tidak kompatibel dengan[Beberapa alokasi tipe instans dengan Slurm](slurm-multiple-instance-allocation-v3.md).

1. **Buat grup sumber daya, untuk kapasitas grup.**

   ```
   $ aws resource-groups create-group --name EC2CRGroup \ 
       --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'
   ```
**catatan**  
Grup sumber daya tidak mendukung sumber daya yang dibagikan oleh akun lain.  
Jika target ODCR dibagikan oleh akun lain, Anda tidak perlu membuat grup sumber daya. Gunakan `CapacityReservationId` alih-alih grup sumber daya di langkah 3.  

   ```
   #!/bin/bash
   set -e
   
   # Override run_instance attributes
   cat > /opt/slurm/etc/pcluster/run_instances_overrides.json << EOF
   {
       "my-queue": {
           "my-compute-resource": {
               "CapacityReservationSpecification": {
                   "CapacityReservationTarget": {
                       "CapacityReservationId": "cr-abcdef01234567890"
                   }
               }
           }
       }
   }
   EOF
   ```

   Tambahkan reservasi kapasitas ke grup sumber daya. Setiap kali Anda membuat ODCR baru, tambahkan ke Reservasi Grup. Ganti `ACCOUNT_ID` dengan ID akun Anda, `PLACEHOLDER_CAPACITY_RESERVATION` dengan ID reservasi kapasitas Anda, dan `REGION_ID` dengan Wilayah AWS ID Anda (misalnya, us-east-1).

   ```
   $ aws resource-groups group-resources --region REGION_ID --group EC2CRGroup \
       --resource-arns arn:aws:ec2:REGION_ID:ACCOUNT_ID:capacity-reservation/PLACEHOLDER_CAPACITY_RESERVATION
   ```

   Buat dokumen kebijakan di komputer lokal Anda. Ganti `ACCOUNT_ID` dengan ID akun Anda dan `REGION_ID` dengan Wilayah AWS ID Anda (misalnya, us-east-1).

   ```
   cat > policy.json << EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "RunInstancesInCapacityReservation",
               "Effect": "Allow",
               "Action": "ec2:RunInstances",
               "Resource": [
                   "arn:aws:ec2:REGION_ID:ACCOUNT_ID:capacity-reservation/*",
                   "arn:aws:resource-groups:REGION_ID:ACCOUNT_ID:group/*"
               ]
           }
       ]
   }
   EOF
   ```

1. **Buat kebijakan IAM tentang Anda Akun AWS menggunakan file json yang Anda buat.**

   ```
   $ aws iam create-policy --policy-name RunInstancesCapacityReservation --policy-document file://policy.json
   ```

1. **Buat skrip instalasi posting berikut secara lokal pada instance dan beri nama. `postinstall.sh`**

   Ganti `ACCOUNT_ID` dengan Akun AWS ID Anda, dan `REGION_ID` dengan Wilayah AWS ID Anda (misalnya, us-east-1).

   ```
   #!/bin/bash
   set -e
   
   # Override run_instance attributes
   cat > /opt/slurm/etc/pcluster/run_instances_overrides.json << EOF
   {
       "my-queue": {
           "my-compute-resource": {
               "CapacityReservationSpecification": {
                   "CapacityReservationTarget": {
                       "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:REGION_ID:ACCOUNT_ID:group/EC2CRGroup"
                   }
               }
           }
       }
   }
   EOF
   ```

   Unggah file ke bucket Amazon S3. Ganti *amzn-s3-demo-bucket* dengan nama bucket S3 spesifik Anda.

   ```
   $ aws s3 mb s3://amzn-s3-demo-bucket
   aws s3 cp postinstall.sh s3://amzn-s3-demo-bucket/postinstall.sh
   ```

1. **Buat konfigurasi cluster lokal, ganti placeholder dengan nilai Anda sendiri.**

   ```
   Region: REGION_ID
   Image:
     Os: alinux2
   HeadNode:
     InstanceType: c5.2xlarge
     Ssh:
       KeyName: YOUR_SSH_KEY
     Iam:
       S3Access:
         - BucketName: amzn-s3-demo-bucket
       AdditionalIamPolicies:
         - Policy: arn:aws:iam::ACCOUNT_ID:policy/RunInstancesCapacityReservation
     ## This post-install script is executed after the node is configured.
     ## It is used to install scripts at boot time and specific configurations
     ## In the script below we are overriding the calls to RunInstance to force
     ## the provisioning of our my-queue partition to go through
     ## the On-Demand Capacity Reservation
     CustomActions:
       OnNodeConfigured:
         Script: s3://amzn-s3-demo-bucket/postinstall.sh
     Networking:
       SubnetId: YOUR_PUBLIC_SUBNET_IN_TARGET_AZ
   
   Scheduling:
     Scheduler: slurm
     SlurmQueues:
       - Name: my-queue
         ComputeResources:
           - MinCount: 0
             MaxCount: 100
             InstanceType: p4d.24xlarge
             Name: my-compute-resource
             Efa:
               Enabled: true
         Networking:
           ## PlacementGroup:
           ##   Enabled: true ## Keep PG disabled if using targeted ODCR
           SubnetIds:
             - YOUR_PRIVATE_SUBNET_IN_TARGET_AZ
   ```

1. **Buat cluster.**

   Gunakan perintah berikut untuk membuat cluster. Ganti `cluster-config.yaml` dengan nama file konfigurasi Anda, `cluster-dl` dengan nama cluster Anda, dan *REGION\$1ID* dengan ID Wilayah Anda (misalnya, us-east-1).

   ```
   $ pcluster create-cluster --cluster-configuration cluster-config.yaml --cluster-name cluster-dl --region REGION_ID
   ```

   Setelah cluster dibuat, skrip pasca-instal berjalan di node kepala. Skrip membuat `run_instances_overrides.json` file dan mengganti panggilan untuk memaksa penyediaan partisi `RunInstances` untuk melalui Reservasi Kapasitas Sesuai Permintaan.

    AWS ParallelCluster Daemon yang bertanggung jawab untuk penskalaan klaster secara otomatis menggunakan konfigurasi ini untuk instance baru yang diluncurkan. Untuk mengonfirmasi bahwa parameter yang ditentukan sedang digunakan untuk menyediakan instance, Anda dapat melihat file log berikut:
   + `/var/log/parallelcluster/clustermgtd`(untuk kapasitas statis - [`MinCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MinCount)` > 0`)
   + `/var/log/parallelcluster/slurm_resume.log`(untuk kapasitas dinamis)

   Jika parameternya benar, Anda akan menemukan entri log berisi yang berikut ini.

   ```
   Found RunInstances parameters override. Launching instances with: <parameters_list>
   ```

 **Memperbarui `RunInstances` penggantian** 

Anda dapat memperbarui konfigurasi JSON yang dihasilkan kapan saja tanpa menghentikan armada komputasi. Setelah perubahan diterapkan, semua instance baru diluncurkan dengan konfigurasi yang diperbarui. Jika Anda perlu menerapkan konfigurasi yang diperbarui ke node yang sedang berjalan, daur ulang node dengan memaksa penghentian instance dan tunggu AWS ParallelCluster untuk mengganti node tersebut. Anda dapat melakukannya dengan menghentikan instance dari konsol Amazon EC2 AWS CLI atau, atau dengan menyetel node Slurm dalam `DOWN` status atau. `DRAIN`

Gunakan perintah berikut untuk mengatur Slurm node ke `DOWN` atau`DRAIN`.

```
$ scontrol update nodename=my-queue-dy-my-compute-resource-1 state=down reason=your_reason
scontrol update nodename=my-queue-dy-my-compute-resource-1 state=drain reason=your_reason
```