メインコンテンツへスキップ

PerfectScale for Spot FAQ

スポット インスタンス

スポット インスタンスとは何ですか?

スポット インスタンスは、余剰の EC2 キャパシティであり、オンデマンド価格から最大 90% のコスト削減が可能ですが、Amazon Web Services によって 2 分前の通知とともに中断される場合があります。スポットは、オンデマンドおよびリザーブドインスタンスと同じ基盤の EC2 インスタンスを使用し、フォールトトレラントで柔軟性の高いワークロードに最適です。スポット インスタンスは、コンピュートキャパシティを取得するための追加オプションであり、オンデマンドおよびリザーブドインスタンスと併用できます。

スポット インスタンスとオンデマンドインスタンスの違いは何ですか?

実行中のスポット インスタンスは、本質的にはオンデマンドインスタンスと同じです。主な違いは、スポット インスタンスが通常、オンデマンド価格に比べて大幅な割引を提供する点です。その代わりに、スポット インスタンスはキャパシティ要件により、Amazon EC2 によって 2 分前の通知とともに中断される可能性があります。スポット価格は、余剰 EC2 キャパシティの長期的な需給に基づいて、徐々に調整されます。詳細については、Amazon EC2 Spot Instances を参照してください。

スポット インスタンスはいつ使用すべきですか?

スポット インスタンスは、フォールトトレランス機能が組み込まれているアプリケーション、ステートレスなアプリケーション、または大規模なクラスタでデータ処理を行うアプリケーション(例: Hadoop)に最も適しています。

追加のユースケースには、次のものがあります。

  • バッチ処理 — AWS Batch サービスとスポット インスタンスを組み合わせて使用することで、現在低コストで利用可能なスポット インスタンス上でバッチ処理を実行できます。これは、同じバッチ処理をオンデマンドインスタンスで実行する場合と比べて、大幅なコスト削減につながる可能性があります。
  • 継続的インテグレーション — 開発およびテストはクラウド環境で一般的です。開発/テストタスクは通常、不定期なスケジュールで実行され、本番ワークロードではないため、時折の中断を許容できます。
  • ハイパフォーマンスコンピューティング(HPC) — スポット インスタンスを使用して、人工知能分析アプリケーションのような大規模並列ワークロードを実行できます。これらのアプリケーションは GPU(グラフィックスプロセッシングユニット)インスタンス上で動作し、GPU インスタンスは高コストであるため、スポット インスタンスは大きな助けとなります。

スポット インスタンスを使用するためのベストプラクティスは何ですか?

利用可能なスポットキャパシティを最大化するために、複数のアベイラビリティゾーンを使用し、インスタンスタイプに柔軟性を持たせることを推奨します。スポットキャパシティプールとは、同じインスタンスタイプ、オペレーティングシステム、アベイラビリティゾーン、およびネットワークプラットフォーム(EC2-Classic または EC2-VPC)を持つ未使用の EC2 インスタンスの集合です。

スポット インスタンスにはどのような価格が適用されますか?

スポット インスタンスでは、インスタンスが実行されている時間に有効なスポット価格を支払います。スポット インスタンス価格は Amazon EC2 によって設定され、スポット インスタンスキャパシティの長期的な需給トレンドに基づいて徐々に調整されます。詳細については、AWS の Spot Instance advisor を参照してください。

利用可能なスポット インスタンスがない場合はどうなりますか?

PerfectScale for Spot は、利用可能なスポット インスタンスが存在しないシナリオにおいて、ワークロードの可用性を確保するためにオンデマンドへのフォールバックをサポートし、スポット インスタンスが再び利用可能になるとすぐにスポット インスタンスに戻します。

PerfectScale for Spot

PerfectScale for Spot はどのように最適化可能なコストを算出しますか?

最適化可能なコストは、次の内容に基づき算出されます。

  • Auto Scaling Group 内で希望するインスタンス数
  • オンデマンド価格とスポット価格の 1 時間あたりの差分
  • 対象となる月の時間数(おおよそ 730 時間)

スポット インスタンスとオンデマンドインスタンスの割合はどのようになっていますか?

デフォルトでは、PerfectScale for Spot は希望容量の 20% をオンデマンド、80% をスポット インスタンスで構成することを推奨します。オンデマンドインスタンスとスポット インスタンスのパーセンテージは、コンソールまたは instance distributions tags を通じて変更できます。

許可されるインスタンスタイプリストを変更できますか?

コンソールで、ワークロード要件を満たしていないインスタンスタイプを除外できます。詳細については、Modify Recommendations を参照してください。

PerfectScale for Spot はどの AWS テクノロジーと連携しますか?

PerfectScale for Spot は、機能するために Auto Scaling Groups(ASG)を使用するあらゆる AWS テクノロジーと連携します。

PerfectScale for Spot は Amazon Elastic Beanstalk をサポートしますか?

はい。AWS Elastic BeanstalkASG を使用して Amazon EC2 インスタンスを管理 します。

PerfectScale for Spot は Amazon ECS をサポートしますか?

PerfectScale for Spot は、EC2 launch type を使用する AWS Elastic Container Service(Amazon ECS)をサポートし、これにより ASG を利用して動作します(前述 を参照)。

ただし、PerfectScale for Spot は Fargate launch type を使用する Amazon ECS はサポートしません。これは、AWS Fargate が ASG を使用しないためです。

PerfectScale for Spot は Amazon EKS をサポートしますか?

はい。Amazon Elastic Kubernetes Service(Amazon EKS)は Kubernetes の Cluster Autoscaler をサポートし、これにより ASG を利用して動作します(前述 を参照)。

Kubernetes Cluster Autoscaler は、ポッドの失敗や他ノードへの再スケジューリング時に、クラスタ内のノード数を自動的に調整する Kubernetes コントロールプレーンの中核コンポーネントです。PerfectScale for Spot の推奨事項を EKS 環境に適用することで、スポット インスタンスを実行することによるコスト削減を実現できます。

ヒント

AWS Node Termination Handler は、Amazon によってメンテナンスされているオープンソースプロジェクトであり、「EC2 メンテナンスイベント、EC2 スポットの中断、ASG のスケールイン、ASG AZ リバランス、API またはコンソール経由での EC2 インスタンスの終了など、EC2 インスタンスが利用不能になる可能性があるイベントに対して、Kubernetes コントロールプレーンが適切に応答することを保証する」ために使用できます。

参照

PerfectScale for Spot は Amazon EMR をサポートしますか?

いいえ。PerfectScale for Spot は Amazon EMR をサポートしません。これは、EMR が ASG を使用せず、managed scaling と呼ばれる独自のオートスケーリング方式を使用しているためです。

PerfectScale for Spot Auto-Enrollment

PerfectScale for Spot Auto-Enrollment とは何ですか?

DevOps およびプラットフォームチームは、クラウドインフラストラクチャの実装に infrastructure as code(IaC)ツールを好んで使用することがよくあります。IaC ツールにより、IT リソース管理やクラウドリソースのプロビジョニングに必要な手作業を、簡潔なコードに置き換えることができます。Auto-Enrollment は、AWS ASG タグを活用することで、このニーズを満たす機能です。

詳細については、AWS tags: PerfectScale for Spot Auto-Enrollment を参照してください。

PerfectScale for Spot Auto-Enrollment が tool-agnostic であるとはどういう意味ですか?

IaC では、インフラストラクチャ仕様を含む設定ファイルが作成されるため、設定の編集および配布が容易になります。Terraform、AWS CloudFormation、Azure Resource Manager、GCP Cloud Deployment Manager など、さまざまな IaC ツールが存在します。

PerfectScale for Spot Auto-Enrollment は、必要なタグ(doitintl:spotscaling:auto-enroll および doitintl:fallback-to-on-demand)が使用する IaC ツールに依存しないという意味で、tool-agnostic です。

PerfectScale for Spot Auto-Enrollment のデフォルトの動作はどうなっていますか?

PerfectScale for Spot Auto-Enrollment は、コンソールで推奨事項を適用した場合と同じように動作します。デフォルトでは、PerfectScale for Spot は希望容量の 20% をオンデマンド、80% をスポット インスタンスで構成することを推奨します。許可されるインスタンスタイプについても同様であり、PerfectScale for Spot は vCPU とメモリ構成に基づき、類似したマシンタイプを推奨します。

エラーメッセージ

非互換な起動テンプレート: すでにスポット インスタンスをリクエストしています

このエラーは、PerfectScale for Spot が、すでに Spot Instances をリクエストしている起動テンプレートを使用して mixed instances group を作成しようとした場合に発生します。

この問題を解決するには、Advanced Details セクションの Purchasing optionRequest Spot Instances を指定しない、新しい起動テンプレート、または同じテンプレートの新しいバージョンを作成する必要があります。

AWS Launch Template の Purchasing option を示すスクリーンショット

起動テンプレートを使用すると、Auto Scaling group で追加設定を行い、複数のインスタンスタイプを起動し、On-Demand と Spot の購入オプションを組み合わせることができます。このような組み合わせでインスタンスを起動する場合、起動テンプレート内で Spot Instance のリクエストを指定してはいけません (詳細は Limitations を参照してください)。指定してしまうと、コンソールの ASG 画面に次のエラーメッセージが表示されます。

Incompatible launch template: already requesting for spot instances

AWS からのエラーメッセージは次のとおりです。

Incompatible launch template: You cannot use a launch template that is set to request Spot Instances (InstanceMarketOptions) when you configure an Auto Scaling group with a mixed instances policy. Add a different launch template to the group and try again.

非互換な起動テンプレート: 起動設定はサポートされていません

もし launch configurations を使用している場合、PerfectScale for Spot の機能を活用することはできません。

2022 年 12 月 31 日以降、AWS は launch configurations をサポートしていないため、代わりに launch templates を使用する必要があります。launch templates への移行方法については、AWS ドキュメント を参照してください。

非互換な起動テンプレート: この起動テンプレートにはストレージ、ネットワークインターフェイス、または詳細設定に特定の設定が含まれています

現時点では、ストレージ、ネットワークインターフェイス、または詳細設定に特定の設定が含まれている起動テンプレートはサポートしていません。PerfectScale for Spot を使用するには、使用しようとしている起動テンプレートの、これらの追加設定を含まないバージョンを作成する必要があります。

AWS Launch Template の詳細設定を示すスクリーンショット