Moodle を大規模に実行するための最新のクラウド ネイティブ アプローチをご紹介

Google Cloud Japan Team
※この投稿は米国時間 2022 年 9 月 17 日に、Google Cloud blog に投稿されたものの抄訳です。
2020 年以前から、教育市場は急速にデジタル化へと舵を切りつつありました。パンデミックによりオンライン教育が余儀なくされ、教育プロセスのあらゆる部分をデジタル化する必要に迫られたことで、このデジタル化のトレンドはさらに加速されました。教師と生徒間でのやり取りは、実際の教室でのものから、完全にデジタル化されたものに変化したのです。
教育機関は、この変化に迅速に対応しなければなりませんでした。ほとんどの教育機関は、急増したユーザーに対応するために、e ラーニング プラットフォームのコンピューティング能力を拡張したり、または「新しい」デジタル需要に対応するための新しいプラットフォームを迅速に作成したりしました。このような e ラーニング プラットフォームは、学習管理システム(LMS)とも呼ばれ、教育機関ではすでに重要な役割を担っています。パンデミックは、このシステムを、「有益な」ものから、「欠かせない」ものへと変化させました。しかし、教育機関が行った自身の e ラーニング プラットフォームのサポートは、当座の危機をしのぐためのギャップを埋めるのには役立ちましたが、恒久的なソリューションであるとは決して言えませんでした。
教育現場のデジタル化の波は止まりません。Fortune Business Insights によると、LMS 市場は、2022 年の 161 億 9,000 万ドルから 2029 年には 409 億 5,000 万ドルに、年平均成長率 14.2% で成長すると予測されています。こうした継続的な成長を支え、より安定した e ラーニング プラットフォームの基盤を構築するために、プラットフォームのホスト環境を詳しく確認する必要があります。これらの環境を見直し、最適化することで、生徒と教師のエクスペリエンスを向上させる強固な支柱となるインフラストラクチャを提供することができます。
Google Cloud で Moodle をモダナイズ
Moodle は、2002 年に発表された、世界で最も使用されている e ラーニング プラットフォームの一つです。Moodle は世界中の教育機関から厚い信頼を寄せられていますが、パブリック クラウド用に設計されたものではありません。これが、スケーリングを難しくしている要因です。ユーザーが引き続き Moodle を信頼してコネクテッド エクスペリエンスを提供できるよう、Google Cloud のカスタマー エンジニアは、Moodle をホストするためのオープンソースでクラウドネイティブなアプローチを開発しました。これにより、組み込みで信頼性が高く、スケーラビリティの高い Google Cloud サービスと Moodle が統合され、最新で堅牢かつ管理しやすく、費用対効果の高い実装を実現できます。
技術的な観点から、このソリューションは、公式の Moodle インスタンスをカスタムの Docker イメージに組み込んでいます。これは、Google Kubernetes Engine(GKE)のエンタープライズ版に、Moodle の運用と専門的なタスクをサポートするための基盤となるサービスとともにデプロイされます。アーキテクチャの全体像は以下の図 1 をご覧ください。


受信トラフィックは、まず GCP のロードバランサにヒットします。Moodle の Pod が実行される GKE の Ingress コントローラとしての役割も担っています。
ロードバランサは、Cloud CDN と Cloud Armor という 2 つの独立したサービスと接続されます。Cloud CDN は、リクエスト元に近いポップから静的コンテンツを配信してレイテンシを削減します。一方 Cloud Armor は、ウェブ アプリケーション ファイアウォール(WAF)レイヤ 7 で、OWASP トップ 10 リスクに対してリクエストを検証します。
WAF の観点でリクエストが有効であれば、reCAPTCHA Enterprise をヒットさせ、追加のアクセス検証を行います。この手順は省略可能ですが、行っていただくことを強くおすすめします。
Moodle のウェブ アプリケーション Pod は、優れたスケーラビリティを持つ GKE 上で実行されています。Moodle のデータファイル(別名 moodledata)は、Google Cloud の Filestore サービスのプライベート バージョンに配置され、それらの Pod をスケーラブルに動作させることにより、動的にアクセスされるようになっています。また、ストレージはすべての Pod で共有されます。
Google Cloud の Memorystore for Redis を利用して、ユーザーデータをメモリ上で永続的に保持しています。これにより、Moodle はステートレスになり、簡単にスケールアップおよびスケールダウンが可能です。
最後に、Moodle の Pod は、Cloud SQL サービスの一部である MySQL の高スケーラブル バージョンにあるインスタンスのデータベースと通信します。
Google Cloud を使った Moodle のモダナイゼーションのメリット
迅速な市場開拓。このソリューションをデプロイするのに必要なものはすべてスクリプト化され、この GitHub リポジトリで利用できます。つまり、教育機関はリポジトリのドキュメントに記載された手順に沿うだけで、すぐにデプロイできるのです。Google Cloud を使うことで、デプロイの各ステップをカスタマイズし、初期設定で最適なリソースと費用削減を実現できます。
クラウドネイティブ。この Moodle の実装は、100% クラウドネイティブです。このソリューションで利用されるサービスはすべて組み込みの Google Cloud サービスです。つまり仮想マシンの管理は不要で、Google Cloud におけるデフォルトのメリットをすべて得ることができます。
優れたスケーラビリティ。このソリューションにより、Moodle はステートレスになり、ユーザーのインメモリ データにダメージを与えることなく、スケールアップおよびスケールダウンできます。GKE を使えば、Moodle の Pod やクラスタノードを水平方向にスケーリングできるので、ウェブ アプリケーションを常にオン状態にしておくことができます。すべての基盤となるサービスは、GKE の自動スケーラビリティに従って行えます。
オープンソース。このソリューションの実装は、GitHub で公開されています。教育機関はこれを利用して、Google エンジニアと共同作業を行ったり、カスタマイズ作成のための出発点としたりすることができます。
継続的インテグレーション(CI)および継続的デプロイ(CD)にも対応しています。このソリューションは、DevOps の自動化プラクティスとスムーズに連動するように設計されています。そのために、Google Cloud の Artifact Registry と Cloud Build サービスの活用を推奨しています。
複数サイズ環境のオプション。Google は、Moodle のインスタンスを実行するための基盤として、GKE を使用した Moodle エンタープライズ版からプロジェクトを始めました。大規模な環境(ユーザー数が 5,000 以上)に最適です。近日、Moodle はサーバーレス モデルにも対応予定です。これにより、小規模な環境や教育機関も低費用で運用できるようになります。
組み込みセキュリティ。Cloud Armor と reCAPTCHA により提供されるウェブ セキュリティ レイヤ上に、最新の Moodle がプライベート モードでデプロイされます。これはつまり、Moodle インスタンスをサポートする基盤となるサービスすべてが、そのネットワーク境界で囲まれることを意味します。社内リソース(同じバーチャル プライベート ネットワーク)のみがサービスにアクセス可能です。
最新の Moodle を貴教育機関にも
Google にとって重要だったのは、Google Cloud の最新の Moodle を、オープンソースのソリューションとして維持することでした。教育機関には、それぞれの優先事項、目標、コースのニーズ、希望のコミュニケーション方法に基づいた独自のニーズがあります。Google は、すぐに使える迅速なデプロイと、最新の Moodle をさまざまなニーズに完璧にフィットさせるために必要なカスタマイズを同時に叶えたいと考えました。オープンソースにすることで、各機関が独自の環境を構築することができます。リポジトリのコンテンツのクローンを作成し、カスタマイズして、Google Cloud アカウントに直接デプロイするだけです。
さらに、Google Cloud 認定パートナーは、サービスレベル契約、コンプライアンスのための規制測定、セキュリティの追加レイヤなど、教育機関のサポートニーズが確実にカバーされるように支援できます。
GitHub にアクセスして、GCP の最新の Moodle と、e ラーニング プラットフォームへの活用方法について、より詳しくご覧ください。
- Google Cloud プリンシパル アーキテクト Fabricio Lopes Sanchez
- Google Cloud LATAM 公共部門カスタマー エンジニアリング責任者 João Thiago Poço