NEWS ABOUT SERVICE WORKS TEAM BLOG RECRUIT お問い合わせ JP EN

Open edXをさわってみた

こんにちは、エンジニアの藤野です。

スパイスワークスでは、主に「Branding」と「Education」
2つのカテゴリーのお仕事をさせていただいております。

「Education」カテゴリーでは、
大学さまや企業さまの案件でe-ラーニングの教育系システムを手がけることも多いのですが、
その際にオープンソースのe-ラーニングプラットフォームを活用することがあります。

弊社で過去に実績があるものでいうと、
PHPで動くLMS(Learning Management System)の「moodle」などがあります。

現在、目下新しいプロジェクトで、
英語学習のためのe-ラーニングプラットフォーム構築を手がけさせていただいておりますが、
そちらの案件で「Open edX」というプラットフォームを使用することになりましたので、
今回はこちらについて簡単にご紹介させていただこうかと思います。

edXとは

まず、「edX」とは、
マサチューセッツ工科大学(MIT)とハーバード大学が中心となって創立された
MOOC(Massive Open Online Course)のプラットフォームです。

MOOCとは、インターネット上で誰もが無料で受講できる大規模な開かれた講義のことです。
Khan Academy」なども有名ですね。

こちらが本家「edX」のサイトです。

https://www.edx.org/
edX Free online courses from the world's best universities

さまざまなコースが並んでいますね。

ぼくも試しにユーザ登録してみました。
上部グローバルメニューにある「Courses」の一覧や
検索ボックスにキーワードを入力して好きなコースを探せるようです。

おや!日本からも、東京大学さんが公開しているコースを発見しました!o(^-^)o
しかも歴史好きなぼくには胸熱な内容のようです。。!
さっそくクリックしてみます。
コースの概要ページに遷移しますので、「Enroll Now」ボタンを押しましょう。
Visualizing Postwar Tokyo, Part 1 edX

コースを追加したら最初にこのような画面が出ます。
Enroll In Visualizing Postwar Tokyo, Part 1 Choose Your Track edX

こちらは、記載してある料金を支払えば、正式にこちらのコースを受講したという
証明書を発行できるもののようです。

証明書の必要がない場合には、下の青色の「Audit This Course」ボタンをクリックすれば、
無料でコースを受講することが出来ます。

これで、無事自分のダッシュボードからいつでもコースを受講することが出来るようになりました。

各コースの画面は以下のような感じです。
1.1 Views from the U.S. Air Force Video Lectures and Quizzes UTokyo001x Courseware edX

上部のグローバルナビに

  • Home
  • Course
  • Discussion
  • Progress

といった様々なメニューが並び、多機能であることが窺えます。

主にはこちらの「Course」のページを順番に進めていくことになります。

「Course」の構成は、コース作成者が、

  • Section(左サイドメニューの大カテゴリー)
  • Subsection(左サイドメニューの小カテゴリー)
  • Unit(上部のVideoなどのアイコンが並んだもの)

という階層構造でプログラムを自由に組み立てることができ、
各Unitは、

  • Discussion
  • HTML
  • Problem
  • Video

の4つのComponentを組み合わせて自由に作成することが出来ます。
※詳細は後述します。

基本的には、テキストページを読んだり、動画を見たり、選択問題を解いたりしながら
各Unitを進めていく感じで非常に気軽に学習することが可能となっています。

また、「Discussion」(ディスカッション)や「Progress」(進捗状況)などの機能もあり、
非常に多機能な完成されたプラットフォームだなと感じました!

以上、ざっくりと本家「edX」の概要をご紹介しましたが、
こちらのプラットフォームをオープンソースで公開したものが「Open edX」という訳です。

Open edXをインストールしてみる

それでは、実際にサーバーを立ててOpen edXを動かしてみたいと思います。

今回は手っ取り早くOpen edXを動かすために「AWS」を使用することにしました。
なぜなら、「AWS Marketplace」にOpen edXインストール済みのAMIがあったからです!

Open edX powered by Bitnami (HVM)

まず、AWSのカウントを取得してEC2 Management Consoleにログインしましょう。
「インスタンスの作成」画面で左サイドメニューの「AWS Marketplace」をクリックし、
検索ボックスに「Open edX」と入力して検索すると出てきます。
EC2 Management Console

「選択」ボタンをクリックし、その後の画面でインスタンスタイプなどの設定を適当に選択し、
実際にインスタンスを作成してみましょう。

インスタンスを作成する際、キーペアの作成を求められますので、
適当な名前を付けてキーペアをダウンロードしておきましょう。
EC2 Management Console KeyPair

インスタンスが無事起動したらまずはSSHでログインしてみましょう。

TeraTermなどのSSH接続用クライアントで、
EC2インスタンスの「パブリックDNS」に記載されているホスト名を入力して接続してみます。
※「ec2-***-***-***-***.ap-northeast-1.compute.amazonaws.com」といったホスト名です。
※デフォルトのポート番号は22でOKです。

デフォルトのユーザ名は「ubuntu」となっています。
(TeraTermでいうと)「RSA/DSA鍵を使う」を選択し、
先ほどダウンロードしたキーペア(.pemファイル)を選択して接続します。

いかがでしょうか?無事ログイン出来ましたでしょうか?

また、上記の「パブリックDNS」をブラウザのアドレスバーに入れてアクセスしてみましょう。

私が試した時は(おそらくサーバーのスペックが低かったのか、、)
インスタンス起動後しばらくはInternalServerErrorが出続けてたのですが、
しばらく寝かせて再度アクセスしてしてみたら無事ページが表示されました。(^^;
※インスタンスタイプはスペック高めのものを選んだ方がよさそうです。。

こちらがOpen edXをインストールしたての画面となります。
Your Platform Name Here

上記で取りあえずOpen edXが表示されるようになったのですが、
こちらのBitnamiのAMIではそのままでは動かない箇所がありましたので、
以下補足として記載します。

画面上部にある「REGISTER」リンクからユーザ登録をする訳ですが、
起動したての状態ではActivationメールが飛んできませんでしたので、
SSHにて以下の処理を実施しました。

①:(必要であれば)パッケージリストをアップデート
 apt-get update
②:postfixをインストール
 apt-get install postfix
③:mailutils、heirloom-mailx、bsd-mailxをインストール
 apt-get install mailutils heirloom-mailx bsd-mailx
④:/opt/bitnami/apps/edx/conf/lms.env.json の以下の部分を修正
 "EMAIL_HOST": "localhost",
 "EMAIL_USE_TLS": false
⑤:システム全体を再起動
 /opt/bitnami/ctrlscript.sh restart

これで無事Activationメールが飛んでくるようになりました!o(^-^)o

※ちなみに、このBitnamiのAMIはインストールしただけでは動かない箇所が
他にもいくつかあるようです。。(´・ω・`)

コース登録画面

Open edXはユーザ登録すると、コースを受講できるだけでなく、
デフォルトでコースを作ることも出来ます。

ポート番号「18010」でブラウザにアクセスしてみてください。
先ほどのパブリックDNSでいうと以下のようなかたちになります。
ec2-***-***-***-***.ap-northeast-1.compute.amazonaws.com:18010

「Studio Home」と題された以下のようなページが開きますでしょうか?
Studio Home edX Studio

こちらの画面からコースを登録することが出来ます。

操作は直感的ですので、画面に従って、

  1. Course概要
  2. Section
  3. Subsection

とコースの枠組みを構成していき、各SubsectionにコンテンツとなるUnitを追加していきます。
Course Outline

上で少し触れましたが、Unitの内容は

  • Discussion
  • HTML
  • Problem
  • Video

の4つのコンポーネントを自由に組み合わせてコンテンツを作成することが出来ます。
Unitの編集画面はこんな感じです。
Unit4 Unit SpiceWorks's Test Course 01 edX Studio

最下部にある緑色の各コンポーネントのボタンをクリックして追加し、
非常に操作しやすくコンテンツを登録することが出来ます。

動画はYouTubeなどのURLを貼り付けるだけでOKです!

Open edXの構成

上記で構築したOpen edXの構成は以下の通りです。

  • OS : Ubuntu
  • Webサーバー : Nginx
  • DB : mySQL
  • プログラム言語 : Python
  • 使用されているフレームワーク : Django

あとがき

Open edX自体は非常に多機能で完成度の高いe-ラーニングプラットフォームだなと
感じています。
スパイスワークスではe-ラーニングサービスを手掛けさせていただく機会が多いので、
是非Open edXの知見を習得したいなと考えています。

しかし、新しいプラットフォームですので、情報がすごく少ない(特に日本語の情報が、、)
のがなかなかつらいところではあります。

スパイスワークスでは普段主にPHPを使用しているので、
まったく新しいPython+Djangoという組み合わせに大変苦戦しながらも、
試行錯誤しながら仕様の理解を進めていっております。

ですので、我々もOpen edXについて得た知見はこのようなかたちで
折を見て随時情報発信していければなと思っています!

私は今回のOpen edX案件にはPMとして関わらせていただいておりますが、
無事、サービスがローンチされた際にはまた是非ご紹介させていただければと思います!

藤野 隼吾
ひとつ前の投稿 ひとつ前の投稿
ひとつ前の投稿 ひとつ前の投稿 【エンジニア募集】エンジニアFのとある1日