AKB総選挙 開発者の戦い

国内最大規模の情報資産プラットフォーム企業である株式会社パイプドビッツは、第三者機関として「AKB48 22ndシングル 選抜総選挙(以下、「総選挙」)」投票システムの納品や運用、QRコードやシリアルナンバーの発行、各チャネルからの投票集計などにより公平な選挙を支援いたしました。総選挙を滞りなく終結するために、舞台裏で繰り広げられた技術者の奮闘記をお伝えいたします。

2.想像も付かない DB、アプリケーション構築 丸岡の場合

本プロジェクトのソフト面、DBやアプリケーション構築を担ったのは、スパイラル開発本部、アプリケーション開発部の丸岡だった。丸岡もまた、初めて毎秒1万アクセスと聞いたときは「想像が付かない値だったため、(そのパフォーマンスは)出ないじゃないかと思いました。」と振 り返る。「大変だけど、やりがいはある。」と、丸岡も試行錯誤の日々が始まった。

開発段階で、ハード面のスペックに頼るのではなく、ソフト面の技術で可能になるように、可能な限り最新の技術を取り入れていく方針が下された。

投票のフローはほぼ決まっていた。投票時に候補者の顔写真の画像を追加したいなど、クライアントの要望を追加するも、ページ遷移や機能はシンプルであり、そのためのアプリケーションは一見複雑ではなさそうに見えた。しかし、「実現したいことやフローはわかるが、(使ったことのない新技術でそのフローを)どう実現させるのかがわからない。挙動がわからない…」という課題に悩まされることとなる。模索しながら構築しては、それを採用するか検証することを繰り返す日々が続いた。

最終的に丸岡が採用した新技術は主に3つある。1つめは、DBソフトウェア「VoltDB(ボルトDB)」。通常のDBはHDにデータを格納する分、どうしても処理スピードが遅い。VoltDBはメモリーの領域に書き込むため、高速処理を可能にした。2つ目は、webサーバ「Jetty(ジェティー)」。Webページとアプリケーションの両方を提供でき、余計な機能を削っても起動できるため軽量化が特長だ。3つ目は、リバースプロキシ「Varnish(バーニッシュ)」。コンテンツをメモリー上にキャッシュするため、高速で返せる。候補者が確定している総選挙はWebページの更新がないということに着目し、アクセスのつど Jettyに参照しに行かずに済むことで、アプリケーションの負荷を減らし、パフォーマンスが向上した。
パフォーマンスをハードウェアのスペックに依存するのではなく、アプリケーションが高速処理し、ハイパフォーマンスをたたき出すしくみが完成した。

「2年後の(行政の)総選挙を、とまではいかなくても、今回構築したシステムから、共通で使えるところを切り出して、汎用版に発展できれば。」と、丸岡は今後の展開という未来を見据える。

~セキュリティーも万全に~

今回の投票システムは、大幅に拡充した特別仕様のシステムとはいえ、パイプドビッツが提供する「スパイラル®」と同等のセキュリティーレベルが求められた。パイプドビッツは、安心して情報を預けられる「情報資産の銀行」をコンセプトにしており、「スパイラル®」は最高ランクのセキュリティーを有し2011年2月末現在、官公庁、金融、サービス、教育機関など、幅広い業種・業態の2,070のお客様にご利用いただいている国内最大規模の情報資産プラットフォームである。

セキュリティー診断は、専門機関であるNRIセキュアテクノロジーズ株式会社に依頼した。その結果、ハードが対象のプラットフォーム診断は最高ランクのAAA。DBなどソフトが対象のアプリケーション診断は、初回はAAであった。NRIセキュアテクノロジーズ株式会社からの指摘事項の改善にすぐさま着手し、完全に対処することで、セキュリティー目標をクリアした。「セキュリティーには常に気を配った。「スパイラル®」のお客様にご迷惑をおかけすることはあってはならないと思っていた。」万全のセキュリティが、パイプドビッツの自信と責任だからだ。

~厳正なる投票結果を守るために~

1.1千万分の1の確率 シリアルナンバー発行

丸岡が苦心したことは、まだある。それは、「推測されないシリアルナンバー」を発行し投票の際に検査することで、総選挙の厳正さを死守することだ。シリアルナンバーをランダム発行することは簡単だが、規則性を推定し、他のシリアルナンバーを特定される危険があった。
悩む丸岡に協力な助っ人が登場する。ちょうど1ヶ月前に入社した桑畑だった。桑畑は、京都大学、京都大学大学院で、数学の、それも暗号化を専攻したスペシャリストだった。桑畑の協力により、アルゴリズムに裏打ちされた厳正なシリアルナンバーが、わずか数日で用意されたのである。シリアルナンバーの出現頻度は1千万分の1。仮に不正ナンバーがその確率にヒットしても、投票されないよう2重の検証プログラムも準備された。

2.不正投票を徹底的に防止

今回の総選挙では、スマートフォンの普及に伴い、モバイルに限らず、PCからの投票も可能とした。PCのIPアドレスからの不正投票の対応策が求められる中で、インフラ制御に加えて、様々な不正投票防止プログラムが組まれた。例えば、DOS攻撃に対しあえてそのアクセスのみブロックする、10分間に30回以上同じ端末から投票があったらブロックするなどの対策が講じられたが、その過程では、打ち間違いなどのヒューマンエラーと不正な攻撃の線引きをどこにするか、唯一解のない中、幾度も話し合いが持たれた。
総選挙投票期間中、幾重の不正投票防止プログラムは、期間中に何度も発動しては、不正投票を完全に防止したのである。