プリエンプティブインスタンスは、オンデマンドインスタンスです。 いくつかのケースで、お使いの ECS コストを削減するように設計されています。 プリエンプティブインスタンスを作成した場合、1 時間あたりの最大価格を設定し、指定されたインスタンスタイプに入札できます。 入札額がその時の市場価格以上の場合、利用できるインスタンスが作成されます。 プリエンプティブインスタンスは、作成後、最低でも 1 時間は割り込みなしで保有されます。 1 時間後、5 分ごとに入札額と市場価格が比較されます。 市場価格が入札額を上回った場合、またはリソース在庫が十分でなくなった場合、インスタンスは自動的にリリースされます。 プリエンプティブインスタンスのライフサイクルは以下の図のようになります。

インスタンスのリリース後は、インスタンスのデータは復旧できません。 インスタンスのリリース前に「スナップショットの作成」を行い、データをバックアップすることを推奨します。

シナリオ

プリエンプティブインスタンスは、スケーラブルなwebサービス、図形のレンダリング、ビッグデータ解析および大規模並列計算用のアプリケーションなどの、ステートレスアプリケーションに理想的です。 高いレベルの分散、スケーラビリティおよびフォールトトレランス機能を必要とするアプリケーションは、コストおよび処理能力の面でプリエンプティブインスタンスの恩恵を受けます。

プリエンプティブインスタンスで、以下のような業務をデプロイすることができます。

  • リアルタイム解析
  • ビッグデータ
  • 地質調査
  • 画像コーディングおよびメディアコーディング
  • 科学計算
  • スケーラブル Web サイトおよび Web クローラ
  • 画像およびメディアコーディング
  • テスト

プリエンプティブインスタンスは、データベースのようなステートフルアプリケーションには適していません。これは、入札の不調や他の理由により、インスタンスがリリースされた場合、アプリケーションの状態を保存することが難しいためです。

入札モード

以下の入札モードのいずれかを使って、1 度だけプリエンプティブインスタンスの入札が可能です。

SpotWithPriceLimit

このモードでは、指定したインスタンスタイプに支払う最高額を設定する必要があります。 プリエンプティブインスタンスを RunInstances により作成した場合、このモードでの入札が可能です。

現在、プリエンプティブインスタンスの最高入札額は、同じ設定の従量課金インスタンスの価格です。 プリエンプティブインスタンスの作成時、市場価格の履歴、業務機能および将来の価格変動の予測に応じて価格を設定できます。 市場価格が入札額以下で、かつリソース在庫が十分にある場合、インスタンスが実行され続けます。 予想額が適切だった場合、1 時間の「保証期間」後もインスタンスを保持できます。 そうでない場合は、いつでもインスタンスが自動的にリリースされます。

SpotAsPriceGo

RunInstances によりプリエンプティブインスタンを作成した場合、SpotStrategySpotAsPriceGo に設定することで "SpotAsPriceGo" 入札モードによりプリエンプティブインスタンスを作成できます。これは、在庫不足によりインスタンスがリリースされるまで、リアルタイム市場価格を入札額として常に設定できることを意味しています。

保証期間

プリエンプティブインスタンスの作成時、1 時間の保証期間があります。つまり、起動後の最初の 1 時間です。 この期間、在庫不足によるインスタンスのリリースはなく、通常通りインスタンス上のサービスを実行できます。 保証期間を超えた場合、市場価格および在庫が 5 分ごとに確認されます。 任意の時点で、市場価格が入札価格を上回るか、インスタンスタイプの在庫が不足した場合、お使いのプリエンプティブインスタンスは自動的にリリースされます。

価格および請求

プリエンプティブインスタンスの価格および請求に関する注意点

  • 価格

    プリエンプティブインスタンスの価格は、インスタンスのタイプにのみ適用されます。これには、vCPU、メモリが含まれますが、システムディスク、データディスクおよびネットワー帯域幅は含まれません。 代わりに、システムディスクおよびデータディスクは、「従量課金」の課金方法により請求されます。 ネットワーク帯域幅は、従量課金インスタンスの帯域幅課金ルールにより請求されます。 詳しくは、「インターネット帯域幅の請求」をご参照ください。

  • 課金方法
    課金方法はリージョンにより変わります。
    • オーストラリア (シドニー)、日本 (東京)、ドイツ (フランクフルト)、UAE (ドバイ)、中国 (張家口)、中国 (フフホト)、マレーシア (クアラルンプール)、シンガポール、インド (ムンバイ)、インドネシア (ジャカルタ)

      プリエンプティブインスタンスは秒刻みで請求されます。 プリエンプティブインスタンスが正常に作成された場合、市場価格は 1 時間の価格であり、それを3,600 に分割し 1 秒ごとの価格を算出するだけです。

      プリエンプティブインスタンスの作成からリリースまで発生した料金は、小数点以下 2 桁まで算出されます。 $0.01 に満たない料金が発生した場合、請求されません。

    • 他のリージョン

      プリエンプティブインスタンスは、ライフサイクルの間、1 時間を基本にして請求されます。 1 時間に満たない利用であっても、1 時間分請求されます。

  • 課金期間

    インスタンスは、実際に使用した期間に応じて請求されます。 実際に使用した期間は、インスタンスの作成からリリースまでの間となります。 インスタンスがリリースされた後は、請求されることはありません。 StopInstance またはECS コンソールによりインスタンスを停止した場合、インスタンスは課金され続けます。

  • 市場価格

    プリエンプティブインスタンスの作成中は、その時の市場価格よりも入札額が高い場合に実行され、関連する需要と供給の条件が満たされます。

    実行の最初の 1 時間で、インスタンスは初期の市場価格に応じて請求されます。 その後、リアルタイムの市場価格に応じて請求されます。

プリエンプティブインスタンスの実際の市場価格は、インスタンスタイプの需要と供給の変化に応じて変動します。価格変動を利用することができます。 適切な時にプリエンプティブインスタンスタイプを購入した場合、インスタンスが保持されている期間にスループットが増加しても、計算コストは削減されます。

クォータ

プリエンプティブインスタンスのクォータについて詳しくは、「制限」をご参照ください。

プリエンプティブインスタンスの作成

RunInstances インターフェイスを利用してプリエンプティブインスタンスを購入できます。

プリエンプティブインスタンスの作成後、従量課金インスタンスとまったく同じ方法で使用できます。 他のクラウド製品、クラウドディスクまたは EIP アドレスなどとともにプリエンプティブインスタンスを使用できます。

プリエンプティブインスタンスの停止

ECS コンソール上から、または StopInstance インターフェイスを利用して、プリエンプティブインスタンスを停止できます。 VPC に接続されたプリエンプティブインスタンスは、「課金なし停止済みインスタンス (VPC 接続済み)」機能をサポートしています。

ネットワークタイプおよびプリエンプティブインスタンスの入札モードにより、以下の表に示されるように、インスタンスの停止後にインスタンスを開始できるか決定されます。

ネットワークタイプ + 入札モード インスタンスの停止 インスタンスの開始
VPC + SpotWithPriceLimit インスタンスの保持、課金適用 保証期間中、インスタンスは正常に開始されます。 保証期間後
  • 入札額が市場価格以上で、かつリソース在庫が十分な場合、インスタンスは正常に開始されます。
  • 入札額が市場価格を下回る、またはリソース在庫が十分ではない場合、インスタンスは正常に開始されません。
クラシック + SpotWithPriceLimit N/A
VPC + SpotAsPriceGo インスタンスの保持、課金適用 保証期間中、インスタンスは正常に開始されます。 保証期間後
  • リソース在庫が十分な場合、インスタンスは正常に開始されます。
  • リソース在庫が十分ではない場合、インスタンスは開始されません。
クラシック + SpotAsPriceGo N/A
VPC + SpotWithPriceLimit インスタンスの停止、課金なし 保証期間中、リソース在庫が十分にある場合のみインスタンスは正常に開始されます。 保証期間後
  • 入札額が市場価格以上で、かつリソース在庫が十分な場合、インスタンスは正常に開始されます。
  • 入札額が市場価格を下回る、またはリソース在庫が十分ではない場合、インスタンスは正常に開始されません。
VPC + SpotAsPriceGo インスタンスの停止、課金なし 保証期間中、リソース在庫が十分にある場合のみインスタンスは正常に開始されます。 保証期間後
  • リソース在庫が十分な場合、インスタンスは正常に開始されます。
  • リソース在庫が十分ではない場合、インスタンスは開始されません。

プリエンプティブインスタンスのリリース

保証期間終了後、市場価格の変化、またはリソース在庫の不足により、お使いのプリエンプティブインスタンスを自動的にリリースします。 加えて、各自で「インスタンスのリリース」が行えます。

プリエンプティブインスタンスのリリース時、市場価格またはリソースの需要と供給が変化のため、インスタンスのステータスが "Pending Release" に変わります。 その後、インスタンスは約 5 分でリリースされます。 「インスタンスメタデータ」または DescribeInstances インターフェイスの呼び出しにより返却された OperationLocks 情報により、インスタンスが "Pending Release" ステータスかどうか確認できます。

API を利用し、プリエンプティブインスタンスが "Pending Release" ステータスかどうかの確認、および、このステータスの間に少量のデータを保存ができますが、プリエンプティブインスタンスがすぐにリリースされる場合にお使いのアプリケーションが正常に再開できるように設計することを推奨します。 インスタンスを手動でリリースした際にプリエンプティブインスタンスがすぐに復元された場合、お使いのアプリケーションが正常に機能するかどうかをテストできます。

一般的に、低い入札価格から高い入札価格の順にプリエンプティブインスタンスはリリースされます。 複数のプリエンプティブインスタンスが同じ入札価格だった場合、インスタンスはランダムにリリースされます。

ベストプラクティス

プリエンプティブインスタンスを使用する際は、以下のことを考慮します。

  • 適切な入札価格を設定します。 つまり、設定した業務予算に合うように競争価格を見積もり、将来の市場価格の変動に対して防衛手段を取る必要があります。 この入札価格を使用し、利用するプリエンプティブインスタンスが作成されます。 加えて、利用する業務評価を基にした想定に合った価格である必要があります。
  • イメージは、お使いのアプリケーションが必要とする全てのソフトウェア設定を備える必要があります。これは、インスタンス作成後、利用する業務をすぐに実行できるようにするためです。 さらに、「ユーザー定義データ」を使用し、スタートアップ時にコマンドを実行することができます。
  • お使いの業務データを、プリエンプティブインスタンスから独立したストレージ製品に保存します。これには、インスタンスと一緒にリリースされないように設定されたクラウドディスク、OSS または RDS などが挙げられます。
  • グリッド、Hadoop、キューベースのアーキテクチャまたはチェックポイントを使用して、ご利用のタスクを分割し、計算結果を頻繁に保存しやすくします。
  • リリース通知を使用し、プリエンプティブインスタンスのステータスをモニターします。 「メタデータ」を使用し、インスタンスのステータスを毎分確認できます。 インスタンスのメタデータは、インスタンスの自動リリースの 5 分前に更新されます。
  • あらかじめお使いのアプリケーションをテストします。これは、インスタンスの思いがけないリリースなどのイベントに対応することができることを確認するためです。 アプリケーションをテストする方法: 従量課金インスタンス上でアプリケーションを実行し、インスタンスをリリースし、その後、アプリケーションがリリースをどのように扱うことができるかを確認します。

詳しくは、「プリエンプティブインスタンスに関する FAQ」をご参照ください。

API を利用したプリエンプティブインスタンスの作成について詳しくは、「API を使用したプリエンプティブインスタンスの管理」をご参照ください。