全3232文字
PR

 仮想マシンが機能停止になると、Application Gatewayが検知しその仮想マシンを振り分け先から外す。その仮想マシンが処理中のリクエストは放置されるが、一定時間たつと端末のアプリケーションがリクエストを再送し正常な仮想マシンが処理する。

図 サーバーレベルの対策
図 サーバーレベルの対策
1台の仮想マシンが機能停止しても処理を継続
[画像のクリックで拡大表示]

 この仕組みのため「仮想マシンのアプリケーションを“ステートレス”にした」と植田シニアアーキテクトは話す。

 ステートレスとは「学習計画を立てる」「学習計画から教材を指定し勉強を始める」といった一連のリクエストをばらばらに別のAPサーバーが処理しても正常な結果を返す仕組みだ。各APサーバーは個々のリクエストを処理するたび、後続の処理に必要なデータをデータベースなどに書き込み、メモリーから消す。これにより別のAPサーバーが後続処理のリクエストを受け取っても正常に処理できる。

 ベネッセは仮想マシンの障害が起きても可用性を高められるように、原則としてアプリケーションがステートレスになるよう開発しているという。

今夏にはAZを使った対策も

 2020年夏には小ゼミと中ゼミのサーバーに「可用性ゾーン(AZ)」を使った障害対策を追加する。AZは1つまたは複数のデータセンターから成る。複数のAZをまとめたのがリージョンだ。あるAZ内のデータセンターで電源や冷却設備、ネットワークなどの障害が起きたとき、別のAZのデータセンターに悪影響を及ぼしにくい。

 ベネッセは東日本リージョンの2つまたは3つのAZに仮想マシンを2台ずつ配置する。これによりAzureのSLAにおける仮想マシンの可用性が99.99%になる。AZを用いない場合に比べて0.04ポイント高まる。ダウンタイムは1年間で87.6時間以内だ。

 植田シニアアーキテクトは「利用者がほとんど不便を感じない可用性を実現できる」と意気込む。