AWS を使用して、世界中のユーザー向けにさらに冗長性と回復力を備えることにより、今後の成長に関してまったく新しい世界が開かれるでしょう。 
Vijay Ramesh 氏 リードデータエンジニア

Change.org は、196 か国に 1 億 3 千万を超えるユーザーを有する世界最大の社会変革プラットフォームです。B コーポレーションの認定を受けた企業 (社会的な利益のためにビジネスの力を使用する新しいタイプの企業) として、あらゆる場所の人々が望む変化を生み出す力を与えることが同社のミッションです。公開プラットフォームとして、誰でもキャンペーンを開始し、すぐに現地で数百人、または世界中で数十万人を動員して、学校でのいじめを止めることからインドの硫酸攻撃をやめさせることに至るまで、さまざまな変化を生み出すことができます。Change.org の本部はサンフランシスコにあり、投資者には Bill Gates 氏、Richard Branson 氏、Arianna Huffington 氏、および LinkedIn、Yahoo、Twitter、eBay の創業者などがいます。

Change.org は過去数年間、国際的に急成長しているため、より定期的にサイトの新機能を展開する方法を探っています。ただし、Change.org で以前に使用していたマネージド型クラウドインフラストラクチャには伸縮性が欠けていました。「特にデータサイエンスチームではより迅速な反復処理を望んでいたのですが、以前の環境に問題があり、新しいリソースをすばやく追加するのは困難でした」と Vijay Ramesh 氏 (Change.org、データサイエンスのリードデータエンジニア) は言い、こう続けています。「機械学習用には、まったく異なるタイプの機械トポロジーを使用した反復処理を実行する俊敏性が必要でした。例えば、多数のコアを装備したマシンを使いつつ、並列処理のより小さなマシンも使いたいと願っていました」

Change.org では、高品質のコードを確保するため、継続的統合 (CI、コードを毎日複数回レポジトリに統合する必要のある開発プラクティス) に大きく依存しています。しかし Change.org では、新機能のリリースが遅れていた自社製 CI システムを使用していました。「各 CI ビルドには終了まで 1 時間は必要で、長くかかりすぎていました」と Ramesh 氏は言い、こう続けています。「これでは新機能をすばやくテストしてデプロイするのが困難でした」さらにこのシステムは、メンテナンスに手間がかかりすぎました。Ramesh 氏は「一部のエンジニアは、CI ワークフローの維持に 1 日数時間を費やしていましたが、これはコアコンピテンシーではありません。時間のすべてを新機能の開発に費やしたいと考えていました」と言います。

Change.org では、ウェブサイトプラットフォームをより簡単にスケールしてトラフィックの急増に対処する必要もありました。「例えば、メディアで取り上げられたときなどに大規模なトラフィックのバーストが生じましたが、複数のサーバーノードをリアルタイムで起動して、そのようなバーストに対処するのは容易ではありませんでした」と Ramesh 氏は言い、こう続けています。「当社側で手動による介入が必要で、新しいリソースを得て本番環境に移行し、トラフィック急増に対応するのに 1 時間以上もかかりました」

Change.org データサイエンスチームは、より俊敏でスケーラブルなウェブプラットフォームを探すことにし、機械学習リソースの一部をアマゾン ウェブ サービス (AWS) に移行することを決定しました。「AWS の柔軟性とスケーラビリティが気に入りました」と Ramesh 氏は言います。データサイエンスチームでは、E メールのターゲティングとバッチのパイプラインワーク向けに Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの本番環境での使用を開始しました。

次に、Change.org では各合計が 16 テラバイトになる 2 つの Amazon Redshift クラスターを設定しました。両方のクラスターには、企業のリレーショナルデータとイベントデータのすべてが含まれています。1 つ目のクラスターは本番環境のビジネスインテリジェンス (BI) クラスターで、MySQL データベースから Redshift に顧客データをストリーミングします。2 番目のクラスターはオフライン分析用で、R&D で実験データとログイベントデータを Amazon Simple Storage Service (Amazon S3) から収集して、Redshift にアップロードするのに使用されます。このクラスターは、AWS Data Pipeline サービスを通して絶えず更新されます。「新機能とサイトの変更に関してかなり実験主導であるため、エンジニアが本番環境への影響を心配することなく、実行したいことに取り組めるようにシステムを設定しました」と Ramesh 氏は言います。さらに、ビジネス分析では、Redshift でイベントストリームデータを分析するためのレポートと、エグゼクティブダッシュボードを作成できます。Change.org の E メールツールの多くでは Redshift へのクエリを実行します。

Change.org では、リソースのいくらかをオンプレミス環境に維持しながらも、オンデマンドの AWS リソースの使用を増やし、完全な本番環境を AWS に移行しているところです。

さらに Change.org では、ホストされた CI ソリューションである Solano CI を選択し、使用しています。Solano CI は完全に AWS で実行され、受信トラフィックのルーティングには Elastic Load Balancing、データストレージには Amazon S3、データベースの実行には Amazon Relational Database Service (Amazon RDS) が使用されています。Solano CI は、開発者のテスト時間短縮のために設計されたスケーラブルなシステムですが、このシステムを使うことで、CI システムのメンテナンスが軽減され、AWS インスタンスの使用が最適化され、TCO が大幅に削減されます。「Solano CI を実装してから、自社製 CI システムを完全にシャットダウンできるようになりました」と Ramesh 氏は言います。  

AWS のオンデマンドの伸縮性を活用することで、Change.org では新機能をさらに短時間で開発できます。「AWS の伸縮性のおかげで、データサイエンスチームでは、迅速に反復処理を実行できています」と Ramesh 氏は言い、こう続けています。「例えば、推奨エンジンを構築する場合、コンピューティングのニーズは使用したアルゴリズムのタイプや含まれるデータ量によって大きく変わります。AWS では、プロジェクト用に実行中の内容に基づき、必要なリソースのみを使用して即座にすべてを行えます。結果として、サーバーを要求することや前もって計画することもありません」

また、Change.org ではテスト環境が自動化された Solano CI を使用して、テスト時間を短縮し、新機能をより迅速に本番環境に展開できています。Solano CI に切り替えてから、Change.org では Solano CI 自動並列化機能を使って、平均ビルド時間を 1 時間から 15 分に短縮しました。Ramesh 氏は「毎日より多くの CI ビルドをデプロイできるということは、最終的に、毎日より多くの変更をサイトに加えることができるということです。Solano CI のおかげで、エンドユーザーにより迅速に価値をもたらすことができています」と言います。さらに Change.org では、Solano CI を使ってより多くのテストを実行できるため、早期にエラーを特定できます。Ramesh 氏はまた、「エラーをよりすばやく検出することにより、高品質のコードを確保し、最終的に機能を向上できます」と語っています。

Change.org では、トラフィック急増に対処するのに必要なスケーラビリティも備えています。「AWS を使うことで、ウェブサイトのトラフィックバーストにより簡単に対応できます」と Ramesh 氏は言い、こう続けています。「トラフィックが増加する場合、新しいバックグラウンドサーバーが自動的にオンラインになります。トラフィックがおさまると、このサーバーは再びオフラインになります。非常に信頼でき迅速です。そしてエンジニアによる手動の介入が不要なため、新しいリソースを起動するのに 1 時間もかかりません。瞬時に実行されます」

さらに、Solano CI 環境はスケールするよう設計されているので、Change.org ではテストのビルド要件の増大に対応できます。Ramesh 氏は「主要な機能のリリースが間近で期限が迫っているときに、非常に多くのビルドの実行が必要な場合があります。Solano CI では、AWS のスケーラビリティが活用され、このようなニーズにスケールして対応します」と言います。

そして、この CI システムは現在クラウドベースのため、Change.org の開発者はメンテナンスタスクに時間を費やす必要がなくなりました。Solano CI では、インテリジェントかつ自動的にテストを最適化するため、Change.org の開発者が CI システムを管理することや仮想マシンを構成すること、CI ノードが正しく機能しているかどうかを確認することは不要です。「開発者は、CI システムのメンテナンスを心配して時間を費やす必要はありません」と Ramesh 氏は言い、こう続けています。「Solano CI の働きすべてを信頼できるので、世界中のエンドユーザーに対して最高の価値をもたらすウェブサイト向けの優れたツールの構築という最も大事な仕事に注力できます」

Change.org では、環境への移行が完了した後に、AWS の使用の大幅な拡大を計画しています。「AWS には世界中で複数のリージョンとアベイラビリティーゾーンがあることに感銘を受けました。以前のソリューションにはなかったことです」と Ramesh 氏は言い、こう続けています。「世界中のトラフィックに反応できるようなウェブサイトアーキテクチャを構築できるのは、大きなメリットです。過去数年間、国際的に大きく成長しましたが、AWS の使用によりさらに成長を加速できるでしょう。世界中のユーザー向けにさらに冗長性と回復力を備えることで、今後の成長に関してまったく新しい世界が開かれるでしょう」

solano-labs-logo

AWS DevOps コンピテンシーでの AWS パートナーネットワーク (APN) のアドバンストテクノロジーパートナー。Solano Labs では、継続的統合 (CI) および継続的デプロイ (CD) 向けの強力でスケーラブルなシステムを提供しており、それらを使用してソフトウェア開発者は、コストを削減しつつ、エンジニアリングの効率と品質を向上できます。

Solano Labs で企業の AWS 環境の構築および管理をサポートする方法の詳細については、AWS パートナーディレクトリSolano Lab のリストを参照してください。
 

AWS でウェブサイトの管理をサポートする方法の詳細については、ウェブサイトとウェブサイトホスティングの詳細ページを参照してください。