スポットインスタンス を使用する - Amazon Elastic Container Service

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

スポットインスタンス を使用する

スポットインスタンス は、オンデマンド価格より低価で利用できる未使用の Amazon EC2 インスタンスです。スポットインスタンス では未使用の EC2 インスタンスを静止状態割引でリクエストできるため、Amazon EC2 のコストを大幅に削減できます。スポットインスタンス の時間単位の使用料金はスポット料金と呼ばれます。各アベイラビリティーゾーンにおけるそれぞれのインスタンスタイプのスポット料金は、Amazon EC2 によって設定され、スポットインスタンス の長期供給と需要に基づいて徐々に調整されます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「スポットインスタンス」を参照してください。

スポットインスタンス は Amazon ECS クラスターに登録できます。詳細については、「Amazon ECS コンテナインスタンスの起動」を参照してください。

スポットインスタンス のドレイン

スポット料金がお客様のリクエストの上限料金を超えた場合、または容量が使用できなくなった場合、Amazon EC2 は スポットインスタンス を終了、停止、または休止状態にします。Amazon EC2 では、スポットインスタンス の中断通知が表示されます。それにより、インスタンスの停止前に 2 分の警告期間が与えられます。インスタンスで Amazon ECS スポットインスタンスのドレインが有効になっている場合、ECS はスポットインスタンスの中断通知を受け取り、インスタンスを DRAINING ステータスにします。

重要

Amazon ECS は、スポットインスタンス および terminate インスタンスアクションがあるstopの中断通知をモニタリングします。スポットインスタンス または スポットフリート をリクエストするときに hibernate インスタンスの中断動作を指定した場合、それらのインスタンスでは Amazon ECS スポットインスタンス のドレインはサポートされません。

コンテナインスタンスを DRAINING に設定すると、Amazon ECS によって新規タスクがそのコンテナインスタンスに配置されなくなります。ドレインしているコンテナインスタンス上にある PENDING 状態のサービスタスクは即時停止されます。クラスター内に使用可能なコンテナインスタンスがある場合、そのインスタンスで代わりのサービスタスクが開始されます。

スポットインスタンスのドレインはデフォルトでは無効になっていて、手動で有効にする必要があります。新しいコンテナインスタンスでスポットインスタンスのドレインを有効にするには、コンテナインスタンスの起動時に次のスクリプトを User data フィールドに追加します。MyCluster は、コンテナインスタンスを登録するクラスターの名前に置き換えます。

#!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config ECS_CLUSTER=MyCluster ECS_ENABLE_SPOT_INSTANCE_DRAINING=true EOF

詳細については、「Amazon ECS コンテナインスタンスの起動」を参照してください。

既存のコンテナインスタンスの スポットインスタンス ドレインを有効にするには

  1. SSH 経由で スポットインスタンス に接続します。

  2. /etc/ecs/ecs.config ファイルを編集して、以下を追加します。

    ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
  3. ecs サービスを再起動します。

    • Amazon ECS-optimized Amazon Linux 2 AMI の場合:

      sudo systemctl restart ecs
    • Amazon ECS-optimized Amazon Linux AMI の場合:

      sudo stop ecs && sudo start ecs
  4. (オプション) エージェント詳細分析 API オペレーションをクエリして、エージェントが実行されていることを確認し、新しいコンテナインスタンスに関する情報の一部を表示できます。詳細については、「Amazon ECS コンテナエージェントの詳細分析」を参照してください。

    curl http://localhost:51678/v1/metadata