スポットインスタンスのベストプラクティス
お客様のアプリケーションにベストプラクティスをどのように適用するかは、お客様のインスタンスタイプ要件、予算要件、アプリケーション設計によって決まります。
-
インスタンスタイプに関して柔軟に対応する。 スポットインスタンスプールは、同じインスタンスタイプ (m5.large など) とアベイラビリティーゾーン (us-east-1a など) を持つ、未使用の EC2 インスタンスのセットです。どのインスタンスタイプをリクエストし、どのアベイラビリティーゾーンでワークロードをデプロイするか柔軟に対応することで、スポットが必要な量のコンピューティング容量を見つけ、割り当てられる可能性が高くなります。たとえば、c4、m5、m4 ファミリのラージを使用してもよいのであれば、「c5.large」を指定する必要はありません。
-
容量を最適化する割り当て戦略を使用する。 EC2 Auto Scaling グループの割り当て戦略を使えば、予備容量を持つスポットインスタンスプールを手動で探す必要なく、ターゲット容量をプロビジョニングできます。最も可用性の高いスポットインスタンスプールからインスタンスが自動的にプロビジョニングされる、容量最適化戦略を採用することをお勧めします。最適な容量を持つプールからスポットインスタンスの容量が供給されるため、スポットインスタンスが中断される可能性が低減します。割り当て戦略の詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「スポットインスタンス」を参照してください。
-
プロアクティブな容量再調整機能を使用する。 容量の再調整機能を使用すると、実行中のスポットインスタンスが 2 分間の中断通知を受け取る前に、新しいスポットインスタンスを使用して Auto Scaling グループをプロアクティブに拡張することにより、ワークロードの可用性を維持できます。容量の再調整が有効になっている場合、Auto Scaling は、再調整に関する推奨事項を受け取ったスポットインスタンスを積極的に置き換えることを試みます。これにより、中断のリスクが高くない新しいスポットインスタンスにワークロードを再調整することができます。
-
統合された AWS のサービスを使用してスポットインスタンスを管理する。 他の AWS のサービスは、個々のインスタンスやフリートを管理する必要なく、全体的なコンピューティングコストを削減できるよう、スポットと統合されています。該当するワークロードについて、Amazon EMR、Amazon ECS サービス、AWS Batch、Amazon EKS、SageMaker、AWS Elastic Beanstalk、Amazon GameLift の採用を検討することをお勧めします。これらのサービスに関するスポットのベストプラクティスの詳細については、「Amazon EC2 スポットインスタンスのワークショップ」のサイト
を参照してください。 -
スポットインスタンス向けの最新かつ適正な起動ツールを選択する。 AWS に統合されたサービスのいずれかがワークロードに適さず、スポットインスタンスの起動を制御する機能を持つアプリケーションを構築する必要がある場合は、適切なツールを使用してください。ほとんどのワークロードでは、EC2 Auto Scaling が適切です。ELB ベースのアプリケーション、コンテナ化されたワークロード、キュー処理ジョブなど、幅広いワークロード向けの非常に包括的な機能セットを提供しているためです。個別のリクエストをより細かく制御する必要があり、「起動専用」ツールが求められる場合は、RunInstances に対する当座の代用として、インスタントモードで EC2 フリートを使用します。EC2 フリートは、インスタンスタイプの分散化や配分戦略などの幅広い機能セットを備えています。