サービスに影響を及ぼすネットワークの問題を特定する

ネットワーク異常の例

以下の例では、架空の e-コマース企業である Buttercup Games のシナリオを取り上げます。

Buttercup Games のサイト信頼性エンジニア(SRE)である Kai は、同社サイトの checkoutservice サービスでトランザクション量が減少しているというアラートを受け取りました。

手持ちの簡単なランブックを実行し、最近新しいものがデプロイされていないこと、サービスインスタンスが正常に稼動していること、ノードに十分なメモリと CPU があることを確認しました。ログをチェックすると、多くのエラーメッセージが表示されますが、どれも明確なソースを指していません。

現在、サービスオーナーのタイムゾーンでは午前 2 時なので、Kai も連絡する前にネットワークの問題を除外したいと考えています。

Kai は Network Explorer を開き、[Network edges] ナビゲータを確認することから調査を始めます。

Kai はネットワークエッジナビゲーターにナビゲートしています。

Kai はすぐに、checkoutservice へのトラフィック量が確かに減少していることに気づきます。

Kai はトラフィック量の減少を見ています。

念のため、Kai も [Max round trip time]、[TCP connection timeouts]、[Retransmissions charts] のチャートを調べ、各メトリクスが過去 5 分間に大幅に急上昇していることを確認します。

Kai はラウンドトリップタイムの急上昇を確認します。Kai は接続タイムアウトの急増を確認します。Kai は再送信でのスパイクを確認します。

checkoutservice がクラウドプロバイダーのネットワーク問題の影響を受けていることを理解した Kai は、クラスターに新しい Kubernetes ノードをいくつか追加することで問題を解決し、checkoutservice のポッドをローリングリスタートして問題のあるクラウドインスタンスから削除します。10 分以内に、トランザクション量は正常に戻ります。

Kai がインシデントレポートを書き終えてから30分後、クラウドプロバイダーは自社のステータスページに、このクラスタの可用性にネットワークの問題が発生したことを投稿し、Kai が以前に検知したことを確認しました。

Network Explorer のサポートにより、Kai はネットワークの問題のトラブルシューティングを自分自身で行うことができました。クラウドプロバイダーからのアナウンスを待つ必要も、checkoutservice を担当する作業過多のチームを起こす必要もありません。