Lobiチームの長田です。 今回はLobiで使用しているデータベースの構成・運用について紹介します。 TL;DR メインのデータベースとしてMySQLを使用 一般的なmaster-slave構成 HAProxyとMHAでDBのfailoverを自動化 HAProxyでslaveへの接続を分散・死活監視 MHAで障害時のfailover・ENIを付け替えてmaster切り替え で、何が起こるの? サービスが提供できなくなります。 ユーザーの認証情報等、サービス提供に必要不可欠なデータを管理しているため、一時的なサービス停止は免れません。 ユーザー体験的にもビジネス的にも、大変厳しい状態です。 この「一時的」な時間を可能な限り短くするために障害復旧の一次対応を自動化しています。 自動化のメリットとして、単純にサービス停止時間が短くなることはもちろん、 復旧処理を行う際の人的なエラーを未然に防ぐ