国際空手道連盟極真会館がニュース記事や動画、稽古資料などを完備したソーシャルネットワークの構築を希望した際の課題は、予測しえない運用負荷に対応してシームレスにシステムを拡張し、大量のトラフィックとストレージをサポートするアーキテクチャを考え出すことでした。また、顧客はiPhoneアプリからソーシャルネットワークにアクセスすることを望んでいました。
Ci&Tのソフトウェアアーキテクトであるファビオ・フランコ・ウエチは次のように話しています。「実証実験(POC)の狙いは、様々な負荷試験を通じて、レスポンス時間とスループットという観点から、想定していたアーキテクチャの妥当性を確認することでした。POCを行っている間は、システムアーキテクチャの弱点を予測し、修正することができただけでなく、キャパシティーの自動調整に必要な各種モジュールを特定したり、そのモジュールについてモニターすべきメトリクスを確認したりすることもできました。」先行投資が要らず、レスポンスも速く、安価で信頼性があり、充実したAPIを備え、オンデマンドスケーリングで従量課金制のインフラを作成できるという理由から、アマゾン・ウェブ・サービス(AWS)を選んだとウエチは言っています。
顧客の要件に応えるため、Ci&Tは以下のようなAWSツールを搭載しました。
|
|
Amazon Simple Storage Service (Amazon S3) |
Amazon Machine Image (AMI) ストレージや、画像・CSSファイルなどの静的ウェブコンテンツを保存するため、メディアレポジトリとして使用。プライベートコンテンツはACLの制限で保護。 |
Amazon CloudFront |
Amazon S3データ(メディアレポジトリ)をモバイルユーザーに最も近いノードへ配信するために使用。プライベートデータは署名されたURLからアクセスする。 |
Amazon Elastic Compute Cloud (Amazon EC2) |
すべてのインフラサービスを複数の地域・区域内のインスタンスによって提供。例えば、メモリーキャッシュサーバや、社内バックオフィスのウェブアプリケーションやモバイルAPIサービス用のTomcat アプリケーションサーバや、統合・デプロイサーバなど。 |
Amazon Relational Database Service (Amazon RDS) |
ストレージレイヤを永続的にサポートするため、オープンソースのキャッシュシステムである(Amazon EC2内インスタンスの)キャッシュメモリーと並びにHibernate であるORMフレームワークと組み合わせて使用。 |
Amazon Elastic Load Balancing (Amazon ELB) |
フロントエンドインスタンス間のトラフィックのバランスを取る為に使用(モバイルサービス及びバックオフィスアプリケーションサーバ)。 |
Amazon CloudWatch |
プロダクションリソースの状態が健全かモニターするために使用。 |
Amazon Auto Scaling |
Amazon CloudWatchのメトリクスに設定したスケーリンググループ、ポリシー、アラームを作成することで、Amazon EC2のキャパシティーを拡大・縮小するために使用。 |
「上記表で示した様に」ウエチは言います。「負荷テストのインフラもAmazon EC2のインスタンスに構築しました。AWS内外の様々な地域から発生する様々な負荷をシミュレーションすることができました。テストツールや依存性をすべてプレインストールしたAmazon Linux AMIをベースに、カスタムAMIを作成しました」
アプリケーションのインフラにCi&Tは以下のものを利用しています。
開発及びデプロイインフラとして、継続的な統合とAWS APIを使用した継続的なデプロイ・デリバリーのためにJenkins Amazon EC2インスタンスを設定し、サーバのセットアップ、設定、デプロイを自動化
負荷試験のインフラには以下のものを利用しています。
ウエチは述べています。「完全な負荷試験をする上でAWSは最高です。お蔭様でインフラに多額の投資をすることなく、パフォーマンステストのスケールを調整することができました」
詳細はこちらをご覧ください。 http://www.ciandt.com.br/
.
Added February 10, 2012