スケーラブルmoodle@moodle moot 2017jp

20
スススススス Moodle 1

Upload: takeshi-matsuzaki

Post on 12-Apr-2017

191 views

Category:

Education


3 download

TRANSCRIPT

Page 1: スケーラブルMoodle@Moodle Moot 2017JP

スケーラブル Moodle

1

Page 2: スケーラブルMoodle@Moodle Moot 2017JP

プレゼンター• 株式会社イーラーニング

– 東京都港区芝 5-29-20  クロスオフィス三田 2F– Moodle パートナー

• Moodle 構築、ホスティング、テーマ作成、プラグイン開発 トレーニング、コンサルティング、コンテンツ作成– IT エンジニア向けコンテンツ

• CCNA, iOS プログラミング , LPIC

• 鈴木 重毅 (Atsutoshi Suzuki)– インフラ構築サポート担当– 資格など

• CompTIA CTT+• CompTIA Security+• 応用情報技術者• かつては MCT, MCAD なども

2

Page 3: スケーラブルMoodle@Moodle Moot 2017JP

• サーバー台数の増強

スケールアップとスケールアウトスケールアップ スケールアウト

DB Web

• CPU 、メモリ、ストレージの性能向上2GHz x 116GiBRAID1

x N 台3

2GHz x 116GiBRAID1

4GHz x 464GiBRAID 5

2GHz x 116GiBRAID1

Page 4: スケーラブルMoodle@Moodle Moot 2017JP

Moodle 3つのストレージ• moodle ディレクトリ

– プログラムファイル– プラグイン

• moodledata ディレクトリ– アップロードしたファイル

• コースデータ– 一時データ– セッション情報

• データベース保存も可能• データベース

– ユーザー情報• 学習状況、ログイン情報

– 各種モジュールで利活用4

traditionalserver

genericdatabase

AmazonRDS

AmazonEFS

Page 5: スケーラブルMoodle@Moodle Moot 2017JP

オンプレミスの場合オンプレミス クラウド

会計区分 × 資産 〇経費初期投資 × 高額 〇低額(あるいは無し)運用コスト × 維持管理コストが高額 〇低額、かつ柔軟調達期間 × 日数がかかる 〇即座カスタマイズ

〇ほぼ自由 × 制限あり( IaaS は△)セキュリティ

〇組織内ポリシーに準拠 組織内での管理

△ 組織内ポリシーと SLA の調整が必要 組織外での管理

既存システムとの連携

〇自由度が高い △ インターネット接続が制限になることも  →プライベート / ハイブリッドクラウド

障害対応 × 社内の担当者か、 社外から来てもらう

〇クラウド事業者が対応 インターネット越しに状況確認 / 変更

モバイル △ 別途に考慮 〇考慮済みロックイン 〇なし × プロバイダ変更は困難( IaaS は△)

5

Page 6: スケーラブルMoodle@Moodle Moot 2017JP

オンプレミス構成users

Server

MariaDB

database

ColdStandby

VideoVideo URL

Active

Backupdevice

moodlemoodledata

EOPVideo

6

on-premises

https://FQDN/

SSL EL Video Server

Page 7: スケーラブルMoodle@Moodle Moot 2017JP

スケーラブル・オンプレミス構成

https://FQDN/

backup

SSL

moodle

data

users

Servers2…N (Fix) Memcache

dor Redisor None

GlusterFS

VideoVideo URL

Galera

Load Balancin

g

on-premises

moodle

database

EOPVideo

Backupdevice

EL Video Server

7

Page 8: スケーラブルMoodle@Moodle Moot 2017JP

moodle ディレクトリ• httpd サーバー上に配置

– 負荷分散装置により、アクセスを振り分け– GluterFS (後述)をマウントすることも可能

• 物理サーバーを分ける– 負荷に応じて物理サーバーの新規導入が必要

• 資産扱いのため、導入に時間が必要• 仮想 PC でテスト可能だが、目的は物理障害や負荷分散への対応

• 変更頻度は低い– rsync による同期で十分

• EOPVideo (e-learning On-Premises Video)– オリジナルモジュール– e-learning Video Server との間で認証を行う

8

Page 9: スケーラブルMoodle@Moodle Moot 2017JP

分散ファイルシステム GlusterFS

• NAS ストレージのスケールアウト– 複数のディレクトリ( brick )を一つに見せる

• マスターレス– どのホストがダウンしても関係ない

• 導入が簡単• 3つのボリュームオプションを組み合わせ

– Distributed ファイル単位で分散– Replicated ファイルの複製を作成(ミラーリング)– Striped ファイルをブロック単位に分割して分散

• NFS, CIFS, Native でマウントして使用• パフォーマンス向上はあまりしない• スプリットブレイン対策

– quorum 設定により、過半数のノードを「正」とする9

Page 10: スケーラブルMoodle@Moodle Moot 2017JP

moodledata ディレクトリ• 共有ファイルシステム上に構築

– NFS– GlusterFS– SAN

• キャッシュなしでも実用上は支障なし– 単純な構成にしたほうが問題は起きにくい– 必要なら Memcached か Redis ( Moodle 3.2以降)を使用

10

Page 11: スケーラブルMoodle@Moodle Moot 2017JP

データベース• データベースクラスタ上に moodle DB

– MySQL/MariaDB 準同期レプリケーション• 復旧が大変!

– 2台構成におけるスプリットブレイン問題• 自動復旧は考えないが吉

– 早期復旧のため、双方向レプリケーションを行う– MariaDB Galera

• 3台以上で構成することで、スプリットブレイン問題を解消• データベースプロキシーで接続制御

– 各 httpd サーバー上に配置• MaxScale + MariaDB Replication Manager

• オートインクリメント値がとびとびになる– 動作に支障はない

• https://moodle.org/mod/forum/discuss.php?d=237573

11

Page 12: スケーラブルMoodle@Moodle Moot 2017JP

クラウドの場合オンプレミス クラウド

会計区分 × 資産 〇経費初期投資 × 高額 〇低額(あるいは無し)運用コスト × 維持管理コストが高額 〇低額、かつ柔軟調達期間 × 日数がかかる 〇即座カスタマイズ

〇ほぼ自由 × 制限あり( IaaS は△)セキュリティ

〇組織内ポリシーに準拠 組織内での管理

△ 組織内ポリシーと SLA の調整が必要 組織外での管理

既存システムとの連携

〇自由度が高い △ インターネット接続が制限になることも  →プライベート / ハイブリッドクラウド

障害対応 × 社内の担当者か、 社外から来てもらう

〇クラウド事業者が対応 インターネット越しに状況確認 / 変更

モバイル △ 別途に考慮 〇考慮済みロックイン 〇なし × プロバイダ変更は困難( IaaS は△)

12

Page 13: スケーラブルMoodle@Moodle Moot 2017JP

クラウド構成

https://FQDN/

backup

SSL

users

AMI

Instance

CloudFrontVideoVideo URL

AmazonRDS

Amazon AWS

Amazon S3bucket

database region

SLA 99% を保証

moodlemoodledat

a

ACFVideo

13

Page 14: スケーラブルMoodle@Moodle Moot 2017JP

スケーラブル・クラウド構成

https://FQDN/

backup

SSL

moodledata

users

AMI

OS Instance

2…NAuto Scaling group

AmazonElastiCac

heAmazonEFS

CloudFrontVideoVideo URL

AmazonRDS

AmazonElasticLoad

Balancing

Amazon AWS

Amazon S3bucket

moodleACFVideo

region

14

database

Page 15: スケーラブルMoodle@Moodle Moot 2017JP

moodle ディレクトリ• AMI としてイメージを作成して複製

– オートスケーリングにより、負荷に応じて AMI からインスタンスを起動• 負荷分散は Elastic Load Balancing で設定

– オートスケーリングと連動• ACFVideo (Amazon CloudFront Video)

– オリジナルモジュール– 認証を必要とする

CloudFront高速なコンテンツ配信とストリーミングコンテンツ配信ネットワーク (CDN) サービス

AMI Amazon Machine Image

15

Page 16: スケーラブルMoodle@Moodle Moot 2017JP

moodledata ディレクトリ• Amazon EFS 上に構築

– パフォーマンスが低い• ユーザー登録ページ表示に約 10秒

• ElastiCache とセットで構築– Memcached/Redis互換– NFS や GlusterFS を使用した場合と遜色なし

• ユーザー登録ページ表示に数秒

Amazon ElastiCacheメモリ内分散キャッシュ環境 Amazon EFSシンプルでスケーラブルなファイルストレージシステム高い可用性と耐久性を実現するよう設計16

Page 17: スケーラブルMoodle@Moodle Moot 2017JP

データベース• Amazon RDS (Relational Database Service)

– 高可用性( Multi-AZ )機能• 異なるロケーションにスタンバイサーバーを配置

– データベースではスケールアップが有効• クラウドなのでスケールアップは容易

– オートインクリメントは連番• 余計な心配の必要がない 17

Availability Zone #1

RDS DB instance

RDS DB instance standby (Multi-AZ)Availability Zone

#2

Amazon RDS

Availability Zone可用性の観点で独立したロケーション

Page 18: スケーラブルMoodle@Moodle Moot 2017JP

18

まとめ• スケールアップとスケールアウトを使い分ける• オンプレミス・スケーラブル構成

– moodle 物理サーバー追加によるスケールアウト– moodledata GlusterFS– moodle DB MariaDB Galera + MaxScale– 別途に負荷分散装置を用意

• クラウド・スケーラブル構成( Amazon AWS の場合)– moodle AMI をベースにした Auto Scalable Group– moodledata Amazon EFS + Amazon ElastiCache– moodle DB Amazon RDS (Multi-AZ)– 負荷分散は Elastic Load Blancing を使用

• Scalable Group と連動

Page 19: スケーラブルMoodle@Moodle Moot 2017JP

Any Questions?

19

Page 20: スケーラブルMoodle@Moodle Moot 2017JP

ありがとうございました• 株式会社イーラーニング • [email protected]

20人と人を繋ぐ e ラーニング