2019年2月12日 2:33 AM

一部ユーザーがログインできない、ファイル・Git・Subversionを利用できない状況が発生しておりました。

2月6日(水) 18時34分頃 から 2月7日(木) 18時00分頃まで、一部ユーザーにてログインができない、ファイル・Git・Subversionを利用できない状況が発生しておりました。

今回の障害は、Backlogの 認証基盤であるヌーラボアカウントと Backlog 間で問題が発生しました。
「nulab.com」から「 nulab.com 」への移行計画の一部としてインフラ構成の変更で問題が発生したのと、アプリケーションのロジック変更によるデータベース更新量増加が原因となっております。

[障害の種類]
障害の種類は2つあり、お客様によっては以下の時間でのアクセスがしづらい状況でした。

(A) 2月6日(水) 18時34分頃 から 2月7日(木) 13時44分頃まで、Backlog の一部のユーザーがログインできない状況が発生しておりました。
(B) 2月7日(木) 12時40分頃 から 2月7日(木) 18時00分頃まで、ファイル・Git・Subversionを利用できない状況が発生しておりました。

[障害の概要]
・ 前提
・ 「nulab.com」から「 nulab.com 」への移行計画に伴い、両ドメインからのHTTPS通信を受けるために、複数証明書をロードバランサーに持たせる必要がありました。この機能は AWS の Application Load Balancer にはありますが、これまで弊社で使用していたのは AWS のClassic Load Balancer であったため、ロードバランサーの切り替えを計画しました。 → 障害(A)の根本原因
・ 認証に使用しているハッシュの強度は十分であったが、予防的にさらなる強度の向上を計画しました。 → 障害(B)の根本原因

・ 時系列
・ 2019/02/06 18:34 AWS のClassic Load Balancer から AWS の Application Load Balancer に加重比率を変更しました → 障害(A)の発生
・ 2019/02/07 11:01 ドメイン移行に伴い「nulab.com」と「 nulab.com 」を並行稼動をさせていたがお客様によってはサインインできないトラブルがあったことを確認しました → 障害(A)の確認
・ 2019/02/07 12:37 ロードバランサーの切替が根本原因と特定しました → 障害(A)の原因特定
・ 2019/02/07 12:40 認証基盤であるNulab Appsのリリース → 障害(B)の発生
・ 2019/02/07 12:44 に 一部ユーザーがファイル・Git・Subversionを利用できないことを確認しました → 障害(B)を確認したが、障害(A)と同原因と誤認
・ 2019/02/07 13:44 に ロードバランサーの対策を実施しログインできるようになったことを確認しました → 障害(A)の解決
・ 2019/02/07 14:23 別原因と気付き → 障害(B)の確認
・ 2019/02/07 16:12 社内検証により 12:40 のリリースが原因と判明 → 障害(B)の原因特定
・ 2019/02/07 18:00 に アプリの修正版をファイル・Git・Subversionを利用できるようになったことを確認しました → 障害(B)の解決

[障害の影響範囲]

・ (A) 一部のユーザーで 認証基盤であるヌーラボアカウントを経由した場合に Backlog にログインできない状況になっていました。
・ (B) 一部のユーザーで 認証基盤であるヌーラボアカウントを経由した場合に ファイル・Git・Subversion を利用できない状況になっていました。

[障害発生の原因]

・ (A) Application Load Balancerに切り替えた結果、アプリ側の設定でスティッキー・セッションを維持できない問題が発生し、CSRFトークンが正常に処理できず、ログインができない状態が発生しました。またインフラ構成の変更後にE2Eテストを実施していなかったため、障害の発見が遅れました。
・ (B) 認証APIにユーザー情報のハッシュを更新する処理が入り、Backlogから認証APIの使用頻度が高く、データベースの行ロックが発生しやすくなり、アプリケーションが応答できない状態が発生しました。

[対策]

・ (A) ALBを使わない代替案を検討し、実施します。また、同様の問題が再発した場合に、インフラ構成の変更に対する問題を検知できるように、E2Eテストの実施を手順に含め必ず実施します。
・ (B) 認証に関する監視項目を増やします。認証に関する性能評価を強化し、性能を改善します。

Backlog をご利用のお客様にはご迷惑をおかけし、申し訳ありませんでした。安心して Backlog をご利用いただけるよう、改善を進めてまいります。

一覧に戻る