止まらないWebサイトを構築せよ。名古屋市からの要請にWordPressとDocker Swarm、そしてTiDB Serverlessの組み合わせで対応

記事公開日:2024年1月22日

 

政府や公共団体、地方自治体などが情報発信に用いるWebサイトは一般に、大きなトラフィックが発生するわけではないものの、市民が24時間365日いつでも参照できるように高い可用性が求められることが多くあります。

名古屋市によるWebサイトとして、さまざまな悩みの相談窓口となる「こころの絆創膏」、悩んでいる人に気づき声をかけられる人になるための「ゲートキーバー研修」、食の情報を提供する「なごや食育ひろば」などのWebサイトも、そうした高い可用性が求められていました。

これらのWebサイトの開発と運用を名古屋市から委託されている「社会福祉法人AJU自立の家 わだちコンピュータハウス」(以下、AJU)は、WordPressで構築されているこれらのWebサイトをクラウド化するにあたり、バックエンドデータベースとしてPingCAP社が提供するクラウドサービス「TiDB Serverless」を選択したことを明らかにしています

移行プロジェクトをリードした同法人の水谷真氏は、名古屋市からの条件として、Webサイトが24時間止まらないで動くこと、そして障害が発生した場合には速やかに対応できるようにすることが指定されていたと話します。

同法人はクラウド化によってWordPressの高可用性をどのように実装し、そしてバックエンドデータベースとしてなぜ、WordPressの標準的なデータベースであるMySQLではなくTiDB Serverlessを選択したのでしょうか。

水谷氏と、外部のIT企業に勤めつつ主に週末を使ってAJUを技術支援しているレペ・アルベルト氏に話を聞きました。

 

止まらないWebサイトをクラウド上に構築する


水谷氏によると、名古屋市から運用が委託されるWebサイトは公共性の高さから、前述の通り24時間止まらないで動くこと、障害が発生した場合には速やかに対応できることなどに加えて、以前は名古屋市内のデータセンターにサーバが置かれていることや消火設備の設置、人の出入りの管理などの条件が付いていました。

しかしクラウドが普及したことを背景に総務省もクラウドの利用を推奨するようになったことから、Webサーバの移行先としてクラウドが選択肢に入るようになったとのこと。

また、一般にWordPressのWebサイトの運用で採用されることが多いレンタルサーバは条件に合致しなかったとのことです。

Webサイトのクラウドへの移行に当たって、まずは移行先のクラウド選定としてAWSとGoogle Cloudを中心に比較し、AWSに決定しました。

WordPressそれ自体の可用性を高める手段として、3つのアベイラビリティゾーンに分散させたDockerコンテナ上のWordPressをDocker Swarmによってクラスタ化する仕組みが採用されました。

これにより、万が一いずれかのWordPressが障害などによって停止したとしても、それ以外のWordPressには影響せず、全体としては稼働し続ける仕組みを実現できます。

ただし、このWordPressの高い可用性を実現するには、WordPressと接続するデータベースにも高い可用性が求められます。

 

Amazon Aurora MySQLからTiDB Serverlessへ


当初、データベースにはAWSが提供するMySQL互換のマネージドデータベースである「Amazon Aurora MySQL」が採用される予定でした。Amazon Aurora MySQLはAWS上の代表的なデータベースサービスであり、性能や安定性についても多くの用途で十分なものを提供します。

しかしレペ氏は偶然、AWS上で利用できるMySQL互換のマネージドデータベースであるTiDB Cloudを見つけます。そしてコスト面でTiDB Cloudが魅力的だったことから、レペ氏はTiDB Cloudを本格的に検討するためにテストを開始しました。

その結果、MySQL互換であること、Webサイトが稼働しているのと同じAWS東京リージョンでTiDB Cloudが稼働しているために高速なレスポンスが期待できること、リソース制限の心配がないサーバレス構成を選択可能であること、高い安定性や簡単な管理ユーザーインターフェイスなどの利点があり、しかも価格がリーズナブルであることなどを評価し、TiDB Cloudのサーバレス構成であるTiDB Serverlessの採用を決定したのです。

TiDB Serverlessを決定する前には、性能面でTiDB Cloudのノード数を指定する「TiDB Dedicated」と、ノード数などが付加によって自動的に増減する「TiDB Serverless」の比較も行い、TiDB Serverlessで十分に対応可能であることも検証しています。

 

バージョン違いも乗り越え、数カ月で移行に成功


ただしTiDB Serverlessの採用決定後の問題として、WordPressが対応するMySQLとTiDB Serverlessが互換とするMySQLのバージョンの違いがありました。

具体的には、WordPressが対応するMySQLのバージョンが8.0以上であるのに対し、TiDB CloudはMySQLのバージョン5.7との互換だったため、WordPress側でこのバージョン違いに対応するためのテンプレートなどの変更作業が必要でした。

この作業はレペ氏が中心となって行うことで無事解決。WordPressのバックエンドデータベースとしてTiDB Serverlessを組み合わせることに成功しています。

3つのWebサイトのクラウド移行が始まったのは2023年4月。5月にはTiDB Cloudのテストが行われ、6月にはTiDB ServerlessをバックエンドデータベースとWordPressとの組み合わせ作業を開始。9月に移行作業が無事に完了しました。

 

AJUの活動に賛同するPingCAP社


水谷氏は今回移行を成功させた3つのWebサイトに加えて、AJU自身のWebサイトやメールサーバなどもAWSへ移行していきたい、と語ります。

その上で、「健常者と障害者が手を取り合って続けてきたAJUの活動は来年で40年です。障害者の働く場は手作業を行うところが多く、AJUのような知的な作業を行う場は少ないので、モデルになるような活動をこれからも続けていきたい」(水谷氏)と今後の活動への熱意も語りました。

「社会福祉法人AJU自立の家 わだちコンピュータハウス」のみなさん。後列左からセム氏、アルベルト氏、水谷氏。前列左から佐藤氏、柴山氏、小川氏、飯田氏。(撮影:松浦氏)

TiDB Cloudを提供するPingCAP社はAJUの活動に賛同し、TiDB Serverlessの採用決定後に通常では提供しない技術支援なども無償で提案しました。

AJUは「AJU自立の家は障害当事者運動の中から生まれた障害者の自立をめざす団体です。おそらく、TiDBを利用する他の企業や組織の中では異色の団体かと思います。AJUを形成する組織の一つである『わだちコンピュータハウス』は、重度障害者の働く場で、後天的に障害が発生した者が一からIT技術を身につけて業務に携わるケースもあります。

様々なバックグランドを持つメンバーでプロジェクトを進めて行く必要がある中、TiDB Serverlessはデータベースの専門知識を必要とすることなく安価で簡単に利用でき、また要件を満たすソリューションであることがとても助かりました。また、無償で技術サポートをいただくなどプロジェクトのリリースまで丁寧にサポートいただき大変感謝しております」(水谷氏)と、改めて喜びのコメントを述べました。

 

出典:Publickey – 「止まらないWebサイトを構築せよ。名古屋市からの要請にWordPressとDocker Swarm、そしてTiDB Serverlessの組み合わせで対応」(2024年1月22日)

 

参考情報: