断続的なAPIエラー発生
Incident Report for BankcodeJP API
Postmortem

この度は、APIの応答にタイムアウトエラーが発生したことにより、
お客様をはじめ関連各所に多大なご迷惑をおかけしましたこと、
心よりお詫び申し上げます。

2024年10月21日 18:11:02までにエラーの発生は収束しておりますので、
現時点での状況をご報告させていただきます。

■ 発生日時
2024年10月21日 08:15:27 ~ 2024年10月21日 18:11:02

■ 事象
APIからの応答が断続的にHTTPレスポンスステータス500(タイムアウトエラー、レスポンスエラー)
となっておりました。特に、2024年10月21日 11:10:00~11:20:00にエラーが頻発しておりました。

■ 原因
システムが想定を大きく超える高負荷状態となり、システムのスケールアップが
行われる際にエラーが発生いたしました。

具体的には、アプリケーションコンテナが自動でスケールアップする際に、
完全に起動される前にHTTPリクエストを受け入れてしまい、その結果、
APIプロキシでタイムアウトと判定され、APIエラーとして応答してしまったことが原因です。
この事象は、著しいAPIリクエストがあるタイミングにスケールダウンおよび
スケールアップが発生する度に起こっておりました。

また、今回の高負荷の起因として、クライアントからの負荷試験と推測される
APIリクエストパターンが確認されております。
現在、該当するお客様へのヒアリングを実施中であり、その結果を基に
今後エラー応答が発生しないような対策を検討しております。

■ 対処
・16時11分頃に、アプリケーションコンテナの最小起動数を負荷時の最大数へ固定し、
さらにアプリケーションコンテナ起動時のルーティング受け入れまでの遅延秒数を延伸いたしました。
・同時に、APIプロキシのアプリケーションコンテナからの書き込みデータ待ち時間設定も延伸いたしました。

■ 追加対応
・各コンテナ間のライフサイクルを見直し、意図しないタイムアウトが発生しないように
設定値の見直しを進めております。今回の事象発生箇所とは別に、ロードバランサーの設定や
データベースの接続におけるタイムアウト値の調整を行い、コンテナ間の通信や
データベースアクセスの安定性を確保するための検証を進めております。
・アプリケーションコンテナ側でキャッシュ機構を実装し、その他のリソース負荷や
リソース間のオーバーヘッドを軽減する施策を進めております。

引き続き、安定したサービス提供のために最善を尽くしてまいりますので、
何卒よろしくお願い申し上げます。

Posted Oct 21, 2024 - 21:27 JST

Resolved
断続的なAPIエラー発生
Posted Oct 21, 2024 - 11:30 JST