実例で学ぶAWS入門:オーディエンスデータプラットフォーム「cosmi」を例に

第1回 AWS超入門

この記事を読むのに必要な時間:およそ 3.5 分

こんにちは。株式会社adingoの小澤です。これから全4回にわたってAmazonWebService(AWS)について,実例を交えながら紹介したいと思います。紹介する内容は,「AWSとは?」という基礎的なところから始まり,なぜAWSを選んだのか? AWSのメリット・デメリット,分散処理やスケーラビリティ確保のための手法など,事業やサービスを作っている方が具体的にイメージできる事例をメインにした内容にしようと思っています。ぜひ最後までお付き合いください。

cosmiとは?

さて,このたびadingoでは新たにcosmiというプロダクトをリリースしました。この連載はAWSをcosmiが採択し,開発を進めていく過程で得られたノウハウなどをベースに話を進めていきます。そのためにまずはじめに少しだけcosmiというプロダクトについて紹介したいと思います。

cosmiとは,adingoが2011年9月にリリースしたオーディエンスデータプラットフォームです。ここではサービスの細かい仕様などは割愛しますが,簡単にいうと,WebページにHTMLタグを張り,そこからデータを取得し,得られたデータをデータマイニング分析し,どのような属性のユーザがサイトに訪れているのかなどを判別した上でフィードバックするというサービスです。イメージしにくい方はGoogle Analyticsのようなものをイメージしていただければよいかと思います。

2つの大きな要件

cosmiの構想が固まり,いよいよシステム要件に落とし込むと,大きく2つの問題にぶつかりました。

  1. どのようにスケーラビリティを持たせながらインフラを構築をすればいいのか?
  2. どのようにすれば,効率的に,安価に,高速に,膨大なデータ分析が可能になるのか?

当然自社ですべてインフラを構築するというプランもありました。しかし事業がどのくらいのスピードで成長するのか,またどのくらいの売上がついてくるのかわからない初期段階で,どの程度のインフラを用意するのが正解なのかわかるはずもありません。その中でクラウドなら,使いたいスペックの機器を,使いたい量だけ,自由に使うことができるというメリットがあります。私たちはクラウドサービスを利用することにしました。

なお,これらの問題について私たちがとった方法については,この連載の第2回,第3回でそれぞれ詳しく紹介したいと思います。

AWSとは?

AWSとはAmazonが提供しているクラウドサービスです。Amazonといえば本屋さんのイメージがありますが,現在Amazonは大きく3つの分野で事業展開をしています。1つは皆さんご存知のEC事業。2つ目はAmazon上にお店を作れるプラットフォームを提供して,店主から手数料をもらうプラットフォーム事業,そして最後の1つがインフラ事業です。AWSとはAmazonの3つのコアビジネスの中の1つなのです。

AWSとは,Amazonが所有する膨大なインフラの一部を間借りできるレンタルサーバの1つだと考えてもよいと思います。AWSでは 「使いたいサービス」「使いたい性能」「使いたい量」 を指定してインフラを借りることができます。この3つを柔軟に指定できるのがAWSの特徴です。

1.使いたいサービスを選べる

AWSではWebサーバやDBサーバだけではなく,CDNやHadoop,ロードバランサやストレージ,監視サービスなどさまざまなサービスを提供しています。自分の目的に合わせて最適なサービスを借りることができます。

2.使いたい性能で借りられる

AWSでは,ほぼすべてのサービスで,高性能なものから安価で一般的なものまでさまざまな性能が提供されています。自分が構築するサービスの規模にあわせてそれらを選択することが可能です。

3.使った分だけ払えばよい

AWSの最も特徴的なことの1つが従量課金制だということです。契約するだけでは課金されません。高スペックのマシンを1時間だけ利用して重たい処理を走らせたり,1週間だけWebサーバを10倍にするなんてことも可能です。たとえばEC2と呼ばれるWebサーバのエクストララージインスタンス(超高機能なスペックのマシン)を1時間借りてかかる料金は約70円です(正確にはこれに加えてデータ転送料がかかります)。

この柔軟性がAWSのクラウドサービスの最もすばらしいポイントでしょう。

そしてもう1つ忘れてはならないAWSのすばらしいポイントが,インスタンスを立ち上げたり,ストップしたり,ストレージの中身を確認したり,アクセス制限をかけたり,あらゆることがAWSの管理画面から行えるということです。

たとえば,cosmiではデータ分析のためにAmazon Elastic MapReduce(EMR)というサービスを利用しました。これはHadoopといわれる大規模データの分析インフラのクラウドサービスです。Hadoopは使ったことがあったのですが,EMRを利用するのははじめてだったので,データの転送や分析フローなどが本当に予想通りに動作するのか確かめるために,まずはテストをする必要がありました。本当に機器を用意したら,サーバを買って,Hadoopをインストールして,それを何台も準備して,分散させて……としなければならないところ,AWSでは管理画面からクリックするだけでそれらの環境が手に入り,検証が完了したら再度管理画面から終了すればそれで終わりです。

ちなみにEMRの料金は一番安価なsmallの場合,1時間で$0.115です。5台を3日借りてテストしても約3,000円です。cosmiではさまざまな検証をAWS上で行うことで,高速にプロトタイプを構築することができました。

AWSの実績は?

さて,クラウドといえばAWSだけではありません。しかしながらAWSの実績は圧倒的です。

これらを見ればわかる通り,今使っているそのサービスがAWSを利用していても何ら不思議ではありません。

図1 AWSを採用している企業例

図1 AWSを採用している企業例

また,AWSはこれまで海外のデータセンターでのみの提供でしたが,今年の3月に東京リージョンが開始され,より日本人にとって使いやすいサービスになっています。この東京リージョンの開始もAWSを利用するにあたった1つの要因です。

著者プロフィール

小澤昇歩(こざわしょうほ)

株式会社adingo取締役。

2008年adingo設立にエンジニアとして参加。以降同社の技術・プロダクト部門を担当。技術者と事業者という2つの顔を持ちながら,サービスや事業の成長に日々奮闘中。好きな本は『小さなチーム,大きな仕事』。

ブログ:SHOHOKOZAWA

Twitter:@s_kozawa


岩川建彦(いわかわたけひこ)

株式会社adingoエンジニア。鹿児島大学大学院卒。工学博士。

「分散アプリケーションのためのプログラミング言語開発」をテーマに2007年IPA未踏ユース・スーパークリエータに認定された。現在はクラウド環境を活かしたcosmiのシステム開発に従事している。

著書に『Python入門』(共著,秀和システム)がある。

コメント

コメントの記入