グレースフル デグラデーションに対応した設計

Last reviewed 2024-12-30 UTC

Google Cloud アーキテクチャ フレームワークの信頼性の柱にあるこの原則では、 Google Cloud ワークロードを設計して正常に失敗させるための推奨事項が示されています。

この原則は、信頼性のレスポンス の重点分野に関連しています。

原則の概要

グレースフル デグラデーションとは、負荷が高いシステムが機能し続け、パフォーマンスや精度が低下する可能性がある設計手法です。グレースフル デグラデーションにより、システムの処理が最適でない場合でも、システムの可用性が維持され、完全な障害を防ぐことができます。負荷が管理可能なレベルに戻ると、システムは完全な機能を再開します。

たとえば、負荷が高い期間中は、Google 検索ではランキングの高いウェブページの検索結果が優先され、精度が低下する可能性があります。負荷が低下すると、Google 検索は検索結果を再計算します。

推奨事項

正常な降格のためにシステムを設計するには、次のサブセクションの推奨事項を検討してください。

スロットリングを実装する

レプリカが過負荷を独立して処理し、トラフィックの多いシナリオで受信リクエストをスロットリングできるようにします。このアプローチにより、ゾーン間のトラフィックの過剰なシフトによって発生するカスケード障害を防ぐことができます。

Apigee などのツールを使用して、トラフィックの多い時間帯の API リクエストのレートを制御します。リクエストのスケールバック方法を反映するようにポリシー ルールを構成できます。

余分なリクエストを早期にドロップする

バックエンド コンポーネントを保護するために、フロントエンド レイヤで余分なリクエストを破棄するようにシステムを構成します。一部のリクエストをドロップすると、グローバルな障害を防ぎ、システムをより適切に復元できます。このアプローチでは、一部のユーザーにエラーが発生する可能性があります。ただし、過負荷時にトラフィックのすべてがドロップされる回線切断などのアプローチとは対照的に、停止の影響を最小限に抑えることができます。

部分的なエラーと再試行を処理する

部分的なエラーと再試行をシームレスに処理するようにアプリケーションをビルドします。この設計により、高負荷のシナリオでできるだけ多くのトラフィックが処理されるようになります。

過負荷シナリオをテストする

スロットルとリクエスト ドロップ メカニズムが効果的に機能することを確認するには、システムで過負荷状態を定期的にシミュレートします。テストを行うと、実際のトラフィックの急増に備えてシステムを準備できます。

トラフィックの急増をモニタリングする

分析ツールとモニタリング ツールを使用して、トラフィックの急増を予測し、過負荷にエスカレーションする前に対応します。早期の検出と対応により、需要のピーク時でもサービスの可用性を維持できます。