Edmodo は、教師がクラスルームコミュニティを作成および維持できるようにサポートするソーシャルネットワークです。教師は、生徒個人に簡単なテストや評価を配信することや、生徒のグループとやり取りすることができます。Edmodo は 2008 年に作成されて以来、義務教育機関で幅広く採用されてきました。
当初、Edmodo のデータベースはすべて MySQL データベースを実行する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでした。急速な拡大により、運用チームは新しい機能のサポートや将来の拡張に備えた管理のためのバックエンドサービスよりも、MySQL データベースの毎日のメンテナンスに注力する必要がありました。
Edmodo では、生産性、高可用性、および低コストと組み合わされた使いやすさという 3 つの主な理由により、Amazon Relational Database Service (Amazon RDS) に移行することを決定しました。
チームの生産性の増大: Amazon RDS を使用することで、ソフトウェアのインストールやパッチ適用、モニタリングやデータベースのバックアップといった手間のかかるタスクが自動化されるため、データベースのデプロイや管理が簡素化されます。
2011 年の秋に新学期が始まった際に、Edmodo には毎週 25 万人の新しい生徒が登録されていました。Edmodo では、この急成長の時期に MySQL 5.1 のデプロイが接続の限界に達していることに気付いたため、MySQL 5.5 にアップグレードすることに決定しました。顧客への影響を最小限に抑えるため、このアップグレードは 16 時間未満で完了する必要がありました。Edmodo のシニアウェブオペレーションエンジニアの Jack Murgia 氏は、このアップグレードについて、「驚くべきことに、1 人の運用スタッフ (Jack 氏自身) と 1 人のデータベース管理者のみで、移行時まで本番環境に一切触れることなく、100% の自信を持ってこの移行のプロセスをテストできました。Amazon RDS を使用していなかったら、この移行を 16 時間未満で完了することなどできませんでした」と言います。
高可用性: Amazon RDS のマルチアベイラビリティーゾーン (マルチ AZ) デプロイにより、災害対策のためのデータセンターレプリケーションを利用できるようになります。Edmodo では、本番用データベースをすべてマルチ AZ 配置で使用しています。「マルチ AZ は本当によく機能します。以前に MySQL マルチマスターデプロイを管理したことがありますが、このメンテナンスは大変です。今では、高可用性について考えることさえなくなりました」と Jack 氏は言います。
コストと使いやすさ: オンデマンド料金と簡素化された Amazon RDS マネジメントコンソールにより、経済面と技術面の柔軟性が実現します。Edmodo のデータベース管理者である Diego Jiménez 氏は、「Amazon RDS により、MySQL を実行している通常のインスタンスでのかなり手間のかかる管理タスクが大幅に簡素化されます。マーケティング部門でほぼリアルタイムの本番データに対するクエリを実行する必要がある場合、リードレプリカを使用して、わずか数クリックで本番用データベースのコピーの使用を開始できます。以前だったら、この作業を開始してモニタリングするために数時間かかっていました」と言います。
Edmodo は、完全にアマゾン ウェブ サービス (AWS) で運用されています。以下の図は、Amazon RDS、Amazon Route 53、Amazon S3、Amazon CloudWatch、および Amazon CloudFront を含むアーキテクチャの図を示しています。
現在、Edmodo のデータベースでは、ピーク時に毎秒 500 件を超える接続に対応しており、1 分間に 20 万件を超えるウェブサイトリクエストが実行されています。Edmodo では、Amazon RDS により、現在の利用状況に応じて着実に拡張できる体制を整えています。
Jack Murgia 氏は結論として、「Amazon RDS を使うと時間を節約できます。プロセスの簡素化や時間の制約の軽減が運用チームのパフォーマンスに与えるプラスの影響は計り知れないものがあります。当社では、使用状況のモニタリングやレポート作成を行う高度なツールをデプロイする必要があったものの、数か月先送りされていました。今回、Amazon RDS を使用することにより、このデプロイにかかる時間が不要になり、ビジネスをシームレスに拡張できるようになりました」と言います。
AWS でデータベースのニーズをサポートする方法の詳細については、リレーショナルデータベースサービスの詳細ページ (http://thinkwithwp.com/rds/) を参照してください。