期間限定の巨大プロジェクト・米国大統領選の裏側をAWSの中の人に聞いたAWS情報アップデート 短期決戦プロジェクトの立ち上げ方(1/2 ページ)

200アプリ、サーバ台数数千、数約TBのデータ処理をこなしながら、数十万同時接続ユーザーに耐えるシステムを期間限定で構築するには?

» 2013年04月01日 17時12分 公開
[原田美穂,@IT]

 2013年3月、Amazon Web ServicesのマネジャーでソリューションアーキテクトであるMiles Ward(マイルス・ワード)氏が日本国内のユーザーグループのイベントに併せて来日した。

 ワード氏は、2012年の米国大統領選で、オバマ陣営の選挙活動を支えるITインフラを構築するプロジェクト「Obama for America(OFA)」に参加した人物だ。ワード氏から直接、日本のメディア向けにOFAプロジェクトでの成果を説明した会見の内容を紹介する。

 補足すると、米国選挙法では私企業に所属する人間が直接参加することは禁じられている。このため、ワード氏は「あくまでも個人として」プロジェクトに協力した形になっている。

 米国大統領選は、予算規模、選挙期間の長さを含め、巨大なプロジェクトである。ワード氏の資料によれば「世界で約30番目に大きなEコマースの運用」「約200のアプリケーション、多くがモバイル」「数千サーバによる数百TBのデータ処理」「数十万同時接続ユーザー」など、システム要件は非常にハードなものであったことが想像できる。

Miles Ward(マイルス・ワード)氏

 とはいえ「選挙資金は募金を基にしている。当然、選挙開始時期には予算もわずか。最小限の構成を用意し、かつ、選挙当日には膨大な数の参加者に対応できるようにスケールさせる必要があった」(ワード氏)という。このための選択肢として、当初からAWS上で全てのシステムを動かす前提で設計を進めたという。

OFAプロジェクト全体のシステム構成図 図は非常に長大なので、ここでは全体像を表示している。詳細はリンクで確認できる 右3分の2が東海岸データセンター、左3分の1が西海岸のデータセンターで冗長化している部分だ

多言語での開発を許容、ただし連携だけはしっかりと

 システムそのものも多岐にわたり、かつ選挙戦のスケジュールに併せて迅速に立ち上げる必要があった。また、全てがボランティアスタッフであり、技術的なバックグラウンドも異なっていたことから、アプリケーション構築については、複数の開発言語を許容しながら、疎結合する形を採用したという。

 外部システム向けに連携するデータ形式だけを規定し、アプリケーションそのものの内部の挙動などは各開発言語環境に準じていればよいため立ち上げやすくなる。

 一方で多様な言語環境で構築されたアプリケーションでは保守容易性が下がってしまうのではないかという一般的な疑問がある。セキュリティ上の問題1つをとっても、各言語環境ごとに対応すべき課題や対策がまちまちであったりと、管理の煩雑性が気がかりなところだ。

 これについては「いずれも疎結合をシステム連携のポリシーとしていたため、他のシステムに影響を与えることなく、部分ごとのメンテナンスだけで済んだ。メンテナンス中にユーザーアプリケーションにエラー表示が出るなどの不具合もなく、障害が発生していたとしてもそれは利用者からは完全に隠蔽できた。また、言語環境を統一しなかったことで、例えば直近ではJavaの脆弱性が話題となったが、こうした言語環境そのものに起因するセキュリティ対策そのものも最小限の対象部分のみで済む利点があった」という。

プロジェクトで使われた開発言語を含む環境・サービスの一覧
プロジェクトで使われたデータストアの種類
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。