すべてのプロダクト
Search
ドキュメントセンター

Auto Scaling:インスタンスのライフサイクル

最終更新日:Sep 10, 2024

スケーリンググループには、Elastic Compute Service (ECS) インスタンスまたはelasticコンテナインスタンスを含めることができます。 インスタンスがスケーリンググループに追加された後、インスタンスは一連の状態を経てスケーリンググループから削除されます。 これらの状態は、スケーリンググループ内のインスタンスのライフサイクルを構成します。 スケーリンググループのライフサイクルフックを作成して、ECSインスタンスまたはエラスティックコンテナインスタンスを [保留中: 追加] または [保留中: 削除] の状態にすることができます。 ライフサイクルフックは、インスタンスに対して操作を実行できる期間を提供します。 このトピックでは、スケーリンググループ内のECSインスタンスまたはエラスティックコンテナインスタンスのライフサイクル管理モードとヘルスチェックについて説明します。 このトピックでは、スケーリンググループ内のインスタンスのすべての可能な状態についても説明します。

スケーリンググループ内のインスタンスのライフサイクル管理モード

スケーリンググループ内のECSインスタンスまたはエラスティックコンテナインスタンスは、自動的に作成されるインスタンスと手動で追加されるインスタンスに分類されます。 次の表に、2種類のインスタンスのライフサイクル管理モードを示します。

カテゴリ

インスタンスの追加方法

ライフサイクル管理モード

自動的に作成されるインスタンス

ECSインスタンスまたはエラスティックコンテナインスタンスは、スケーリンググループのインスタンス設定ソースに基づいて、スケーリンググループ内に自動的に作成されます。

Auto Scalingは、自動的に作成されるECSインスタンスまたはエラスティックコンテナインスタンスのライフサイクルを管理します。 スケールアウト活動中、Auto Scalingは自動的にインスタンスを作成します。 スケールイン活動中、Auto Scalingはインスタンスを停止およびリリースします。

手動で追加されるインスタンス

ECSインスタンスまたはエラスティックコンテナインスタンスは手動で作成され、スケーリンググループに追加されます。

手動で追加されたECSインスタンスまたはエラスティックコンテナインスタンスのライフサイクル管理モードは、インスタンスのライフサイクルを管理するためにスケーリンググループが委任されているかどうかによって異なります。

  • スケーリンググループがECSインスタンスまたはエラスティックコンテナインスタンスのライフサイクルの管理を委任されている場合、Auto scalingはスケールインアクティビティ中にインスタンスを停止およびリリースします。

  • スケーリンググループがECSインスタンスまたはエラスティックコンテナインスタンスのライフサイクルの管理を委任されていない場合、Auto scalingはスケーリンググループからインスタンスを削除しますが、スケールインアクティビティ中はインスタンスをリリースしません。

説明

サブスクリプションECSインスタンスをスケーリンググループに追加できます。 ただし、スケーリンググループに追加されたサブスクリプションECSインスタンスのライフサイクルを管理するためにスケーリンググループを委任することはできません。

スケーリンググループ内のインスタンスのヘルスチェック

スケーリンググループ内のECSインスタンスまたはエラスティックコンテナインスタンスのライフサイクルを管理するために、Auto scalingは定期的にインスタンスのヘルスチェックを実行します。 Auto Scalingが実行中状態でないインスタンスを検出した場合、Auto Scalingはインスタンスが異常であると判断し、異常なインスタンスをスケーリンググループから直ちに削除するか、異常なインスタンスをリリースします。

説明

ECSインスタンスまたはエラスティックコンテナインスタンスの [実行中] 状態は、インスタンスがスケーリンググループで [サービス中] 状態であることを示すものではありません。

スケーリンググループを作成するときに、ヘルスチェック機能を有効または無効にできます。 既存のスケーリンググループの機能を有効または無効にすることもできます。 詳細については、「スケーリンググループの作成」および「スケーリンググループの変更」をご参照ください。

スケーリンググループのヘルスチェック機能を有効にすると、Auto scalingはスケーリンググループ内のECSインスタンスまたはエラスティックコンテナインスタンスのヘルスステータスをチェックします。 Auto Scalingがスケーリンググループ内のインスタンスが異常であると判断した場合、Auto scalingはスケーリンググループからインスタンスを直ちに削除するか、インスタンスをリリースします。

  • ECSインスタンスまたはエラスティックコンテナインスタンスがAuto Scalingによって自動的に作成されるか、手動でスケーリンググループに追加され、そのライフサイクルがスケーリンググループによって管理されている場合、Auto scalingはこれらのインスタンスを削除およびリリースします。

  • ECSインスタンスまたはelastic containerインスタンスを手動でスケーリンググループに追加し、これらのインスタンスのライフサイクルを管理するためにスケーリンググループを委任しない場合、Auto scalingはスケーリンググループからインスタンスを削除しますが、インスタンスはリリースされません。

  • 異常なインスタンスが削除されたためにインスタンスの数が維持する必要がある最小数より少ない場合、Auto Scalingは自動的にECSインスタンスまたはelastic containerインスタンスを作成して最小数を維持します。

    警告

    Alibaba Cloudアカウントに十分な残高があることを確認してください。 Alibaba Cloudアカウント内で料金滞納がある場合、従量課金およびプリエンプティブルインスタンスは停止またはリリースされます。 料金滞納の場合にECSインスタンスのステータスがどのように変化するかについては、「料金滞納」をご参照ください。

スケーリンググループ内のインスタンスのライフサイクル状態

スケーリンググループ内のECSインスタンスまたはエラスティックコンテナインスタンスの可能なライフサイクル状態は、スケーリンググループに対してライフサイクルフックが作成されているかどうかによって異なります。

説明

ECSインスタンスまたはエラスティックコンテナインスタンスの実際のライフサイクルは、インスタンスが作成されたときに開始され、インスタンスがリリースされたときに終了します。 実際のライフサイクルは、インスタンスがスケーリンググループに追加されたときに開始され、インスタンスがスケーリンググループから削除されたときに終了するスケーリンググループ内のECSインスタンスまたはエラスティックコンテナインスタンスのライフサイクルとは異なります。 詳細は、「インスタンスのライフサイクル」をご参照ください。

この例では、スケーリンググループ内のECSインスタンスを使用して、スケーリンググループ内のインスタンスの状態を記述します。

  • 次の図は、ライフサイクルフックを使用しないスケーリンググループ内のECSインスタンスの状態間の遷移を示しています。Scaling group without a lifecycle hook

  • 次の図は、ライフサイクルフックを使用するスケーリンググループ内のECSインスタンスの状態間の遷移を示しています。Scaling group with a lifecycle hook

次の表に、インスタンスがスケーリンググループに追加されてから、インスタンスがスケーリンググループから削除されるまでのECSインスタンスのすべての状態を示します。

状態

説明

関連ドキュメント

追加

[追加] 状態のECSインスタンスがスケーリンググループに追加されています。 たとえば、インスタンスがスケーリンググループに関連付けられたserver Load Balancer (SLB) インスタンスのバックエンドサーバーグループに追加されているか、インスタンスのプライベートIPアドレスがスケーリンググループに関連付けられたApsaraDB RDSインスタンスのホワイトリストに追加されているとします。

次の状態のECSインスタンスをスケーリンググループに追加できます。

  • [実行中] 状態のECSインスタンスは、手動でスケーリンググループに追加できます。

  • [実行中] 状態のECSインスタンスは、スケールアウトアクティビティ中に自動的にスケーリンググループに追加できます。

  • スタンバイ状態のECSインスタンスは、手動または自動でスケーリンググループに追加できます。

保留中: 追加

スケールアウトアクティビティを監視するためにスケーリンググループのライフサイクルフックが作成された場合、ECSインスタンスはスケーリンググループに追加される前に [保留中: 追加] 状態になります。

この期間中、ECSインスタンスで操作を実行できます。 たとえば、ECSインスタンスにソフトウェアをプリインストールしたり、ECSインスタンスにセカンダリelastic network Interface (ENI) をアタッチしたり、関連するApsaraDB For RedisインスタンスのホワイトリストにECSインスタンスのプライベートIPアドレスを追加したりできます。

説明

Pending:Add状態は、ライフサイクルフックを使用するスケーリンググループでのみ使用できます。

サービス中

[サービス中] 状態のECSインスタンスは、期待どおりにサービスを提供できます。

次のいずれかの条件が満たされると、ECSインスタンスは [サービス中] 状態から終了し、他の状態に入ります。

  • スケールインアクティビティ中にAuto Scalingがスケーリンググループ内のECSインスタンスを停止した後、ECSインスタンスは [停止済み] 状態になります。

  • Auto Scalingが異常と見なされたECSインスタンスを削除またはリリースした後、ECSインスタンスは [停止済み] 状態になります。

  • 停止、トラブルシューティング、または交換中のECSインスタンスは、スタンバイ状態になります。

  • スケーリンググループから削除されているECSインスタンスは、[削除] 状態になります。

ECSインスタンスは、[サービス中] 状態から終了し、[停止済み] 状態または [スタンバイ] 状態になります。 [サービス中] 状態のECSインスタンスをスケーリンググループから手動で削除したり、[サービス中] 状態のECSインスタンスを削除したりすることもできます。 詳細については、「ECSインスタンスをスタンバイ状態にする」をご参照ください。

スタンバイ

ECSインスタンスがスタンバイ状態になると、ECSインスタンスはサービスの提供を停止します。 SLBインスタンスのバックエンドサーバーとして使用されるECSインスタンスの重みはゼロに設定されます。 SLBインスタンスはECSインスタンスへのトラフィックの転送を停止し、Auto ScalingはECSインスタンスのライフサイクルを管理しなくなりました。 これらのECSインスタンスのライフサイクルを手動で管理する必要があります。

スタンバイ状態にあるECSインスタンスのイメージを更新し、これらのECSインスタンスで発生した問題を解決できます。 次に、これらのECSインスタンスを [サービス中] 状態に戻し、スケーリンググループに再度追加できます。

説明

スタンバイ状態のECSインスタンスは、[サービス中] 状態に戻すまで、アプリケーションのアクティブな部分ではありません。

インスタンスを手動でスタンバイ状態にする、またはインスタンスをスタンバイ状態から移動する

保護

  • スケーリンググループからECSインスタンスを削除したくない場合は、ECSインスタンスを保護状態にすることができます。 保護状態のECSインスタンスは、サービスを提供できます。 Auto Scalingは、[保護] 状態のECSインスタンスのライフサイクルを管理しません。 [保護] 状態のECSインスタンスのライフサイクルを手動で管理する必要があります。

  • [保護] 状態にあるECSインスタンスのライフサイクルを手動で管理したくない場合は、ECSインスタンスを他の状態にすることができます。 これにより、Auto ScalingはこれらのECSインスタンスのライフサイクルを管理できます。

インスタンスを手動で保護状態にする、またはインスタンスを保護状態から移動する

削除

[削除] 状態のECSインスタンスは、スケーリンググループから削除されています。 たとえば、ECSインスタンスが関連付けられているSLBインスタンスのバックエンドサーバーグループから削除されているか、ECSインスタンスのプライベートIPアドレスが関連付けられているApsaraDB RDSインスタンスのホワイトリストから削除されているとします。

スケーリンググループから削除されたECSインスタンスを他のスケーリンググループに追加できます。

削除保留中

スケールインアクティビティを監視するためにスケーリンググループのライフサイクルフックが作成された場合、スケーリンググループ内のECSインスタンスは、スケーリンググループから削除される前に [保留中: 削除] 状態になります。

この期間中、ECSインスタンスで操作を実行できます。 たとえば、ソフトウェアのインストール、ログのコピー、ECSインスタンスへのデータの消去などができます。

説明

Pending:Remove状態は、ライフサイクルフックを使用するスケーリンググループでのみ使用できます。

Stopped

ライフサイクルが管理されなくなったECSインスタンスは [停止] 状態になり、サービスを提供できません。 ECSインスタンスが停止すると、ECSインスタンスのvCPU、メモリ、およびパブリックIPアドレスが回収されます。 これらのリソースに対して課金されなくなりました。 ディスクやelastic IPアドレス (EIP) など、保持されているリソースに対して課金されます。 スケールアウトアクティビティ中、Auto Scalingは、停止済み状態のECSインスタンスをスケーリンググループに優先的に追加します。

説明

スケーリンググループ内のECSインスタンスを停止する場合は、スケーリンググループの作成時にインスタンス再利用モードパラメーターを [エコノミーモード] に設定してください。

インスタンスを手動でスタンバイ状態にする、またはインスタンスをスタンバイ状態から移動する