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

Elastic Compute Service:フォールトドリル

最終更新日:May 13, 2025

フォールトドリルは、システムの安定性を確保するために不可欠です。特定の制御可能な障害をシステムに注入することで、システムの 高可用性 を検証および強化し、関係者の緊急対応能力を訓練し、障害処理メカニズムを検証することで、実際の障害発生時の平均修復時間 (MTTR) を短縮できます。Alibaba Cloud は、ecs-fault-{scenename} または ACS-ECS-{scenename} 形式の名前を持つ クラウドアシスタント プラグインを提供し、Elastic Compute Service (ECS) インスタンスに障害を注入します。これにより、正確かつ便利にドリルを実行でき、ドリルの有効性と効率が向上します。

メリット

  • 無料およびオープンソース: 実行されたすべてのプラグインは、障害注入 ソースコード と 実行可能ファイル を含め、クラウドアシスタントディレクトリに自動的に保存されます。

  • シナリオベース: 各プラグインは 1 つのタイプのドリル シナリオ でのみ使用できます。ドリル シナリオ に基づいてプラグインをダウンロードして使用できます。

  • 便利で効率的: クラウドアシスタントがインストールされているすべての ECS インスタンスで、ドリルプラグインを実行できます。1 つのコマンドだけでプラグインのインストールと実行を完了できます。

フォールトドリルでサポートされているシナリオ

ドリル シナリオ

説明

ダウンタイムドリル

サーバーのダウンタイムは、ソフトウェアと ハードウェア の 異常 によって発生する一般的な問題であり、事実上避けられません。ECS インスタンスで カーネル エラーをシミュレートしてダウンタイムを引き起こし、 業務システム のダウンタイムへの対応をテストし、システムの 回復 機能を検査し、監視および アラート メカニズムの有効性を検証できます。その後、ドリル結果に基づいて対応戦略を開発できます。これにより、 本番環境 でダウンタイムが発生した後、システムがすぐに通常の 操作 を再開できるようになり、ビジネスの中断のリスクが軽減されます。

CPU 使用率 高負荷ドリル

ビジネスの安定性を確保するには、CPU 使用率 を適切な範囲内に維持する必要があります。CPU 使用率 が過度に高いと、ビジネスの 待機時間 が発生したり、中断したりする可能性があります。CPU 使用率 高負荷エラーを ECS インスタンスに注入して、 業務システム が特定の CPU 負荷 にどのように反応するかをテストし、システムの 回復 機能を検査し、監視および アラート メカニズムの有効性を検証できます。その後、ドリル結果に基づいて対応戦略を開発できます。これにより、 本番環境 で CPU 使用率 が高くなったときにシステムがすぐに通常の 操作 を再開できるようになり、ビジネスの中断のリスクが軽減されます。

OOM ドリル

注入 プロセス を使用して継続的に メモリ を消費することにより、ECS インスタンスで メモリ不足 (OOM) ドリルを実行できます。これにより、 ビジネスプロセス を想定どおりに終了できるかどうかをテストし、システムの 回復 機能を検査し、監視および アラート メカニズムの有効性を検証できます。その後、ドリル結果に基づいて対応戦略を開発できます。これにより、 本番環境 で OOM が発生したときにシステムがすぐに通常の 操作 を再開できるようになり、ビジネスの中断のリスクが軽減されます。

ネットワークドリル

  • ネットワーク パケット損失 ドリル: ネットワーク パケット損失 は一般的なネットワーク エラー です。ネットワーク輻輳、 ハードウェア エラー 、リンク干渉などの状況により、ネットワーク パケット損失 が発生する可能性があります。このドリル シナリオ では、ネットワーク パケット損失 が発生した場合のシステム アラート および 回復 メカニズムを検証します。

  • ネットワーク中断ドリル: ネットワーク エラー は、ECS での一般的な問題です。ネットワーク エラー には、 ハードウェア リンクの 異常 、キャリアネットワークの変動、システム 構成 の問題などがあり、ネットワーク 接続 エラー が発生し、ECS インスタンスが長期間使用できなくなる可能性があります。このドリル シナリオ では、いずれかの ノード が使用できなくなった場合のビジネスの監視および 回復 機能を検証します。

  • ネットワーク遅延ドリル: ネットワーク遅延は アプリケーション と サービス の 応答 速度に影響を与え、ネットワーク遅延が大きいとユーザー エクスペリエンス が低下します。ネットワーク遅延につながる要因には、ネットワーク トラフィック の増加や回線の不安定さなどがあります。このドリル シナリオ では、ネットワーク遅延が発生した場合のシステム アラート および 回復 メカニズムを検証します。

ディスクおよび I/O ドリル

  • ディスク使用率 高負荷ドリル: ディスク使用率 の高負荷は、通常、データの蓄積と一時 ファイル のスタックによって発生し、システム パフォーマンス の低下、 クラッシュ のリスクの増加、データ損失などのさまざまな問題につながる可能性があります。ディスク使用率 高負荷ドリルを実行して、ディスク使用率 が高い場合、またはディスクがフルロードの場合に、 業務システム が安定して動作し、データ セキュリティ を確保できるかどうかをテストできます。

  • ディスク I/O ハングドリル: I/O ハングとは、 ハードウェア エラー 、 ドライバー の問題、 ファイルシステム エラー 、ネットワーク遅延、輻輳など、特定の理由により、システムが 読み取り または書き込み 操作 を完了できず、 プロセス またはシステムが通常の 操作 を続行できなくなる状況を指します。I/O ハングは、 業務システム に パフォーマンス の低下、 サービス の遅延、データの不整合などのリスクをもたらします。このドリル シナリオ では、ディスク I/O ハングが発生した場合のシステムの アラート および 回復 メカニズムを検証します。

  • ディスク I/O 負荷 高負荷ドリル: I/O 負荷 の高負荷は一般的な エラー であり、 ビジネスプロセス 負荷 の過剰、予期しない非 ビジネスプロセス の占有、 メモリ リソース の不足などが原因で発生する可能性があります。I/O 負荷 の高負荷は、 業務システム にビジネス パフォーマンス の低下やデータ損失などのリスクをもたらします。このドリル シナリオ では、ディスク I/O 負荷 が高い場合のシステムの アラート および 回復 メカニズムを検証します。

システム リソース ドリル

  • システム負荷 高負荷ドリル: システム負荷は、システム ワークロード を測定するために使用される メトリック であり、特定の 間隔 で実行可能状態および中断不可状態にある プロセス の平均数を示します。負荷の監視は、 業務システム の現在の負荷を判断し、 アラート を生成し、できるだけ早く対応策を講じるために重要です。

  • PID リソース 不足ドリル: オペレーティングシステム では、 プロセス ID (PID) は プロセス を一意に識別するために使用される番号であり、 プロセス が解放された後に再利用できます。PID リソース を使い果たすことは困難ですが、誤って使い果たしてしまうケースが依然として存在し、新しい プロセス を作成できなくなり、ビジネスが中断し、ビジネス機能に影響を与える可能性があります。PID リソース の枯渇をシミュレートしたり、ビジネスの中断を積極的にシミュレートしたりして、 業務システム の 高可用性 機能を検出できます。

  • システム時刻ジャンプドリル: 時刻ジャンプとは、システム クロック が突然変化することを指します。 本番システム では、システム時刻の精度と、さまざまなシステム コンポーネント 間の時刻の整合性を確保する必要があります。そうしないと、 ログ や 同期 バックアップなど、さまざまな時刻依存 サービス で例外が発生します。時刻ジャンプドリルを実行して、システム時刻ジャンプが発生した場合に、システムが正しい時刻を迅速に 同期 および 解凍 し、ビジネスを 回復 できるかどうかをテストできます。

手順

このベストプラクティスは、 クラウドアシスタント と クラウドアシスタント プラグインに依存しており、次の 構文 の コマンド を使用します。

  • 障害注入

    sudo acs-plugin-manager --exec --plugin {plugin-name} --params inject,paramA=a,paramB=b
  • 障害回復

    sudo acs-plugin-manager --exec --plugin {plugin-name} --params recover
説明
  • {plugin-name} は、実際の クラウドアシスタント プラグインの名前に置き換えます。

  • プラグインは、注入 (inject) および 回復 (recover) 操作 をサポートしています。

  • 障害注入は、コンマ (,) で区切られた パラメーター キーと 値 のペアを 連結 し、各ペアのキーと 値 は等号 (=) で接続されます。