

# 스팟 배치 점수 계산
<a name="work-with-spot-placement-score"></a>

대상 목표 용량 및 컴퓨팅 요구 사항에 따라 스팟 배치 점수를 계산할 수 있습니다. 자세한 내용은 [스팟 배치 점수의 작동 방식](how-sps-works.md) 섹션을 참조하세요.

**필요한 권한**  
필수 권한이 있는지 확인하세요. 자세한 내용은 [스팟 배치 점수에 필요한 권한](sps-iam-permission.md) 섹션을 참조하세요.

**Topics**
+ [

## 인스턴스 속성을 사용하여 계산
](#sps-specify-instance-attributes-console)
+ [

## 인스턴스 유형을 사용하여 계산
](#sps-specify-instance-types-console)
+ [

## AWS CLI를 사용하여 계산
](#calculate-sps-cli)

**자동화된 솔루션을 찾고 있나요?** 이 사용 설명서의 수동 단계를 따르는 대신 스팟 배치 점수 추적기 대시보드를 구축하여 자동으로 점수를 캡처하고 이를 Amazon CloudWatch에 저장할 수 있습니다. 자세한 내용은 [AWS에서의 스팟 배치 점수 추적기 대시보드 구축 지침](https://aws.amazon.com/solutions/guidance/building-a-spot-placement-score-tracker-dashboard-on-aws/)을 참조하세요.

## 인스턴스 속성을 사용하여 계산
<a name="sps-specify-instance-attributes-console"></a>

**인스턴스 속성을 지정하여 스팟 배치 점수 계산**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **스팟 요청**을 선택합니다.

1. **스팟 인스턴스 요청** 옆의 아래쪽 화살표를 선택하고 **스팟 배치 점수 계산**을 선택합니다.

1. **요구 사항 입력(Enter requirements)**을 선택합니다.

1. **목표 용량(Target capacity)**에서 **인스턴스(instances)**, **vCPU(vCPUs)** 또는 **메모리(MiB)(memory (MiB))** 양을 기준으로 원하는 용량을 입력합니다.

1. **인스턴스 유형 요구 사항(Instance type requirements)**에서 컴퓨팅 요구 사항을 지정하고 Amazon EC2가 이러한 요구 사항에 따라 최적의 인스턴스 유형을 식별할 수 있도록 하려면 **컴퓨팅 요구 사항에 맞는 인스턴스 속성 지정(Specify instance attributes that match your compute requirements)**을 선택합니다.

1. **vCPU(vCPUs)**에 원하는 최소 및 최대 vCPU 수를 입력합니다. 무한을 지정하려면 **최소 없음(No minimum)**, **최대 없음(No maximum)** 또는 둘 다 선택합니다.

1. **메모리(GiB)(Memory (GiB))**에 원하는 최소 및 최대 메모리 양을 입력합니다. 무한을 지정하려면 **최소 없음(No minimum)**, **최대 없음(No maximum)** 또는 둘 다 선택합니다.

1. **CPU 아키텍처(CPU architecture)**에서 필요한 인스턴스 아키텍처를 선택합니다.

1. (선택 사항) **추가 인스턴스 속성(Additional instance attributes)**에서 필요에 따라 하나 이상의 속성을 지정하여 컴퓨팅 요구 사항을 더 자세히 표현할 수 있습니다. 각 추가 속성은 요청에 추가 제약 조건을 추가합니다. 추가 속성을 생략할 수 있으며 생략 시 기본값이 사용됩니다. 각 속성과 기본값에 대한 설명은 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html)를 참조하세요.

1. (선택 사항) 지정한 속성을 가진 인스턴스 유형을 보려면 **일치하는 인스턴스 유형 미리 보기(Preview matching instance types)**를 확장합니다. 배치 평가에 사용되는 인스턴스 유형을 제외하려면 인스턴스를 선택한 다음 **선택한 인스턴스 유형 제외(Exclude selected instance types)**를 선택합니다.

1. **배치 점수 로드(Load placement scores)**를 선택하고 결과를 검토합니다.

1. (선택 사항) 특정 리전에 대한 스팟 배치 점수를 표시하려면 **평가할 리전(Regions to evaluate)**에서 평가할 리전을 선택한 다음 **배치 점수 계산(Calculate placement scores)**을 선택합니다.

1. (선택 사항) 표시된 리전에서 가용 영역에 대한 스팟 배치 점수를 표시하려면 **가용 영역당 배치 점수 제공(Provide placement scores per Availability Zone)** 확인란을 선택합니다. 점수가 매겨진 가용 영역 목록은 모든 스팟 용량을 단일 가용 영역으로 시작하려는 경우에 유용합니다.

1. (선택 사항) 컴퓨팅 요구 사항을 편집하고 새 배치 점수를 얻으려면 **편집(Edit)**을 선택하고 필요에 따라 조정한 다음 **배치 점수 계산(Calculate placement scores)**을 선택합니다.

## 인스턴스 유형을 사용하여 계산
<a name="sps-specify-instance-types-console"></a>

**인스턴스 유형을 지정하여 스팟 배치 점수 계산(콘솔)**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **스팟 요청**을 선택합니다.

1. **스팟 인스턴스 요청** 옆의 아래쪽 화살표를 선택하고 **스팟 배치 점수 계산**을 선택합니다.

1. **요구 사항 입력(Enter requirements)**을 선택합니다.

1. **목표 용량(Target capacity)**에서 **인스턴스(instances)**, **vCPU(vCPUs)** 또는 **메모리(MiB)(memory (MiB))** 양을 기준으로 원하는 용량을 입력합니다.

1. 사용할 인스턴스 유형을 지정하려면 **인스턴스 유형 요구 사항(Instance type requirements)**에서 **수동으로 인스턴스 유형 선택(Manually select instance types)**을 선택합니다.

1. **인스턴스 유형 선택(Select instance types)**을 선택하고 사용할 인스턴스 유형을 선택한 다음 **선택(Select)**을 선택합니다. 인스턴스 유형을 빠르게 찾으려면 필터 막대를 사용하여 여러 속성으로 인스턴스 유형을 필터링합니다.

1. **배치 점수 로드(Load placement scores)**를 선택하고 결과를 검토합니다.

1. (선택 사항) 특정 리전에 대한 스팟 배치 점수를 표시하려면 **평가할 리전(Regions to evaluate)**에서 평가할 리전을 선택한 다음 **배치 점수 계산(Calculate placement scores)**을 선택합니다.

1. (선택 사항) 표시된 리전에서 가용 영역에 대한 스팟 배치 점수를 표시하려면 **가용 영역당 배치 점수 제공(Provide placement scores per Availability Zone)** 확인란을 선택합니다. 점수가 매겨진 가용 영역 목록은 모든 스팟 용량을 단일 가용 영역으로 시작하려는 경우에 유용합니다.

1. (선택 사항) 인스턴스 유형 목록을 편집하고 새 배치 점수를 얻으려면 **편집(Edit)**을 선택하고 필요에 따라 조정한 다음 **배치 점수 계산(Calculate placement scores)**을 선택합니다.

## AWS CLI를 사용하여 계산
<a name="calculate-sps-cli"></a>

**스팟 배치 점수 계산**

1. (선택 사항) 스팟 배치 점수 구성에 지정할 수 있는 가능한 모든 파라미터를 생성하려면 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html) 명령과 `--generate-cli-skeleton` 파라미터를 사용합니다.

   ```
   aws ec2 get-spot-placement-scores \
       --region us-east-1 \
       --generate-cli-skeleton
   ```

   다음은 예제 출력입니다.

   ```
   {
       "InstanceTypes": [
           ""
       ],
       "TargetCapacity": 0,
       "TargetCapacityUnitType": "vcpu",
       "SingleAvailabilityZone": true,
       "RegionNames": [
           ""
       ],
       "InstanceRequirementsWithMetadata": {
           "ArchitectureTypes": [
               "x86_64_mac"
           ],
           "VirtualizationTypes": [
               "hvm"
           ],
           "InstanceRequirements": {
               "VCpuCount": {
                   "Min": 0,
                   "Max": 0
               },
               "MemoryMiB": {
                   "Min": 0,
                   "Max": 0
               },
               "CpuManufacturers": [
                   "amd"
               ],
               "MemoryGiBPerVCpu": {
                   "Min": 0.0,
                   "Max": 0.0
               },
               "ExcludedInstanceTypes": [
                   ""
               ],
               "InstanceGenerations": [
                   "previous"
               ],
               "SpotMaxPricePercentageOverLowestPrice": 0,
               "OnDemandMaxPricePercentageOverLowestPrice": 0,
               "BareMetal": "excluded",
               "BurstablePerformance": "excluded",
               "RequireHibernateSupport": true,
               "NetworkInterfaceCount": {
                   "Min": 0,
                   "Max": 0
               },
               "LocalStorage": "included",
               "LocalStorageTypes": [
                   "hdd"
               ],
               "TotalLocalStorageGB": {
                   "Min": 0.0,
                   "Max": 0.0
               },
               "BaselineEbsBandwidthMbps": {
                   "Min": 0,
                   "Max": 0
               },
               "AcceleratorTypes": [
                   "fpga"
               ],
               "AcceleratorCount": {
                   "Min": 0,
                   "Max": 0
               },
               "AcceleratorManufacturers": [
                   "amd"
               ],
               "AcceleratorNames": [
                   "vu9p"
               ],
               "AcceleratorTotalMemoryMiB": {
                   "Min": 0,
                   "Max": 0
               }
           }
       },
       "DryRun": true,
       "MaxResults": 0,
       "NextToken": ""
   }
   ```

1. 이전 단계의 출력을 사용하여 JSON 구성 파일을 생성하고 다음과 같이 구성합니다.

   1. `TargetCapacity`에 대해 인스턴스, vCPU 또는 메모리(MiB) 양으로 스팟 용량을 입력합니다.

   1. `TargetCapacityUnitType`에 대해 목표 용량의 단위를 입력합니다. 이 파라미터를 생략하면 기본적으로 `units`가 사용됩니다.

      유효한 값 :`units`(인스턴스 수로 변환됨) \$1 `vcpu` \$1 `memory-mib`

   1. `SingleAvailabilityZone`의 경우 점수가 매겨진 가용 영역 목록을 반환하는 응답에 대해 `true`를 지정합니다. 점수가 매겨진 가용 영역 목록은 모든 스팟 용량을 단일 가용 영역으로 시작하려는 경우에 유용합니다. 이 파라미터를 생략하면 기본값으로 `false`가 사용되고 응답에서 점수가 매겨진 리전 목록을 반환합니다.

   1. (선택 사항) `RegionNames`에 대해 필터로 사용할 리전을 지정합니다. 리전 코드(예: `us-east-1`)를 지정해야 합니다.

      리전 필터를 사용하면 응답에서 지정한 리전만 반환합니다. `SingleAvailabilityZone`에 대해 `true`를 지정한 경우 응답은 지정된 리전의 가용 영역만 반환합니다.

   1. `InstanceTypes` 또는 `InstanceRequirements` 중 하나를 포함할 수 있지만 둘 다 동일한 구성에 포함할 수는 없습니다.

      JSON 구성에서 다음 중 하나를 지정합니다.
      + 인스턴스 유형 목록을 지정하려면 `InstanceTypes` 파라미터에 인스턴스 유형을 지정합니다. 세 가지 이상의 서로 다른 인스턴스 유형을 지정합니다. 인스턴스 유형을 하나 또는 2개만 지정하는 경우 스팟 배치 점수는 낮은 점수를 반환합니다. 인스턴스 유형 목록은 [Amazon EC2 인스턴스 유형](https://aws.amazon.com/ec2/instance-types/)을 참조하세요.
      + Amazon EC2가 해당 속성과 일치하는 인스턴스 유형을 식별하도록 인스턴스 속성을 지정하려면 `InstanceRequirements` 구조에 있는 속성을 지정합니다.

        `VCpuCount`, `MemoryMiB` 및 `CpuManufacturers`의 값을 입력해야 합니다. 다른 속성을 생략할 수 있으며 생략 시 기본값이 사용됩니다. 각 속성과 기본값에 대한 설명은 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html)를 참조하세요.

      구성에 대한 예시는 [구성의 예](#sps-example-configs) 섹션을 참조하세요.

1. JSON 파일에 지정한 요구 사항에 대한 스팟 배치 점수를 얻으려면 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html) 명령을 사용하고 `--cli-input-json` 파라미터를 사용하여 JSON 파일의 이름과 경로를 지정합니다.

   ```
   aws ec2 get-spot-placement-scores \
       --region us-east-1 \
       --cli-input-json file://file_name.json
   ```

   `SingleAvailabilityZone`이 `false`로 설정되거나 생략된 경우의 출력 예제(생략된 경우 기본적으로 `false` 사용) – 점수가 매겨진 리전 목록이 반환됩니다.

   ```
   "SpotPlacementScores": [
       {
           "Region": "us-east-1",
           "Score": 7
       },
       {
           "Region": "us-west-1",
           "Score": 5
       },  
      ...
   ```

   `SingleAvailabilityZone`이 `true`로 설정된 경우의 출력 예 – 점수가 매겨진 가용 영역 목록이 반환됩니다.

   ```
   "SpotPlacementScores": [
       {
           "Region": "us-east-1",
           "AvailabilityZoneId": "use1-az1",
           "Score": 8
       },
       {
           "Region": "us-east-1",
           "AvailabilityZoneId": "usw2-az3",
           "Score": 6
       },
      ...
   ```

### 구성의 예
<a name="sps-example-configs"></a>

AWS CLI를 사용하는 경우 다음 예제 구성을 사용할 수 있습니다.

**Topics**
+ [

#### 예시: 인스턴스 유형 및 목표 용량 지정
](#example-config-instance-type-override)
+ [

#### 예시: 인스턴스 유형 및 목표 용량(메모리) 지정
](#example-config-instance-type-memory-unit-override)
+ [

#### 예시: 속성 기반 인스턴스 유형 선택을 위한 속성 지정
](#example-config-attribute-based-instance-type-selection)
+ [

#### 예시: 속성 기반 인스턴스 유형 선택을 위한 속성을 지정하고 점수가 매겨진 가용 영역의 목록 반환
](#example-config-sps-singleAZ)

#### 예시: 인스턴스 유형 및 목표 용량 지정
<a name="example-config-instance-type-override"></a>

다음 예제 구성은 3개의 서로 다른 인스턴스 유형과 스팟 인스턴스 500개의 대상 스팟 용량을 지정합니다.

```
{
    "InstanceTypes": [
        "m5.4xlarge",
        "r5.2xlarge",
        "m4.4xlarge"
    ], 
    "TargetCapacity": 500
}
```

#### 예시: 인스턴스 유형 및 목표 용량(메모리) 지정
<a name="example-config-instance-type-memory-unit-override"></a>

다음 예제 구성은 세 가지 인스턴스 유형과 500,000MiB 메모리의 대상 스팟 용량을 지정합니다. 여기서 시작할 스팟 인스턴스의 수는 총 500,000MiB의 메모리를 제공해야 합니다.

```
{
    "InstanceTypes": [
        "m5.4xlarge",
        "r5.2xlarge",
        "m4.4xlarge"
    ], 
    "TargetCapacity": 500000,
    "TargetCapacityUnitType": "memory-mib"
}
```

#### 예시: 속성 기반 인스턴스 유형 선택을 위한 속성 지정
<a name="example-config-attribute-based-instance-type-selection"></a>

다음 예제 구성은 속성 기반 인스턴스 유형 선택을 위해 구성되며 그 뒤에 예제 구성에 대한 텍스트 설명이 나옵니다.

```
{
    "TargetCapacity": 5000,
    "TargetCapacityUnitType": "vcpu",
    "InstanceRequirementsWithMetadata": {
        "ArchitectureTypes": ["arm64"],
        "VirtualizationTypes": ["hvm"],
        "InstanceRequirements": {
            "VCpuCount": {
                "Min": 1,
                "Max": 12
            },
            "MemoryMiB": {
                "Min": 512
            }
        }
    }
}
```

****`InstanceRequirementsWithMetadata`****  
속성 기반 인스턴스 유형 선택을 사용하려면 구성에 `InstanceRequirementsWithMetadata` 구조를 포함하고 스팟 인스턴스에 대해 원하는 속성을 지정해야 합니다.

앞의 예에서는 다음과 같은 필수 인스턴스 속성이 지정되었습니다.
+ `ArchitectureTypes` - 인스턴스 유형의 아키텍처 유형은 `arm64`여야 합니다.
+ `VirtualizationTypes` - 인스턴스 유형의 가상화 유형은 `hvm`이어야 합니다.
+ `VCpuCount` - 인스턴스 유형에 최소 1개, 최대 12개의 vCPU가 있어야 합니다.
+ `MemoryMiB` - 인스턴스 유형에 최소 512MiB의 메모리가 있어야 합니다. `Max` 파라미터를 생략하면 최대 제한이 없는 것입니다.

지정할 수 있는 몇 가지 다른 선택적 속성이 있습니다. 속성 목록은 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html)를 참조하세요.

**`TargetCapacityUnitType`**  
`TargetCapacityUnitType` 파라미터는 목표 용량의 단위를 지정합니다. 이 예제에서 목표 용량은 `5000`이고 목표 용량 단위 유형은 `vcpu`입니다. 이들은 함께 원하는 목표 용량 vCPU 5000개를 지정합니다. 여기서 시작할 스팟 인스턴스 수는 총 5000개의 vCPU를 제공해야 합니다.

#### 예시: 속성 기반 인스턴스 유형 선택을 위한 속성을 지정하고 점수가 매겨진 가용 영역의 목록 반환
<a name="example-config-sps-singleAZ"></a>

다음 예제 구성은 속성 기반 인스턴스 유형 선택을 위해 구성됩니다. `"SingleAvailabilityZone": true`를 지정하면 응답에서 점수가 매겨진 가용 영역 목록을 반환합니다.

```
{
    "TargetCapacity": 1000,
    "TargetCapacityUnitType": "vcpu",
    "SingleAvailabilityZone": true,
    "InstanceRequirementsWithMetadata": {
        "ArchitectureTypes": ["arm64"],
        "VirtualizationTypes": ["hvm"],
        "InstanceRequirements": {
            "VCpuCount": {
                "Min": 1,
                "Max": 12
            },
            "MemoryMiB": {
                "Min": 512
            }
        }
    }
}
```