データベースの可用性「99.999%」の実現を目指し、
ビジネスの急成長に伴う機会損失リスクを軽減

株式会社ロコンド

小売業

概要

株式会社ロコンドでは顧客数の急増による日々高まるシステム負荷に対する機会損失リスクに備え、MySQL InnoDB Cluster を使用した新しい高可用性構成の導入を実施。導入後は、データベースの可用性が大幅に向上しサービス品質の向上やデータベースのトラブルに起因する機会損失を減らすことに成功した。

バージョン

MySQL 5.7、8.0

対象システム

EC 事業とプラットフォーム事業で利用されるデータベース基盤

課題

  • ビジネスの急成長に伴う顧客数の増大により、発生するシステム負荷による機会損失リスクの増加

解決策

結果

  • データベースの可用性が大幅に向上
  • 運用負荷の減少
  • データベースのトラブルに起因する機会損失リスクの減少

Interview

ビジネスの急成長に伴うシステムトラブルと機会損失を解消

  • 株式会社ロコンド

    DESIGN & TECH本部 IT部門

    シニアディレクター 杉山 様

    (部署名や肩書は取材当時のもの)

  •  様

    (部署名や肩書は取材当時のもの)

ロコンドでは現在、主力であるEC事業のほか、B2B向けプラットフォーム事業とオリジナルブランド運営、そして投資事業の4つの領域でビジネスを展開しています。これらの中でも、近年は特にプラットフォーム事業に力を入れていますが、EC事業ともども顧客数が急増しており、システムに掛かる負荷も高まっています。それに伴い、システムが停止などによる顧客サービスや売り上げへのインパクトが増大してきました。

EC 事業とプラットフォーム事業で利用されるデータベース基盤はMySQL で構築しており、データベースの予期せぬ障害によるシステム停止時間を極力減らすべく、クラスタ構成を組んでいました。しかしプライマリからセカンダリへのフェイルオーバー時には手動の作業が必要で、運用の手間が掛かるとともに実際にはダウンタイムが伸びる一因ともなっていました。

そこで、2017 年4 月にInnoDB Cluster がリリースされたことを機に、これを使った新しい高可用性構成の導入検討を始めました。データベース障害時のより高速な自動フェイルオーバーが実現すれば、システム停止に起因する機会損失を減らせるとともに、データベースの運用負荷も低減できるのではないかと考えたのです。

MySQL InnoDB Cluster導入について

InnoDB Clusterの導入でデータベースの可用性が大幅に向上

既存のレプリケーション環境の下にInnoDB Clusterをスレーブとして追加し、データを同期させるためにはGTIDモードを利用する必要があり、かつ既存環境をオンラインでGTIDモードへ変更するには、MySQL 5.6環境を5.7へアップグレードする必要がありました。そこでまずは5.6から5.7へのアップグレードパスを検討するとともに、アップグレード後のInnoDB Cluster環境の負荷試験やバックアップの検証、障害試験などを行いました。

これら事前検証の結果が良好だったため、2018年7月からいよいよMySQLのバージョンアップとInnoDB Cluster環境への移行作業を開始しました。既存のレプリケーション環境の下にInnoDB Clusterをスレーブとして追加し、複数あるアプリケーションの接続先を順次切り替えていくことで、2018年12月にほぼすべてのアプリケーションの移行を終えました。これらの作業を行う上では、MySQLのオフィシャルマニュアルとともに、スマートスタイルの技術ブログの情報が非常に役立ちました。

 

 

試験の詳細などは下記の資料で公開しております。
https://www.slideshare.net/ShinyaSugiyama/db-tech-showcasetokyo2018locondo

現在では、1台のプライマリサーバと2台のセカンダリサーバでInnoDB Cluster環境を構成しており、さらにWindows関数やCTEを利用可能なMySQL 8.0のインスタンスをグループ外ノードとして準備しています。移行完了後はデータベースの可用性が99.999%にまで向上し、サービス品質が向上したとともに、データベースのトラブルに起因する機会損失を減らすことができました。またデータベース障害発生時の手動対応が不要になり、運用負荷も大幅に軽減しました。

データベースサーバはすべてクラウド環境上で稼働しており、移行の前後でサーバスペックは特に変えていませんが、オンライン処理のパフォーマンス劣化はほとんどなく、現在のところ何の問題もなく稼働しています。ただしバッチ処理に関しては若干のパフォーマンス劣化が見られたため、細かくトランザクションを分割することで対応しています。

 

MySQL Enterprise Editionについて

無償版から有償版への切り替えで管理効率が向上

MySQL のバージョンアップと同時に、新たに有償の管理ツール「MySQL Enterprise Monitor」を使い始めました。あらゆるクエリを簡単に分析でき、障害やパフォーマンス低下時の問題切り分けに大いに役立つとともに、当社では作業中のメタデータのロックの確認などで活用しています。加えて、グループレプリケーション環境に正式対応している数少ないツールの1 つであるため、非常に重宝しています。

また商用版はサポートサービスが受けられるので、その点もとても安心感が高いですね。今後、MySQLのバージョンアップも予定していますから、サポートサービスを利用する機会は増えてくると思います。

今後はMySQL 8.0へのアップグレードも視野に

当社は2010年の創業以来、6年間で年商100億円を突破しましたが、2030年までには年商1000億円の達成を目指しています。これを実現するには、システムの安定性をさらに高め、機会損失をなるべく低く抑える必要がありますが、今回のInnoDB Cluster導入でその第一歩を踏み出すことができました。またシステム運用の現場でも、たとえデータベースにトラブルが発生しても慌てず対応できるようになり、アプリケーションに余計な工数を掛けずに継続的にサービスを提供できるようになりました。

今後はMySQL 8.0の導入を検討するとともに、社内システムのアーキテクチャをマイクロサービス化することで、より柔軟かつ堅牢なシステムを目指していきたいと考えています。さらに、2019年には, 「靴の在庫シェアリング」 を最適化する事が可能な、基幹システムを含めた業界向けの総合オムニパッケージの提供を開始する予定です。

これらの将来構想を実現する上では、スマートスタイルには引き続きMySQLに関するレベルの高い情報発信とサポートを期待するとともに、今後はMySQLに関連した幅広い分野でぜひ価値の高い提案をいただければと思います。

MySQL InnoDB Clusterとは

MySQL Group Replication / MySQL Router / MySQL Shellの3つのコンポーネントの組み合わせから構成されるMySQL のフルスタックな高可用性ソリューション
高い高可用性とスケーリング機能を包括的に備えた単一製品であり、自動フェイルオーバーや、ローリングアップグレード、フローコントロールなどの代表的な機能を持つ

MySQL InnoDB Clusterの詳細こちら

 

株式会社ロコンド

小売業

https://www.locondo.co.jp/
  • 住所:〒151-0062 東京都渋谷区元代々木町30−13 グラスシティ元代々木8F
  • 事業内容:EC事業 / プラットフォーム事業 / ブランド事業 / 投資事業