今回の記事は少し毛色を変えて、スマートメーターから取得したBルートデータがどのように保存されるのか、サーバやシステムの面からお話ししたいと思います。技術的な内容を含みますが、どうぞお付き合いください。システムの全体像システムの全体像を紹介する前に、まずはこの図をご覧ください。今回ご紹介するのは、図の中にある「メーターデータ管理システム(MDMS)」という部分になります。MDMSは文字通りBルートデータを収集し、それを皆様に提供しているシステムです。サーバがたくさんあってややこしいですね(これでもかなり簡略化しているのです)。下に各サーバの役割などをまとめました。役割などロードバランサ一番最初にリクエストを受け取るサーバ何台もあるwebサーバに均等に仕事を割り振る役目を持つロードバランサ1が何らかの理由で止まった場合は、自動的にロードバランサ2が仕事を引き継ぐwebサーバMDMSの一番メインとなるサーバMDMSとして様々なデータを扱うプログラム(webアプリケーション)が動いているロードバランサから仕事を割り振られるHTMLファイルも置かれている多くのリクエストを受け取って処理する必要があるため、複数台で負荷を分散している。いうデータベースを使用することで、大量のBルートデータを保存する仕組みを実現。データベースサーバという流れでデータの保存や、グラフの表示が行われます。メンテナンスをどのように行なっているかBルート活用サービスに何か新しい機能を追加したり、バグを修正するためには、webサーバを一度止めて動いているプログラムを更新する必要があります。これは普段どのように行われているでしょうか。実はロードバランサにはもう一つ重要な仕事があります。それは「webサーバから応答があることを常に確認する」という仕事です。webサーバから応答がなくなった場合、ロードバランサはそのwebサーバには仕事を割り振らないようにします。これによりwebサーバが1台止まっていても他のwebサーバに仕事が割り振られるため、システムは問題なく動作することになります。上記の仕組みがあるため、メンテナンスの際はwebサーバ1を停止させてプログラムを更新webサーバ1を再起動webサーバ2を停止させて...というようにwebサーバを順番に更新することで、MDMSを止めることなくメンテナンスを行っています。障害からサービスを守るサーバのハードウェアには高価な機器を使っていますが、それでも故障は必ず発生します。ソフトウェアのバグで止まってしまうこともあるかもしれません。いった障害が発生してもサービスが止まらないように、各サーバは必ず複数台が連携して動作するような仕組みになっています。上であげたメンテナンスの仕組みは、そのままwebサーバが故障した際にも当てはまります。ロードバランサが常にwebサーバを監視しているため、全てのwebサーバが同時に止まらない限り、サービスは問題なく動作し続けます。データベースについてはもう少し複雑で、1台が壊れてもデータの整合性を保ちつつ、データが消えないようにする仕組みが必要です。Bルートデータはまず優先度の高いデータベースサーバ1に保存され、ほぼリアルタイムで他のサーバーに同期されます。データベースサーバ1が故障などで止まった場合、次に優先度の高いデータベースサーバ2が自動的にデータを受け付け始めます。Bルートデータは既にデータベースサーバ2にも同期されているため、データが消える心配もありません。このようにどこのサーバーで障害が発生しても、データを守りつつ、サービスを普段通りに使えるような仕組みが構築されています。結び分かりにくい部分もあったかと思いますが、いかがでしたでしょうか。お客様のデータをどのように守っているか、サービスを停止させないためにどんな工夫をしているか、少しでもお伝えできていれば幸いです。今後もお客様に安心してBルート活用サービスをお使いいただけるよう、開発者として最大限の努力をしていきたいと思います。IIJの電力系サービス開発担当。新卒入社後にプロジェクトに配属され、今年で3年目。サーバープログラムの実装やUIの設計などを行なっています。ネコリコ」が業務を開始しました最近の投稿RSS蔦屋家電+(プラス)でネコリコ触れます。Inc.サイトについて。