スポットインスタンスの使用
スポットインスタンスは、オンデマンド価格より低価で利用できる未使用の Amazon EC2 インスタンスです。スポットインスタンス では未使用の EC2 インスタンスを静止状態割引でリクエストできるため、Amazon EC2 のコストを大幅に削減できます。 スポットインスタンスの時間料金は、スポット料金と呼ばれます。各アベイラビリティーゾーンにおける各インスタンスタイプのスポット料金は、Amazon EC2 によって設定され、スポットインスタンスの長期的な需給に基づいて徐々に調整されます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「スポットインスタンス」を参照してください。
スポットインスタンスを Amazon ECS クラスターに登録できます。詳細については、「Amazon ECS Linux コンテナインスタンスの起動」を参照してください。
スポットインスタンスのドレイン
利用可能なキャパシティーがなくなった場合、または、スポット料金がお客様のリクエストの上限料金を超えた場合には、Amazon EC2 はスポットインスタンスを終了、停止、または休止状態にします。Amazon EC2 は、終了アクションおよび停止アクションに対して、スポットインスタンスに 2 分間の中断通知を提供します。休止状態のアクションについては、2 分間の通知は提供されません。インスタンスで Amazon ECS スポットインスタンスのドレインが有効になっている場合、ECS はスポットインスタンスの中断通知を受け取り、インスタンスを DRAINING
ステータスにします。
Auto Scaling キャパシティの再分散よってインスタンスが削除された場合、Amazon ECS は Amazon EC2 から通知を受信しません。詳細については、「Amazon EC2 Auto Scaling キャパシティの再分散」を参照してください。
コンテナインスタンスを 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 Linux コンテナインスタンスの起動」を参照してください。
既存のコンテナインスタンスに対してスポットインスタンスのドレインを有効にするには
-
SSH 経由でスポットインスタンスに接続します。
-
/etc/ecs/ecs.config
ファイルを編集して、以下を追加します。ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
-
ecs
サービスを再起動します。-
Amazon ECS に最適化された Amazon Linux 2 AMI の場合:
sudo systemctl restart ecs
-
Amazon ECS に最適化された Amazon Linux AMI の場合:
sudo stop ecs && sudo start ecs
-
-
(オプション) エージェント詳細分析 API オペレーションをクエリして、エージェントが実行されていることを確認し、新しいコンテナインスタンスに関する情報の一部を表示できます。詳細については、「Amazon ECS コンテナエージェントの詳細分析」を参照してください。
curl http://localhost:51678/v1/metadata