Amazon Web service

Thougtworksは、Amazon AWSクラウド上で顧客を支援

Thoughtworksのお客様でAmazon AWS(Amazon Web Services)、すなわちEC2, S3, EBS, SQS, VPC, CloudFront他の信頼性が高く、スケーラブルでコストイフェクティブなコンピューティングプラットフォームを利用しておられる方々がおられます。これらのお客様においてどのような現実的なビジネス上の利点が得られているのか、そして、Thoughtworks社がそれをどのように支援しているのかを学んでいきたいと思います。


AWSにおいて、Thoughtworks社が顧客を支援している方法として次のような方法があります。

  • 予測不可能な過負荷に対して円滑にインフラを対応させていくこと
  • コストイフェクティブなディザスターリカバリー対策を用意すること
  • セルフサービス、使用時間ベース支払い(pay-only-when-used)の開発およびテストにおいて、システム開発費用を削減し、提供までの時間を高速化すること
  • 自動テストの並列化により、開発期間を短縮すること
  • 巨額のインフラ投資をせずに、性能テストの範囲を拡張すること

顧客事例1:グローバルな広告・宣伝会社

課題

この会社顧客は、入賞者に数十万ドル(数千万円)の価値の賞品を与えるコンテストのキャンペインを開始するところでした。コンテストは6週間かけて行われ、基本的にオンラインで運用され、参加者は登録し、必要なものをアップロードし、そして、進捗状況をフォローするという方法をとります。審査者はウェブサイトでコンテストをフォローし、好みの参加者に投票し、参加者の参入をビデオで見ることが出来ます。このウェブサイトは、コンテストの期間だけ稼働しますが、その間の負荷の急変動に性能を落とすことなく対応しなくてはなりません。例えば、米国の主要なトークショウに取り上げられた直後には、200万のビジターがあるものと期待されます。この顧客の既存のチームが、このようなビジネス上、性能上の課題に対応するには問題があります。コンテストのマーケッティングは既に佳境に入っており、厳しいデッドラインが迫っていました。


対応策

Thoughtworks社は、このウェブサイトの開発を引き受けました。私たちはAWSを用いて、高負荷に頑強に、かつコストイフェクティブに対応する自動調整機構のアーキテクチャを設計しました。このアーキテクチャは、Elastic Load Balancing付きのVarnishがフロントで、RDSがバックエンド記憶機構からなる自動構成調整機能付きのEC2で構成されています。ユーザ生成の媒体を含めてすべての静的なコンテンツは、S3に蓄積されます。短く厳しい提供期限に間に合わせるために、Thoughtworks社は環境のセットアップとAMIの生成を自動化しました。これらの施策により、開発者は最新のソフトウェアバージョンを速やかに採用しテストすることが出来て、変更を開発から採用へと速やかに移行させることを可能と致しました。

顧客事例2:自動車のオークション会社

課題

この顧客のオンラインオークションのビジネスは新しいもので、急激に伸びています。当顧客はソフトウェア開発のためにサーバーの容量の拡大を必要としています。現状では、当顧客はコード開発およびテストのためのサーバーに、一年で約10万ドルの費用を使っています。追加サーバーを入れるためには数週間を要しており、これらを入れると顧客の経費は更に倍額になると考えられています。


対応策

ThoughtWorks社は、コード開発とテスト作業をAWS EC2に移すことによって、サーバーの費用を半分以上削減しました。そして、その一方で開発したコードのライン数は3倍にしました。すなわち、開発者の生産性とリリース品質を向上させると同時に費用を削減したのです。また、顧客は早急に当てなくてはいけないパッチの管理の効率も向上させることができました。これは、追加のEC2環境を15分で構築できるようにしたお陰なのです。従来のプロジェクトでは限られた数のサーバをもとに開発者が切り替えをするのに多大な時間がかかっていたのを、節約することが出来ました。新しいCI(Continuous Integration)環境では、15のEC” m1.xlarge サーバーを使っています。サーバーは夜と週末には運転が停止され、コストがかからないため、昼夜運転をしていた従来の専用サーバーと比べて劇的なコスト削減になっています。さらにこれに加えて、顧客はライブオーディオを流すためにもEC2の利点を生かしており、従来の専用サーバーと比べて90%以上のコスト削減を実現しています。

顧客事例3:米国の代表的な小売業者

課題

この顧客は、データセンターが事故に遭遇した場合に、彼らのオンラインストアの軽便でコスト効率の良いディザスターリカバリーのソリューションを求めていました。このような際に、彼らの買い物客がウェブサイトでの手続きをやり直すことなく、代替手段を用いて買い物が出来るようにする機能が求められていました。従来の方法では、買い物客に後ほどのやり直しをお願いしていましたが、このやり方では、御客を競合他社のところに行かせてしまう危険がありました。ホリデイシーズンが近づいており、非常に厳しいデッドラインが近づいていて、急速な対策が求められていました。


対応策

Amazon AWSは、「物理的なデータセンターアプローチ」では決して実現出来ないようなビジネス上のスケジュールを可能としてくれました。我々は、買い物客が製品カタログを検索して、それがローカルストアで入手可能かどうかを確認するための新しいウェブサイトを構築しました。AWSは、我々が開発、ビジネスアクセプタンステストおよび性能テストのために必要とする環境を準備して、迅速なソフトウェア機能の提供を可能としてくれました。AWSの使用時間ベースの支払い(pay-for-what-you-need)モデルは、ディザスターリカバリーに最適にマッチしていました。殆どの時間はまったく使われない設備を構築するよりも、ディザスターリカバリーが必要とされるときだけに必要な最小限のコストを支払えば良いことになるのです。そして、その時点で必要とされる急激な変動に対して、AWSの負荷バランス制御、自動構成制御機能が支援をしてくれるのです。

顧客事例4:メディア会社

課題

Thoughtorksは、この会社の顧客対応のウェブサイトを、商用CMSと統合した形で開発しました。このウェブサイトは、高品質なディジタルイメージデータを大量に配信するため、現実的な負荷状況下での応答性能を保障するためのテストが必要でした。データは複雑なページ構造を持っており従来のURLベースのテストではとても性能が間にあわず、そうかと言ってより現実的なブラウザーベースのテストでは実際に所有するよりも大量のハードウェアが必要とされました。


対応策

AWSを用いて、ThoughtWorksは、この顧客にとって経済的な方法で最大負荷下での性能テストを実現しました。すなわち、顧客の予算の範囲内で顧客が求める性能が得られることを保障したのです。我々は、複数のEC2インスタンスを用いて、顧客の求める負荷に対応できるようにしたのです。このテストではUbuntu上の顧客のAMIを、Firefox上で動かし、ウェブテストフレームワークとしてSeleniumを用いました。Seleniumのgridは、複数ページをユーザが渡り歩くことを想定して、EC2の1インスタンス当たり20のブラウザーで構成しました。最初のリリースにおいて、我々は、10並列の EC2インスタンスを用いましたので、数千の同時ユーザ数に相当する負荷を生成したことになります。この結果は、後ほどのレビューを介して、Amazon S3サービスでも活用されることになりました。この顧客は今回の方法を、継続するリリースにおいて今後も使い続けて効果を上げることになるでしょう。そして、その時に、顧客は必要な時だけにテストインフラストラクチャの費用を支払えば良いのです。

Consultation

If you have any questions, please go to [Consultation about Solution] for consultation.