この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
JAWS DAYS 2014 参加レポート、4発目。本家Amazon Web ServicesからのゲストMiles Ward氏による「Big What Would OFA do Now?」です。
Big What Would OFA do Now?」 by Miles Ward氏
Miles Ward氏はJAWS DAYS 2013の基調講演でOFA(Obama For America)のお話をして頂きました。
- 「Obama For America」の開発チームが作り上げた大規模な選挙キャンペーンシステムの舞台裏(前編) - Publickey
- 「Obama For America」の開発チームが作り上げた大規模な選挙キャンペーンシステムの舞台裏(後編) - Publickey
そして今回は「OFAから2年経った今なら、同じことをどうやって出来るのか?」というテーマでお話頂きました。昼休み直後のセッションだったのですがMiles Ward氏が「たくさん話したいことがあるんだ!」とのことで10分前倒しでスタート。そしてその意味があった、ボリュームたっぷりのセッションでした。
Obama For Americaの概要
まずはOFA自体の概要から。上述した昨年度の講演に関する記事に詳しく載っていますが、Obama For Ameriaは2012年の米国大統領選挙で、オバマ大統領の再選を目指すためのボランティア組織です(そこでAWSがどのように導入されたのかについては「AWS 導入事例: Obama For America のキャンペーン 2012」に詳しく記述されています)
これは世界で30番目に大きなプロジェクトであり、金額にして5兆円規模のもので、200ものアプリケーションがあり、50人のものアナリストがいて、世界中から訪れる数百万規模のアクセスがある。それはAWSのソリューションアーキテクトとしてはとてもエキサイトなプロジェクトだったそうです。
ただ、Obama For Americaはあくまでボランティア組織のためプロフェッショナルが数多く居る訳ではないし、予算も当然限られている。また法律で決められた絶対に動かせない期日(投票日)がある。だからこそ絶対に成功させなくてはいけないプロジェクトだったとのこと。
それでは、そのシステムを現在のテクノロジーで構築した場合、どう変わるのか?これが今日のセッションの主題です。
現在のテクノロジーに置き換えると...
一番大きな違いはDynamicなWebフロントエンド部分で、AWS SDK for JavaScriptがリリースされたことにより、Dynamicな処理をクライアントサイドで実行させることが出来ることが大きく違うだろうと仰っていました。JavaScript SDKを使うことで長大な処理をたった24行のソースコードに納める事が出来るようになったとのこと。
またStaticな部分についても様々なツールが出来たことにより選択肢が数多くなったし、CloudFrontを使うことで高いレスポンスを実現出来るようになったとのことです。
他にも、この2年間で行われた様々なAWSの機能拡張によって色々な部分に恩恵があったとのこと。例えば以前はZone ApexなURLへのアクセスをwww付きのURLヘリダイレクトするために12台ものEC2を用意してたとのことですが、現在はRoute53がZone Apexに対応した為不要になったそうです。
また、とても巨大なデータウェアハウスを自前で構築していたそうですが、Redshiftが登場したことで、月$123kのコストを年$66kまで落とし込むことが出来たとのこと。
以前はアプリケーションによって様々なDBを使い分けていたそうですが、現在のように性能や機能が飛躍的に向上した今では無駄なので、必要の無いものはどんどん削り、集約を行っていたとのこと。以前と比べDBの種類は半分以下になったそうです。
リージョン間のバックアップには以前はTsunami UDP Protocolを使ってデータ転送を行っていたそうですが、現在はEBSスナップショットのリージョン間コピーが出来るようになった為、不要となったそうです。他にもkinesisなどの新しいサービスが増えたり、SQSの性能が上がったり...
結果として...
2年前の構成を今の構成に置き換えると、なんと59%ものコストダウンが出来たとのこと。これはreal nice! :)
最後に
是非皆さん、新しい様々な機能を試して下さい!というお言葉で締めでした。
まとめ
昨年の講演内容は記事として見ていたので、そこから現在のテクノロジーを使うとどう変わるのか?というお話はとても面白かったです。JavaScript SDKは僕も触ってみたいので今度試してみます!
Miles Wardさん、ありがとうございました!