「サニタイザー」を負荷分散/冗長化する場合の考え方

CIO Contribution Sanitizer

はじめに

サニタイザーも次第に全国の自治体に認知され、導入実績も増えてきております。

一方、全国のファイル無害化、メール無害化の導入状況の中には、無害化処理の高負荷に耐えられずに、処理が遅延したりファイルがロストしてしまうという現象も生じているようです。(サニタイザーの話ではありませんよ)

サニタイザーは比較的小規模の自治体の無害化ソリューションとして位置づけているのと、サニタイザーの無害化エンジンの中で負荷を軽減する仕組みを有しているため、まだまだ縁遠いものと思っておりましたが、いよいよ都道府県レベルで導入される場面も増えてきており、きちんと負荷分散、冗長化について検討する必要が出てきました。

このレポートではいくつかの負荷分散、冗長化についての案を示します。

サニタイザーの負荷分散/冗長化構成案

サニタイザーはWebインターフェース+無害化エンジン+ストレージという構成になっており、これらを複数台並列に設置し、ロードバランサーでアクセスを振り分けるだけで、原理的には負荷分散/冗長化することが可能です。

ただし問題になるのは、無害化前後のファイルを共有ストレージに配置する必要があり、その手法により構成が異なります。

もっとも簡単な構成:利用者グループ毎にサニタイザーを設置

サニタイザー自体は(自治体向けには)無償提供ですので、利用者をいくつかのグループに分けて、グループ毎にサニタイザーを設置し、利用させるだけで、低コストで負荷分散することが可能です。(この場合はロードバランサーも不要です)

ベタな対応かと思われるかもしれませんが、ユーザ管理さえ適切に行えば、もっとも簡単な構成と言えます。

低コストで可用性向上する:VirtualBox内でフェールオーバークラスタを構成する

VirtualBoxは、ホストOS上に共有ストレージを配置することができるため、inputおよびoutputフォルダの実体を共有ストレージに置くことで、フェールオーバークラスタを簡単に作ることができます。(とは言いつつも、ストレージのマウントやファイルシステムの設定等の作業が発生するので、技術移転を受けた事業者でないと対応ができません)

ただ、ホストOS自体がシングル構成ですので、その部分の可用性には変化がないこと、また複数台のサニタイザー(ゲストOS)を稼働させるためのリソースがホストOSに必要となることから、他の方法と組み合わせることをお勧めします。

サニタイザーを複数台設置して負荷分散/可用性向上する

サニタイザーを複数台設置し、ストレージ部分をブロックデバイスとして共有することで、負荷分散/可用性向上を実現することができます。

負荷分散の場合には、Active/Active構成、可用性向上の場合にはActive/Standby構成となります。Active/Active構成の場合、実績があるのは2ノードのクラスタのみであり、それ以上のサニタイザーを並列させることはできません。Active/Standby構成の場合は、Standby機はActive機のバックアップを行い、障害が発生した場合には切り替えて稼働ができる仕組みとなります。

サニタイザーを複数台設置し、共有ストレージを設置して負荷分散/可用性向上させる

サニタイザーを複数台設置し、その背後にFC-SANやiSCSI-SANを配置することで、ストレージを共有し、負荷分散/可用性向上を実現することができます。

この場合、ノード数はSANの性能に依存しますが、一般的には2ノード以上の構成をとることができます。

ここまでやれるのならば十分でしょう。

おわりに

サニタイザーはシンプルな構成なので、要望に応じた構成を一緒に提案することもできます。ただこのあたりはエンジニアの領域となりますので、技術移転契約が必須となります。あらかじめご了承下さい。

 


« »