イリノイ州シカゴを本拠地としたObama For America(OFA)キャンペーンが目指すのは、1 つ。オバマ大統領の再選です。この目標を達成するには、数十万人のスタッフやボランティアを調整したり、キャンペーン活動を維持するための支持者から寄付金を集めたり、「有権者の動員を図る」必要がありました。
「組織は大きくなり、リソースに限界が来ることはわかっていました。」オバマの選挙陣営最高技術責任者の Harper Reed 氏は、そう言います。「それが資金であれ人材であれ、私たちが望むものすべてが手に入るとは思わなかったのです。」
時間やリソース、そしてハードウェアに何千万ドルもの投資をするか、あるいはクラウドに運用を任せ、選挙運動を迅速に推進するか、OFA キャンペーン組織にはこの 2 つの選択肢がありました。大統領選までは時間がなく、クラウドの選択は自明の理でした。
OFA キャンペーン組織は、強く、連携性があり、柔軟性のある地上戦を展開できる技術的なソリューションを必要としていました。重複を避けるために中央データストアが必要でした。また、ボランティアや寄贈者、有権者をテクノロジーと連携させなければなりませんでした。このテクノロジーは使いやすく、すぐに開発や展開を行えることが大切です。そして、選挙活動の規模に対応するソリューションが要求されました。
2012 年の選挙運動で、OFA は AWS をシステム設計の基盤として選択しました。選挙陣営は、AWS が提供するオンデマンドの使用料金、弾力性、安全性、拡張性、そして信頼性が必要だったのです。アマゾン ウェブ サービス(AWS)は、200 にも及ぶアプリケーションと、多様なデータセットを 1 つの共有データソースとして活用する API のセットを作成する基盤を OFA に提供しました。
「AWS を使用することで、問題に対して独自のアプローチ方法で取り組めるようになりました。AWS クラウドにより、計画が間に合わないほど急速に変化する環境にも対応できるソリューションを構築できたのです。」オバマ陣営の最高統合改革責任者である Michael Slaby 氏は続けます。「AWS クラウドが、キャンペーンの成功に大きく寄与したのです。」
そのようなソリューションの 1 つが「CallTool」です。このアプリケーションにより、選挙キャンペーンの最終 4 日間で、数千人のボランティアが数百万件の電話を有権者に掛けることができました。OFA は、AWS が提供するサービスをすべて活用しました。資金調達を効率よく行うためのキャンペーンのウェブサイト(www.barackobama.com)の運営や寄付金の分配、データ分析などもそのサービスに含まれます。OFA は AWS を使用して、選挙運動に向けた次のようなソリューションを実現しました。
- ダッシュボード。これは仮想のフィールドオフィスアプリケーションで、ボランティアが陣営の中央本部に赴かなくても、選挙運動に参加できるようになります。またダッシュボードは、評価基準値の設定や戸別訪問の追跡、有権者登録、投票を促す有権者への電話勧誘も管理します。
- Dreamcatcher。これはソーシャルネットワーキングサイト(SNS)上で心情を明かした有権者をピンポイントで説得するアプリケーションです。
- CallTool。これはボランティアが投票依頼の電話を自宅から掛けることができ、同じような人生経験を持つボランティアと有権者とを結びつけるリモートの架電ツールです。
- 詐欺や虐待、違法な選挙活動、その他投票所の問題など、有権者に起こった事件のデータ収集に使用される、有権者の事件追跡ツール。このツールは、選挙運動のボランティアを行う地元の弁護士に通知し、通知を受けた弁護士は問題の起こった現場に派遣され、状況を判断し、情報収集を行います。
OFA チームのアーキテクチャを見るにはここをクリックしてください。
OFA 陣営が取り入れた決定事項は、早い段階で設計に柔軟性を持たせることに焦点を絞りました。キャンペーン組織は、それぞれは別個でも相互に関係するシステム全体で、実用的で非常に冗長性のあるアプローチ方法を採用しました。OFA は高可用性を実現する標準的な手法に加え、積極的にリスク管理の問題に取り組み、各アプリケーションに対する部分的可用性の自動化を受け入れました。例えば、ビラ配達のための地図を作成するアプリケーションは、外部システムを使用して各ボランティアの経路に優先順位をつけます。システムがオフラインの場合は、アプリケーションにエラーが発生したことを表示するのではなく、最適化されていない地図をそのまま表示します。同様に、選挙運動用のアプリケーションの多くは Amazon Simple Storage Service(Amazon S3)上にホストされた静的サイトを利用することができます。
時間が制約され、敏捷性を求められるため、開発者ボランティアが独自のアプリケーションを作成することを望む場合を OFA キャンペーン組織は想定しました。しかしこの考え方では、ボランティア同士が連携し、可能な限りデータを最新で正確に保つことは困難になります。そのため OFA は、新規のアプリケーションが簡単に使用できるように、内部のキャンペーンデータを公開する一連の API を作成しました。これにより、キャンペーンは分散された様々なデータリソースを、一元的に提供できるようになりました。これらの API は数十のアプリケーションをサポートし、そのすべてが連携して動作します。その結果、ユーザー側のアプリケーションはほぼどの言語でも、またどのフレームワーク内にでも作成でき、開発者ボランティアが持つ経験を生かすことができたのです。
システムでは、Ruby on Rails(RoR)、Python/Django、PHP、その他のフロントティアやミッドティアの技術のホストが織り交ぜられ、堅牢で異種混合な設計が実現しています。次に挙げられているのは、10 種類の構造化ストレージシステムで、データに適したツールの提供に焦点があてられています。織り込まれたテクノロジーには、MySQL/PostgreSQL/Microsoft SQL Server 用の Amazon Relational Database Service(Amazon RDS)などのリレーショナルデータベース管理サービス、NoSQL ソフトウェア(MongoDB、Apache Hadoop、Vertica、LevelDB)、Amazon S3、Amazon DynamoDB、Amazon SimpleDB などがあります。
また、「Obama for America」ソリューションに多数組み込まれたサードパーティ製コンポーネントのうち、いくつかの SaaS(Software as a Service)コンポーネントは AWS パートナーネットワークのメンバーが提供したものです。統合されたコンポーネントには、次のようなものがあります。
- パフォーマンスを監視する「New Relic」や「Chartbeat」
- 費用を監視する「Cloudability」
- 重要なリージョン間での転送とレプリケーション操作を最適化する「CloudOpt」
- API 配信ツールの「Mashery」
- 開発者の作業を調整する「GitHub」や「Campfire」
- インフラストラクチャを自動化する「Puppet」や「Netflix Asgard」
- ネットワークアクセスの提供「OpenVPN」
これが AWS 管理アプリケーション各種(Amazon CloudWatch、AWS Identity and Access Management(IAM)、AWS CloudFormation など)と組み合わさって堅牢なツールボックスとなったために、OFA チームはこれほど多様なインフラストラクチャへの迅速な実装と管理を実現できたのです。特に、OFA のデータ分析と追跡作業の土台となった選挙運動のデータプラットフォーム「Narwhal」は、次のコアな AWS ベストプラクティスを生み出しました。
- Elastic Load Balancing (ELB)による Auto Scaling、 Puppet や AWS CloudFormation や Netflix Asgard を経由した伸縮自在性
- Amazon RDS の Multi-AZ
- プロビジョニングの適切な制限対象となった IAM ユーザー
- 通常の SSH と AWS アクセスキーの更新
- Amazon Route53 を使用した高度な DNS 管理
- セキュリティグループを使用した積極的なアクセス管理
- Amazon Virtual Private Cloud(Amazon VPC)と AWS Direct Connect
キャンペーンのスタッフとボランティアの絆をより深めるため、OFA は何度か「選挙日当日」テストイベントを開催しました。そこでは内部チームが二人一組になり、どのような障害が起こるかをテスト環境でシミュレートしました。問題の迅速な特定とその影響の緩和、緩和策の自動化、冗長性のさらなる向上、その他設計に関する改善の実行など、新しい機会に常に向かい合うことで、チームは経験を積みます。これらの経験をモデルにして、効率的で堅牢なシステムが完成し、投票日の 2012 年 11 月 6 日は一日中利用することができました。その結果、費用が安く、常に稼働し、何百万人ものユーザーが利用できるスケーラブルなシステムになったのです。
選挙運動期間中、AWS のソリューションは数億ドルの資金調達を支え、数百万件の電話勧誘の優先付けを行い、数千人のボランティアの調整に役立ちました。システムはテラバイト単位のデータを配信し、有権者を詐欺や有害な選挙活動から保護しました。
AWS が提供する円滑な協力を企業規模で利用し、小規模なボランティアの地上戦チームを中央本部と結びつけ、ボランティアや寄贈者、有権者を使いやすく、開発や展開をすぐに行えるテクノロジーに連動させました。さらにオンデマンドの使用料金が採用され、またインフラストラクチャへの投資が必要ではなくなったことにより数百万ドルを削減できたため、OFA はコストを抑えて、その分を他のリソースに使えるようになりました。
Reed 氏は「AWS を使用することで、非常に強力な選挙運動を展開するのに必要な柔軟性とパワーを手に入れました。」と語ります。「ボランティアの人々を一体化させ、資金の調達活動を促進し、データ分析の収集を実現させるなど、AWS は私たちを成功へと導いてくれたのです。」
AWS がビッグデータプロジェクトにどう役立つかについては、http://aws.amazon.com/big-data/ をご覧ください。
公的機関のお客様が AWS をどのように活用しているかについては、詳細ページ http://aws.amazon.com/government-education/ をご覧ください。