【障害報告】2019年8月1日

第十六報 障害報告

2019年8月5日午後8時20分(日本時間)現在の状況報告です。
このたびは、ご利用の皆様、関係者の皆様におかれましては、大変なご迷惑をおかけしたことを、深くお詫び申しあげます。

今回起こりました障害につきまして、障害内容の詳細と原因、今後の対応につきまして、報告させていただきます。

障害発生日時

2019年8月1日17時31分 ~ 2019年8月2日12時00分(日本時間)

障害内容

(1)訪問者・管理者にチャットシステムが表示されなくなった
(2)データベースが再起動できなくなった

発生原因

(1)チャットデータベースへの接続数が急増し、クエリ滞留後、データベースに接続できない状態となった。
ログを解析したところ、該当時間帯に外部からのアクセスが急増したわけではないため、大量の接続が試みられたというよりは、一回のコネクションの処理に時間がかかって結果的に大量のコネクションが滞留したとみられる。
(2)データベースシステムの規模が大きくなり、データ更新頻度が高すぎると再起動できなくなるmySQL上の不具合があった。

暫定対応

  • データベースのスナップショット間隔を1日から2時間に修正(2019年8月2日実施)
  • データベースシステムから不要なデータを物理削除し
    ・テーブルの削減
    ・データベースの軽量化
    を行った。(2019年8月3~5日実施)
  • データベースの設定値を更新し、軽量化(2019年8月3日実施)
  • チャットシステムのタイムアウト処理を見直し、軽量化改修実施(2019年8月5日実施)

今回障害が長期化した理由は、データベース再起動が行われず、ホットスタンバイが利用できなくなり、スナップショットから復旧する必要が生じたことと、スナップショットからの復旧に時間を要したため。今後は、障害を防止するとともに、サービス停止が長期化しないよう、データベースを分散、負荷軽減および小規模化するとともに、ダウンタイムを短くするためにスナップショット時間を短縮した。

恒久対応

  • データベースの垂直分散
    session、訪問者履歴、IPアドレステーブルのデータベースを分割する。(2019年8月5日以降実施予定)
  • データベースの水平分散
    データベースシステムを契約単位で細分化する(2019年8月12日以降 実施予定)
  • チャットシステムおよびタイムアウト処理の見直し、高速化(随時実施予定)
  • この度は、ご利用いただいている皆様、関係者の皆様に多大なご迷惑をおかけいたしまして、誠に申し訳ございませんでした。深くお詫び申しあげます。
    再発防止に努め、皆様が快適にサービスをご利用いただけますよう改善してまいります。
    今後とも変わらぬご愛顧を賜りますよう、よろしくお願い申しあげます。
    障害報告書.pdf

    第十五報 緊急メンテナンスのお知らせ 完了

    2019年8月3日午前4時20分(日本時間)現在の状況報告です。ただいま、新しい設定を適用したデータベースでの動作確認が完了しました。
    当メンテナンスにより、チャットアプリケーションの動作およびリカバリー処理のパフォーマンス改善が見込まれます。
    適宜設定をチューニング、負荷軽減を行うことで、さらに安定・継続したチャット利用ができるようにして参りますので、よろしくお願いいたします。

    第十四報 緊急メンテナンスのお知らせ

    2019年8月3日午前2時50分(日本時間)現在の状況報告です。ただいま、2時15分時点でデータベースのスナップショットを取得し、設定変更を適用したデータベースを構築しています。作成に時間がかかっており大変恐縮なのですが、今しばらくお待ちいただけますと幸いです。
    関係者の皆様におかれましては、ご迷惑をおかけし誠に申し訳ございません。重ねてお詫び申しあげます。

    第十三報 緊急メンテナンスのお知らせ

    2019年8月3日午前2時20分(日本時間)現在の状況報告です。現在、データベースのメンテナンスを行っているため、チャットシステムに繋がりにくくなっております。
    適宜設定をチューニング、負荷軽減を行うことで、さらに安定・継続したチャット利用ができるようにしておりますので、よろしくお願いいたします。
    関係者の皆様におかれましては、ご迷惑をおかけし誠に申し訳ございません。重ねてお詫び申しあげます。

    第十二報 緊急メンテナンスのお知らせ

    2019年8月2日午後8時20分(日本時間)現在の状況報告です。現在、不安定な状況を改善するために、データベースシステムの軽量化および分散、設定変更を実施予定です。8月3日午前2時15分~3時(日本時間)までの間の30分程度、チャットシステムに繋がりにくくなる可能性がございます。
    適宜設定をチューニング、負荷軽減を行うことで、さらに安定・継続したチャット利用ができるようにしておりますので、よろしくお願いいたします。
    関係者の皆様におかれましては、ご迷惑をおかけし誠に申し訳ございません。重ねてお詫び申しあげます。

    第十一報

    2019年8月2日午後5時40分(日本時間)現在の状況報告です。現在、一部のお客様の環境下で断続的に不安定になっている状態が発生しています。
    不安定になっていた時間帯は以下のとおりです。
    ●17時12分~20分
    ●17時31分~37分
    適宜設定をチューニング、負荷軽減を行うことで、継続したチャット利用ができるようにしておりますので、よろしくお願いいたします。
    関係者の皆様におかれましては、ご迷惑をおかけし誠に申し訳ございません。重ねてお詫び申しあげます。

    第十報【復旧報】

    2019年8月2日正午12時00分(日本時間)現在の状況報告です。現在は、復旧が完了し、チャットシステムが正常に稼働するようになりました。ただいま原因の調査や再発防止策の検討、恒久対策に向け、状況を調査しております。今しばらくお待ちいただきたくよろしくお願いいたします。
    関係者の皆様におかれましては、ご迷惑をおかけし誠に申し訳ございません。重ねてお詫び申しあげます。

    第九報

    2019年8月2日午前10時50分(日本時間)現在の状況報告です。新規データベースを8月1日午後5時20分時点の状態にする復旧が完了しました。スナップショットを再取得、テスト稼働確認を行い、10時37分よりチャットシステムの接続先DBを変更しました。管理画面やチャットボットは表示されるようになりましたが、安定して稼働するか否かを確認している段階となります。完全復旧に向け、今しばらくお待ちいただきたくよろしくお願いいたします。
    関係者の皆様におかれましては、ご迷惑をおかけし誠に申し訳ございません。重ねてお詫び申しあげます。

    第八報

    2019年8月2日午前10時00分(日本時間)現在の状況報告です。現在も、管理画面にログインできない、チャットボットが表示されないことが継続しております。ご不便をおかけしており大変申し訳ございせん。

    特定の時点への復元(以下PITR)作業につきましては9時34分の時点でリストアが完了し、初期バックアップシステム構築段階に入っております。順調にすすんでいるものの、今しばらくかかる見込みです。今しばらくお待ちいただきたくよろしくお願いいたします。
    関係者の皆様におかれましては、ご迷惑をおかけし誠に申し訳ございません。重ねてお詫び申しあげます。

    第七報

    2019年8月2日午前5時00分(日本時間)現在の状況報告です。現在も、管理画面にログインできない、チャットボットが表示されないことが継続しております。ご不便をおかけしており大変申し訳ございせん。

    AWSより回答があり、特定の時点への復元(以下PITR)作業の完了までには、適用ファイルの残容量から逆算するに、およそあと5時間程かかる見込みであるとのことでした。今しばらくお待ちいただきたくよろしくお願いいたします。
    このたびは誠に申し訳ございません。重ねてお詫び申しあげます。

    第六報

    2019年8月2日午前2時30分(日本時間)現在の状況報告です。現在も、管理画面にログインできない、チャットボットが表示されないことが継続しております。ご不便をおかけしており大変申し訳ございせん。

    8月1日23時17分、AWSより以下回答がありました。

    - 特定の時点への復元(以下PITR)に時間がかかる原因
    - 現在までに判明しております原因
    - 現在の対応状況
    # 特定の時点への復元(PITR)に時間がかかる原因
    データベースシステムの特定の時点への復元はスナップショットからの復元を行い、その内容に対してバイナリログを適用する動作となるのだが、スナップショットから復元した直後のインスタンスはプルダウンが完了しておらず、初回のストレージからの読み込みが通常のストレージからの読み込みよりも一般的にレイテンシーが高い状態となる。
    この状況はバイナリログの適用が進むにつれて解消するものの、実時間以上かかる場合がある原理はこの理由によるもの。
    バイナリログの適用に最終的にどの程度の時間がかかるかはその適用内容にも依存するため、詳細な完了時刻の見積もりは難しいとのこと。
    特定の時点への DB インスタンスの復元
    https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PIT.html

    # 現在までに判明している原因
    エラーログとAWSによる独自調査の結果、MySQL 5.7 の既知の不具合 https://bugs.mysql.com/bug.php?id=85307 に該当する可能性があるとのこと。(チャットプラス注:AWSの現時点での見解であり、100%断定できるものではありません)

    # 現在の対応状況
    上記の原因であるとの方針で、現在担当者が対応を進めている。

    続いて、8月1日午後11時43分、AWSより、mysqlのinnodb_purge_threads のパラメータが0であることが、リカバリに影響を与えている可能性があるという指摘があり。8月1日午後11時59分、該当パラメータを0から1に修正しました。しかしリカバリの状況に影響はありませんでした。

    さらに、日付が変わり8月2日1時46分、AWSより、以下の進捗報告がありました。
    - パラメータの更新について

    - 再起動より復帰しないインスタンスの分析について
    - PITRの進捗について

    # パラメータの更新について
    本事象の抜本的な対策とはならなかったが今回変更いただきましたパラメータは、現在の状態が推奨値とのこと。
    # 再起動より復帰しないインスタンスの分析について
    専任のエンジニアの分析の結果、23時17分時点で案内した MySQL 5.7 で報告されている不具合に該当しているとの可能性が高いこと。
    これは書き込み負荷が高い状態、特に特定の同じ行やブロックを繰り返し更新するワークロードを実行中に、InnoDBのトランザクションログが更新量に対して十分ではない場合に、再起動を行った場合、トランザクションログが破損することがあるもの。
    専任のエンジニアによる復旧を試みているが、データの完全な復旧ができない場合もあるため PITR での復旧が先に完了している場合、PITRの利用が推奨される。

    # PITRの進捗について
    PITR に時間はかかっているものの、ストレージパフォーマンスは徐々に期待される性能に近づいていることがメトリクスから把握できる。
    現在、ReadLatencyは 10ms を下回る状態で、これはご利用のストレージタイプの期待されるレイテンシー(一桁ms)になっている。
    処理はストレージのパフォーマンスが向上するとともにスループットも向上することが期待されるため、引き続きPITRの完了を待ってほしいとのこと。

    このたびは誠に申し訳ございません。重ねてお詫び申しあげますとともに、復旧に向け鋭意努力いたします。今しばらくお待ちいただきたくよろしくお願い申しあげます。

    第五報

    2019年8月1日午後11時00分(日本時間)現在の状況報告です。現在も、管理画面にログインできない、チャットボットが表示されないことが継続しております。ご不便をおかけしており大変申し訳ございせん。

    AWSより回答がありました。

    再起動できないインスタンスの復旧予定は、未定
    新たに起動したインスタンスの復旧にも、10時間以上かかる可能性があるとのことでした。

    回答を受けまして、さらに10時間以上かかるというのはなぜか。本当に復旧できるのかという質問をしております。
    今後の進捗や経過がありましたら、報告させていただきます。
    このたびは誠に申し訳ございません。重ねてお詫び申しあげます。

    第四報

    2019年8月1日午後9時30分(日本時間)現在の状況報告です。現在も、管理画面にログインできない、チャットボットが表示されないことが継続しております。ご不便をおかけしており大変申し訳ございせん。

    午後5時50分に実施したデータベースの再起動がうまくいかず、ログを見ると再起動を繰り返しております。AWSサポートからはエンジニアアサイン中との返信が来ました。
    再起動がうまくいかない場合に備え、並行して立ち上げ、データ復旧を行っているインスタンスも、起動から2時間半を経過していますがまだ作成中のため、AWSサポートに復旧予定時間を確認しております。
    このたびは誠に申し訳ございません。重ねてお詫び申しあげます。

    第三報

    2019年8月1日午後7時00分(日本時間)現在の状況報告です。現在も、管理画面にログインできない、チャットボットが表示されないことが継続しております。ご不便をおかけしており大変申し訳ございせん。

    午後5時50分に実施したデータベースの再起動に時間がかかっております。AWSのデータベースインスタンスが終わらず、ログを見ると再起動を繰り返しております。再起動中のためconsoleメニューからバックアップインスタンスへの切り替え等も出来ない状況にあるため、午後6時32分AWSサポートに調査を依頼しました。中断時間が1時間を超えたため、同時に、並行して新たにもう一つインスタンスを起動させ、スナップショットおよびバイナリデータから障害時までのデータ復旧を行っております。ご利用されている皆様におかれましては、ご迷惑をおかけしており大変申し訳ございません。復旧まで今しばらくお待ちくださいますよう、お願い申しあげます。
    このたびは誠に申し訳ございませんでした。重ねてお詫び申しあげます。

    第二報

    2019年8月1日午後6時30分(日本時間)現在の状況報告です。現在も、管理画面にログインできない、チャットボットが表示されないことが継続しております。ご不便をおかけしており大変申し訳ございません。

    データベースへのコネクション増加によるWebサーバの負荷増大などが確認されており、17時38分より全Webサーバを再起動しましたが、復旧しないため、17時50分にデータベースの再起動を実施しております(現在再起動中です)。ご利用されている皆様におかれましては、ご迷惑をおかけしており大変申し訳ございません。復旧まで今しばらくお待ちくださいますよう、お願い申しあげます。
    このたびは誠に申し訳ございませんでした。重ねてお詫び申しあげます。

    初報

    2019年8月1日午後5時31分(日本時間)ごろより、管理画面にログインできない、チャットボットが表示されないことがある状況となっています。

    ○管理画面を表示するとエラーになる

    ○ログインができない

    現在調査および早期復旧をすすめておりますが、ご利用されている皆様におかれましては、ご迷惑をおかけしており大変申し訳ございません。復旧まで今しばらくお待ちくださいますよう、お願い申しあげます。
    このたびは誠に申し訳ございませんでした。重ねてお詫び申しあげます。

シェアする

フォローする

  • RSSを