AWS 構成を通してみる Brushup の成長記録

はじめまして!Brushup の開発マネージャーの下田です。
日々、Brushup の諸々の設計とエンジニアを鼓舞しています!
Brushup は 2015 年 3 月 26 日にリリースし、明日でちょうど丸一周年を迎えます。そこで、今回、Brushup のシステム構成をご紹介すると共に、この一年間の成長を見ていただこうと思います。

Brushup ローンチ時の AWS 構成

Brushup のインフラは AWS (Amazon Web Services) を採用しています。AWS の良いところは数えたらきりがないですが、私があえてあげるとすれば「魅力的なサービスを次々と市場投入するスピード感」です。新サービスの発表の場でもある AWS Summit Tokyo には 2013 年から毎年参加しており、いちエンジニアとして楽しんでいます。今年も、もちろん行く気満々です!
さて、その AWS をベースとした インフラ構成ですが、2015 年 3 月にローンチを迎えた時は、日々増加していくアクセス数を分散できる構成として、以下のようなものでした。

利用している AWS のサービスは Amazon EC2、Amazon S3、Amazon Route53、Amazon RDS (MySQL)、Amazon CloudFront、Amazon ElastiCache (Redis) など11 ほどです。DB サーバーは、マスター DB のアクセス数を削減するためにリードレプリカ DB、 セッションデータの読み書き用にAmazon ElastiCache (Redis) を配置しました。リードレプリカ DB へのアクセスには HAProxy を使用することで負荷分散と可用性を高めています。

ローンチから1年、AWS の利用サービス数は 1.5 倍超に

2015 年 3 月にローンチを迎えてから、常に改修を加えており、ローンチから1 年経過した2016 年3 月時点での構成は、以下のようになりました。

AWS の利用サービスは、ローンチ時から Amazon Elastic Transcoder、Amazon Lambda、Amazon API Gateway、AmazonCloudSearch、Amazon Elasticsearch、Amazon Cloudwatchlogs が加わり、17 ほどとなりました。開発スピード、品質、セキュリティのいずれも最大限確保するため、AWS のサービスを積極的に採用しています。
コメントやタグの検索機能には Amazon CloudSearch、多種多様なフォーマットや HD 画質の動画を Web ブラウザ上でプレビュー再生するための動画ファイルのトランスコードには Amazon ElasticTranscoder を採用することで、非常に短期間でのリリースを実現しました。また Amazon CloudSearch や Amazon ElasticTranscoder に障害が発生した場合でも、Amazon Lambda、Amazon API Gateway を利用することで可用性を維持することができます。

安心してください、見ていますよ

ローンチして 1 年が経過すると、日々のアクセス数の増加や度重なる機能改修により、パフォーマンス劣化を引き起こすリスクも増えてきました。そこで、日々膨大に出力されるログ情報を集計し、分析できる仕組みを Amazon CloudWatch Logs、Amazon Elasticsearch Service で構築しました。画面毎の処理速度やエラーの発生状況など、ほぼリアルタイムで Brushup の健康状態を把握できるようになりました。

今後も AWS あっての Brushup!

2015 年の AWS のサービスリリース一覧を見ると、なんと 26 回もサービスがリリースされていました。Brushup はこのような AWS のサービス群を採用することで、1 日でも早くご要望に応えられるよう開発を進めてまいります。2017 年の今頃は、どのような AWS 構成になっているのか、私自身とても楽しみです。今後の Brushup の成長にご期待ください!