カーンアカデミー、Google App Engine によりスケーラブルでシンプルなウェブサイトを実現

カーンアカデミーは、カリフォルニア州マウンテンビューに拠点を置く NPO で、数学と科学の無料の教育動画を多数作成し、オンラインで公開しています。その内容は代数や三角法から生物学、経済学にまで及びます。世界中の数百万人もの学生、教育者、学習者が、カーンアカデミーの YouTube™ チャンネルや有名なカーンアカデミーのウェブサイト (www.khanacademy.org) で動画を視聴しています。ウェブサイトでは、授業期間中に 1 日あたり 150 万の練習問題が学生たちに解かれています。カーンアカデミーの開発チームはユーザーが選択する学習方法をもとに継続的にサイトを改善しています。

課題

カーンアカデミーの始まりは、2004 年にサル・カーンがいとこから、インターネットを使って娘の数学の家庭教師をしてもらえないか、と頼まれたときにさかのぼります。カーンは喜んで引き受けました。MIT の学位を 3 つとハーバードの MBA を持っていたカーンは家庭教師として申し分ありませんでした。親戚や友人たちから家庭教師の依頼が増えるにつれ、カーンは短いレッスンを録画し、YouTube に投稿し始めました。カーンは難しい概念を分かりやすく解説することが得意だったため、彼の動画はネット上で大人気になりました。

数年間、カーンは増え続ける動画を抱えたウェブサイトを自分で管理していましたが、トラフィックの増加によりプラットフォームの限界にぶつかりました。時を同じくして、メディアからの注目度が上がり、Microsoft の創業者ビル・ゲイツやシリコンバレーのベンチャー キャピタリスト、ジョン・ドーアといったテクノロジー業界のリーダーがカーンの行動を支持し、カーンのしていることやその目的を広めるようになりました。そこでカーンはヘッジ ファンドのアナリストの職を辞め、成長が見込まれるカーンアカデミーにフルタイムで従事することにしました。

“ Google App Engine を使えば、システム管理者やアプリのデプロイ要員は要りません。だから 99% の時間をアプリケーションに費やせています”

ベン・ケーメンス(カーンアカデミー、リード デベロッパー)

“サルは、技術や保守に関する問題は誰かに任せて、自分は重要な仕事、つまりカーンアカデミーの動画作りにもっと携わるべきだと知ってしました」とカーンアカデミーのリード デベロッパー、ベン・ケーメンスは語ります。「成長するには、デプロイやサーバー管理に関する悩みから開放されることが大切でした”

ソリューション

カーンアカデミーが Google App Engine をホスティングおよびアプリケーション開発のプラットフォームとして採用した理由は、今後も増え続ける 2,000 本以上の動画を簡単にホスティングでき、サーバーや保守に関するあらゆる問題を 1 つのソリューションで解決できるからです。

Google App Engine により、開発チームはカーンアカデミーの強みである、ユーザー エクスペリエンスと豊富なコンテンツに集中できるようになりました。

“カーンアカデミーの重要な要素は、生徒の行動に関するデータを集めて、教え方を改善することです。ヒントを使ったか、前に同じ動画を見たか、といったデータが Google App Engine に格納されているので、どの動画が最も効果的なのか、どの部分で生徒が一番つまずいているのかを知ることができます” (ベン・ケーメンス)

カーンアカデミーには生徒ごとのプロフィールがあり、自分の学習状況を把握できるようになっています。これは、常にサーバーをバックグラウンドで動かしておいて、関連データの収集と監視を行う必要があるということです。カーンアカデミーの場合、Google App Engine がサーバーの面倒を見てくれるため、5 人の開発者は、自分たちの時間のほとんどをサイトの機能向上に費やすことができています。

“Google App Engine がなかったら、ずっと多くの時間をサーバーやルーターの設定作業に取られていたでしょう。私たちが実際の成果物に集中できるのは Google App Engine のおかげです” (ベン・ケーメンス)

応答時間、アップタイム、エラーレートなどの情報が表示される Google App Engine ダッシュボードにより、開発チームはサイト パフォーマンスを簡単に監視できます。“平均応答時間が分かるので、常に応答時間を短く保つことができます” とケーメンスは言います。

成果

アメリカの学校の授業期間中、カーンアカデミーは月間 380 万回以上アクセスされ、その全てを Google App Engine が処理しています。これほどのトラフィック量を扱うには、通常の会社では社内のシステム管理者が必要です。

“Google App Engine を使えば、システム管理者やアプリのデプロイ要員は要りません。だから 99% の時間をアプリケーションに費やせています” とケーメンスは語ります。“私たちのアプリケーションにとって Google App Engine は欠かせないもので、スケーラビリティやトラフィックの問題は全て Google App Engine に任せています。サルがメディアに取り上げられて一時的にトラフィックが急上昇しても、Google App Engine が対応してくれるので心配ありません”

必要なときに Google App Engine のサポート チームに問い合わせができるということもケーメンスは気に入っています。彼はまた Google App Engine のブログからも有益なヒントを得ています。

今やカーンアカデミーのスタッフは Google App Engine に全幅の信頼を寄せています。“ Google App Engine の機能はどんどん使うようにしていますし、パフォーマンスにも満足しています” とケーメンスは語ります。“ 開発プロセスがシンプルなのはいいことです。サイトのデプロイ回数は平均 1 日 1 回、多いときには (1 日に) 9 ~ 10 回にもなるからです”