以前の記事では、ネット系スタートアップのインフラ担当として必要と思われる事を3つ挙げました。ここでは、私が具体的にやってきたことをいくつか説明します。

具体的な名前はとりあえず伏せときますが、直近では2つの会社に関わりました。

ユーザー投稿型のサービス(1)

1つめは、ユーザーがコンテンツを投稿するタイプのサービス、所謂CGMです。2011年前半にサービスを開始して、2013年現在、会員数10万人強、累積投稿数が50万超という規模です。

こちらでは、サービス開始直前に関わり始め、途中1年強はフルタイムでコミットし、現在もパートタイムで関わっています。インフラだけでなく開発もやったのですが、インフラ面でどのような仕事を行ったか簡単に書いてみます。

AWSへの移行

開発当初はレンタルサーバーが「本番」環境だったのですが、その後のシステム拡張を見越してAWS移行を決定しました。AWS以外にも選択肢はいくつかあったのですが、別のものを選択するほどそれらのプラットフォームに関する経験があったわけでもないので、「一番実績がある」というふわっとした理由でAWS移行が決定しました。

サービス開始前の移行だったため、EC2で新たにサーバーを2台(WebとDB)構築し、データの移行を行っただけなので、それほど手間はかかりませんでした。

検索システムの構築

Solrを使った検索システムを構築しました。

MySQLにあるデータのうち、検索に使われるテーブルのデータをSolrにインポートし、プログラム側でもデータ更新時にMySQLのテーブルとSolrのインデックスを両方更新するようにしました。データのインポートは、Solr側の細かい癖みたいなのに結構時間を取られた記憶があります。

監視システムの構築

Nagiosを使って、パフォーマンスやログの監視を行いました。Amazon CloudWatchと併用しています。CloudWatchのカスタムメトリクスを投げるという選択肢もあったのですが、素でNagiosを使っています。

サーバーの増減の時の設定変更を自動化すべきだったのですが、その辺が未着手で若干心残りです。

今後、監視システムを構築する際には違った技術を使う可能性もありますが、監視システムとして何が必要か、という部分は、以前に業務系システムの運用保守チームにいた時に結構学んだので、その辺は今後も変わらず活かしていけるかなと思っています。

MySQLのチューニング

特にクエリーのチューニング、テーブル設計の見直しですが、これはこの本で結構勉強しました。

登録ユーザー数10万強と言うと大した数ではなさそうですが、そうは言っても色んな場面で結構負荷がかかってくるので、色々勉強になりました。サービスの規模が徐々に大きくなっていったというのも徐々にスキルアップ出来たという点では良かったです。突然爆発的にサービスが成長してたら、多分自分ではどうにもならなかったと思います。

ユーザー投稿型のサービス(2)

2つめも、考えてみればCGMです。サービスの規模は前述のサービスよりまだ小規模ですが、割とキャッチーなサービスなので、結構テレビに取り上げられたりします。

こちらはAWSのVPCを使っています。

TV砲への対応

やったことは、負荷テスト環境を作って、実シナリオに近い形で負荷をかけていき、ボトルネックの調査、最適なサーバー台数などを算出しました。

とは言え、理論と現実は違うもの。数回TVに取り上げられたのですが、そのうちの1回はかなりサイトが重くなってしまいました。落ちなかったのでギリギリ及第点と言えなくも無いですが、その時に出た課題は次回の対策に反映したいと思っています。

検索システムの構築

こちらでもSolrを使って検索システムを構築しました。前述のサービスでの検索システム構築作業を通じ、単に構築するだけなら大した作業じゃないものの、運用に入った後も検索の精度を見ながら細かくチューニングする必要がある、と言うことを学びました。それを活かし、今回も細かい部分のチューニングをいくつか実施しています。

RDSへの移行

こちらのサービスはもともとEC2上にMySQLを立てていたのですが、それをRDSに移行することになりました。実作業は別のエンジニアが主に行いましたが、設計はメインで担当しました。

Elastic MapReduceとHiveを使ったログ解析システム

これは現在も作業中です。まだ分散処理をさせるほどログの量は多くありませんが、今後を見据えて、現段階では少しオーバースペックとも言えるシステムを構築しています。

まとめ

AWSにはAWS固有のハマりポイントや癖などがあり、「AWS上の構築・運用」というのが1つの専門分野というかスキルセットになってきてる気がします。成り行き上、私自身AWS関連の仕事をやることが比較的多く、そうしたスキルも大分身についてきた気がします。そうしたスキルを必要とされる方がいらっしゃいましたら、お気軽にご相談下さい。