GitHub、2023年5月に発生した3つの障害の原因を明らかに 分散型なのになぜ?構成変更によるフェイルオーバー、データベースクラッシュなど

GitHubは、2023年5月9日〜11日にGitHubで発生した3つの障害の原因と対策を公式ブログで明らかにした。

» 2023年06月07日 10時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 GitHubは2023年5月16日(米国時間、以下同)、5月9日〜11日にかけてGitHubで発生した障害について、原因と対策を公式ブログで明らかにした。

 GitHubでは3日間に渡って、立て続けに3つの障害が発生していた。障害の概要と影響は以下の通り。

  • 2023年5月9日:
    • 設定変更に伴うGitデータベースの性能低下
    • 主要10サービス中、8サービスで性能低下
  • 2023年5月10日:
    • 高負荷によるGitHub Appの認証トークン発行の性能低下
    • 主要10サービス中、6サービスで性能低下
  • 2023年5月11日:
    • リードレプリカの喪失によるGitデータベースの性能低下
    • 主要10サービス中、8サービスで性能低下

 9日には、8サービスが停止し、大部分は1時間強続いた。障害の原因は、Gitデータを提供する内部サービスの構成変更だった。変更後にクラスタのフェイルオーバーが発生。ロールバックを試したが、内部のインフラエラーにより失敗した。フェイルオーバーの完了後、データベースへの書き込み操作が回復し、影響は軽微なものとなったが、Gitデータ、Webサイトコンテンツ、障害発生中に受け取ったPull Requestの整合性を確保するのに時間を要した。

Git Pushのエラー率の推移(提供:GitHub) Git Pushのエラー率の推移(提供:GitHub)

 10日には、GitHubアプリの認証トークンを発行するデータベースクラスタで、書き込み待機時間が通常の7倍に増加。認証トークンリクエストの失敗率はピーク時で76%に達した。障害の原因は、GitHubアプリの権限管理APIの非効率な実装だった。特定の状況において大量の書き込みとタイムアウトが発生する状態になっており、タイムアウト後に別の呼び出し元からAPIが実行されることも、インシデントを誘発させる一因となった。

遅延時間の推移(提供:GitHub) 遅延時間の推移(提供:GitHub)

 11日には、Gitデータを提供しているデータベースクラスタがクラッシュした。プライマリーのフェイルオーバーは成功したが、リードレプリカが接続されておらず、読み書きの負荷を処理できなくなった。結果として、平均15%のリクエストが失敗したり遅延したりした(ピーク時は26%に達した)。

分散型システムのGitHubで広範囲に影響が出た理由

 GitHubは、分散型システムにおいて障害の発生は不可避だが、上記のような複数のサービスにまたがる重大な障害を引き起こすべきではないと説明。障害の影響が広範囲に及んだ理由を2つ挙げた。

 1つは、Gitの読み書きで欠かせないGitデータベースで障害が起きたことだ。多くのワークフローがGitの読み書きを前提にしているため、遅延と障害の増加につながり、GitHub Actionsでデータを引き出せなくなったり、Pull Requestが更新されなくなったりした。

 もう1つは、トークン発行に影響を及ぼす障害が起きたことだ。トークンを必要とするGitHubの機能が利用できなくなり、GitHub ActionsやGitHub Codespacesで実行に必要なデータにアクセスできず、大規模な障害につながった。

 GitHubは今後の対策として、以下の5つを挙げており、すでに一部の取り組みを開始しているとした。

  • 内部プロセスを見直し、変更が常に安全にデプロイされるよう調整を進める
  • 障害後の分析とレビューに加えて、障害がサービス全体に与えた影響を分析し、今後同様の障害が発生した場合に影響を軽減できる場所を特定する
  • 高コストで低頻度のクエリパターンの観測性を改善し、同様の問題を迅速に診断し軽減する能力を向上させる
  • 複数の障害の原因となったGitデータベースのクラッシュに対処する
  • データベースのフェイルオーバーに対して、介入なしで稼働再開することを保証するための対策に取り組む

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。