サービス障害('21年2月下旬)に対する対処経過のご報告

May 07, 2021
執筆者
Twilio
Twilion

Engineering improvements to prevent service disruptions JP

この記事は英語版ブログ記事の抄訳です。

2021年2月26日にTwilioサービスにおいて障害が発生し、お客様にご迷惑をおかけいたしました。

このサービス中断(英語オリジナル日本語抄訳)のような障害を教訓に、サービスの耐障害性と信頼性の改善に取り組んでおります。お客様の信頼ほど大切なものはありません。Twilioは、常に信頼性と一貫性を備えたパートナーであることを証明したいと考えています。

皆さまの顧客コミュニケーションを中断させる障害が発生した場合、その主要な情報を必ず報告いたします。「重要な情報をすべて公開する」信念の下、Twilioの全社員が、誠実かつ率直に、透明性を守りながら業務を遂行しています。この精神に基づき、短期的・長期的に取り組んでいる改善点について説明します。

2021年2月26日に発生したサービス中断の概要

2021年2月26日(金)、Twilioのバックエンド系サービスの1つでサービス中断が発生し、その影響が、午後10:00(日本時間)から翌日土曜日の午前00:30(日本時間)までの間、様々なTwilio製品に及びました。サービス中断の根本原因は、多数のTwilio製品の機能を管理するFeature Enablementサービスに対して過大な負荷が生じたためです。本事象発生後1分以内に、サービス中断が検出され、オンコールエンジニアリングチームに通知されていましたが、ステータスページが25分間更新されず、お客様が状況を把握できませんでした。この過大負荷の問題を解決するため、Twilioはサーバー容量とキャッシュ機構を増強し、該当サービスへの負荷を軽減しました。今回のサービス中断について詳しくは、こちらのブログ(英語オリジナル日本語抄訳)を併せてご覧ください。

今回のインシデントに関係したサービスの技術的改善

2021年2月26日の障害の原因となったFeature Enablement サービスについて、計37件の技術的改善点を洗い出しました。このうち24件が、現時点で対応済みです。対応済みのうち重要度が高いものと、対応中のものを幾つかご紹介いたします。

対応済みの項目:

  • Feature Enablementサービスをよりアグレッシブに自動拡張動作する設定に変更し、トラフィックの急増に対応できるようにする。
  • 本サービスをクリティカルパスから外し、クライアント側(本サービスに呼び出しを掛ける側)でのキャッシュ機構をデフォルト動作とし、サービスの中断を防止する。
  • 本サービスのリクエストタイムアウトを短縮し、サービスのAPIのリファクタリングにより拡張性を向上させる。

対応中の項目 (2021年4〜6月期中に完了予定)

  • 当該サービスのAPIコントラクトをリファクタリングし、拡張性を向上させる。
  • 当該サービスのフェイルオーバー機構を再設定し、システム障害発生時の耐障害性の向上を図る。
  • キャッシュ機構に対するサーバーのアプローチをリファクタリングし、負荷を軽減する。

同様の問題が他のサービスに及ぶリスクを軽減:

Twilioのエンジニアリング運用プロセスを改善し、障害の再発を防止するため、エンジニアリング部門全体での包括的変更をいくつか実施することにしました。現在、それぞれの変更に取り組んでおり、2021年4〜6月期中に完了予定です。

  • 本番システムの監査を終え、類似のリスク特性を持つサービスを特定し、必要に応じて修正する。
  • 下流で障害が発生した場合に、すべてのクライアントサービスの機能が急激に低下しないように構成する。
  • デプロイツールやオンコール手順書を見直し、すべてのサービスでサーバー群の容量管理を改善し、手作業の排除、復旧時間の短縮を行う。

上記に加え、標準化されたツールを調達・導入し、今回のような中断の発生時に技術的対応を調整する役職を新設しました。

最後に

あらためて、中断によりご不便をおかけしたことにお詫び申し上げますとともに、日頃のサービスのご利用に感謝いたします。プロセスや機能に関する改善の実施と時期については、今後も速やかに最新情報をお知らせしてまいります。