

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用適用於 的 Amazon EC2 Spot 最佳實務 AWS Batch
<a name="bestpractice6"></a>

當您選擇 Amazon Elastic Compute Cloud (EC2) Spot 執行個體時，您可以最佳化工作流程以節省成本，有時可大幅節省成本。如需詳細資訊，請參閱 [Amazon EC2 Spot 的最佳實務](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#be-instance-type-flexible)。

若要最佳化工作流程以節省成本，請考慮下列 Amazon EC2 Spot 最佳實務 AWS Batch：
+ **選擇`SPOT_CAPACITY_OPTIMIZED`配置策略** – 從最深層的 Amazon EC2 Spot 容量集區 AWS Batch 中選擇 Amazon EC2 執行個體。如果您擔心中斷，這是適當的選擇。如需詳細資訊，請參閱[的執行個體類型配置策略 AWS Batch](allocation-strategies.md)。
+ **多樣化執行個體類型** – 若要多樣化執行個體類型，請考慮相容的大小和系列，然後根據價格或可用性進行 AWS Batch 選擇。例如，將 `c5.24xlarge`視為 `c5.12xlarge`或 `c5a`、`c5n`、`m5`、 `c5d`和 `m5d` 系列的替代方案。如需詳細資訊，請參閱[靈活了解執行個體類型和可用區域](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/spot-best-practices.html#be-instance-type-flexible)。
+ **減少任務執行時間或檢查點** – 我們建議不要在使用 Amazon EC2 Spot 執行個體時執行需要一小時或更長時間的任務，以避免中斷。如果您將任務分割或檢查點為包含 30 分鐘或更短時間的較小部分，您可以大幅降低中斷的可能性。
+ **使用自動重試** – 為了避免 AWS Batch 任務中斷，請設定任務的自動重試。批次任務可能因下列任何原因而中斷：傳回非零結束碼、發生服務錯誤，或發生執行個體回收。您最多可以設定 10 次自動重試。首先，我們建議您設定至少 1-3 次自動重試。如需追蹤 Amazon EC2 Spot 中斷的詳細資訊，請參閱 [Spot 中斷儀表板](https://github.com/aws-samples/ec2-spot-interruption-dashboard)。

  對於 AWS Batch，如果您設定重試參數，任務會放置在任務佇列的前面。也就是說，任務會獲得優先順序。當您建立任務定義或在 中提交任務時 AWS CLI，您可以設定重試策略。如需詳細資訊，請參閱 [submit-job](https://docs.aws.amazon.com/goto/aws-cli/batch-2016-08-10/SubmitJob       )。

  ```
  $ aws batch submit-job --job-name MyJob \
      --job-queue MyJQ \
      --job-definition MyJD \
      --retry-strategy attempts=2
  ```
+ **使用自訂重試** – 您可以將任務重試策略設定為特定應用程式結束碼或執行個體回收。在下列範例中，如果主機造成失敗，任務最多可重試五次。不過，如果任務因不同原因而失敗，任務會結束，且狀態會設為 `FAILED`。

  ```
  "retryStrategy": {
      "attempts": 5,
      "evaluateOnExit":
      [{
          "onStatusReason" :"Host EC2*",
          "action": "RETRY"
      },{
        "onReason" : "*",
          "action": "EXIT"
      }]
  }
  ```
+ **使用 Spot 中斷儀表板** – 您可以使用 Spot 中斷儀表板來追蹤 Spot 中斷。應用程式會在回收的 Amazon EC2 Spot 執行個體上提供指標，以及 Spot 執行個體所在的可用區域。如需詳細資訊，請參閱 [Spot 中斷儀表板](https://github.com/aws-samples/ec2-spot-interruption-dashboard) 