AWS Batchに関するAmazon EC2 スポット利用のベストプラクティスを利用する - AWS Batch

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

AWS Batchに関するAmazon EC2 スポット利用のベストプラクティスを利用する

Amazon Elastic Compute Cloud (EC2) スポットインスタンスを選択すると、ワークフローを最適化してコスト低減化(場合によっては大幅な節約実現)の可能性が高くなります。詳しくは、Amazon S3 のセキュリティベストプラクティス を参照してください。

ワークフローを最適化してコストを低減するには、以下の Amazon EC2 スポットベストプラクティスを検討してください AWS Batch:

  • SPOT_CAPACITY_OPTIMIZED 割り当て戦略 を選択 — AWS Batch 最も深い Amazon EC2 スポット容量プールからAmazon EC2 インスタンスを選択します。中断が心配な場合は、この方法が適切な選択です。詳細については、AWS Batch のインスタンスタイプの配分戦略を参照してください。

  • インスタンスタイプの多様化 — インスタンスタイプを多様化するには、互換性のあるサイズとファミリーを検討し、AWS Batch 価格や在庫状況に基づいて選択してください。たとえば、c5.24xlargeを、c5.12xlargec5ac5nc5dm5 及び m5d のファミリーの代替として検討してください。詳細については、インスタンスタイプとアベイラビリティーゾーンへの柔軟な対応 を参照してください。

  • ジョブの実行時間またはチェックポイントの短縮 — Amazon EC2 スポットインスタンスを使用する場合は、中断を避けるために、1時間以上かかるジョブを実行しないことをお勧めします。ジョブを30分以下のより小さな部分に分割したり、チェックポイントを設定したりすることで、中断の可能性を大幅に減らすことができます。

  • 自動リトライを使用する — AWS Batchのジョブの中断を避けるには、ジョブには自動リトライを設定します。Batch ジョブは、ゼロ以外の終了コードが返された、サービスエラーが発生した、またはインスタンスが再利用されたなどの理由で中断される可能性があります。最大10個まで自動再試行を設定できます。先ず、少なくとも1~3回の自動再試行を設定することをお勧めします。Amazon EC2 スポット中断の追跡については、スポット中断ダッシュボードを参照してください。

    AWS Batchについて、再試行パラメータを設定すると、ジョブはジョブキューの先頭に置かれるからです。つまり、ジョブが優先されます。ジョブ定義を作成したり、またはAWS CLI でジョブを送信したりするときに、再試行方法を設定できます。詳細については、ジョブの送信 を参照してください。

    $ aws batch submit-job --job-name MyJob \ --job-queue MyJQ \ --job-definition MyJD \ --retry-strategy attempts=2
  • カスタムリトライを使用する — 特定のアプリケーション終了コードまたはインスタンスの再利用に合わせて、ジョブの再試行方法を設定できます。次の例では、ホストが原因で障害が発生した場合、ジョブは最大5回まで再試行できます。ただし別の理由によりジョブが失敗すると、ジョブは終了し、ステータスは FAILED に設定されます。

    "retryStrategy": { "attempts": 5, "evaluateOnExit": [{ "onStatusReason" :"Host EC2*", "action": "RETRY" },{ "onReason" : "*" "action": "EXIT" }] }
  • スポット中断ダッシュボードを使用する — スポット中断ダッシュボードを使用して、スポット中断を追跡できます。このアプリケーションは、再利用された Amazon EC2 スポットインスタンスと、そのスポットインスタンスが属するアベイラビリティーゾーンに関するメトリクスを提供します。詳細については、スポット中断ダッシュボード を参照してください