以下引用
@see http://tech.albert2005.co.jp/459/
もくじ
>サービスの特徴
「Logreco」は、「この商品を見ている人は、この商品も見ています」というキャッチで利用される、Webサイト向けレコメンデーションサービスです。フロントエンドは、ログ収集や推薦商品のインプレッションを行う役割を担うJavaScriptやWeb APIを備え、裏側では「アソシエーション分析」と呼ばれる分析アルゴリズムを用い、大量のログデータの演算を行っています。
演算に利用するアクセスログは、JavaScriptがWebアプリケーションにリクエストすることで収集しています。APIを直接利用する場合もあります。Webアプリケーションは受け取ったリクエストをファイルとして書き出し、Fluentdがログを収集しAmazon S3に蓄積します。MySQLには直接INSERTを行わず、リアルタイムに利用したい行動データがある場合は(直前に見たもので推薦アイテムを変更するなど)、CookieかElastiCacheのRedisにデータを保持して利用します。
AWS活用ポイント
アプリケーションの構成がレガシーであることもあって、AWSもシンプルに利用しています。マルチテナント型のサービスであるためScalabilityとAvailabilityを確保するという点を重視し、Internal ELBを導入して配下にMySQLを並べています。MySQLはRDSではなくEC2上に構築したものを利用しています。JavaScriptはCloudFrontにデプロイします。
ALBERTでは多くのサービスでAmazon Redshiftを利用していますが、Logrecoも同様です。Fluentd + S3 + Redshiftの組み合わせは、大容量データを活用する上でかかせません。
なお、より膨大なアクセス数にも適応できるようAmazon DynamoDBを採用したLogreco高速配信版(仮)を、一部のお客様に向けてご提供させて頂いております。高速配信版(仮)についても当ブログ内でご紹介する予定です。
Logreco x Amazon RDS for Aurora
構成図の通り、LogrecoはRDBにMySQLを採用しています。先日のAWS re:Invent 2014にてAmazon RDS for Auroraが発表されましたが、Amazon RDS for Auroraをアプリケーションの大きな変更なく利用可能になることが社内で期待されています。Logreco x Auroraを活用事例として紹介出来る日を楽しみにしています!