マイネットは2006年に設立し、現在は国内外の多くのユーザーに向けたスマートフォンアプリ事業に取り組んでいます。
弊社は様々なWebサービスを基本的に全て内製で開発し、インフラについても極力低コストで開発・運用できるように、ハウジングにて安定運用をして まいりましたが、事業の変遷に伴いサービス・アプリケーション開発に人的資源を集中し、インフラ構築・運用を出来る限りアウトソースする方針を固め、 2011年より複数社のクラウドの選定を行ない始めました。
2012年に入り本格的にソーシャルアプリ事業を展開することになり、ソーシャルゲームの急激なトラフィックの増加に対応するために、AWSの導入を決定いたしました。
重視していた点は3点ありました。
最も重視していたのは、構築・運用に、自由度と制約がどのくらいあるかという、アウトソースにおけるバランスを重視しておりました。
それまでのオンプレミス運用の結果、OSやOSSミドルウェアの知識やノウハウが社内に蓄積していたという点から、それを活かすことのできるIaaS型の クラウドを選定することで自由度が高くなるだろうという結論になり、PaaSではなくIaaS型のクラウドを選定することとなりました。
次に重視していた点は、人員のスケールがどこまでできるのかという点です。今までは仮想node数が150くらいあるサーバを1名のエンジ ニアで管理していたのですが、障害が起きるとそのエンジニアに負荷がかかる状態が続いていました。システムを扱える人が再びインフラの熟練者に限られてし まうとこの点が改善されないのですが、その点についてもAWSを利用する場合であれば、問題ありませんでした。
最後に、スケーラビリティーの確保がインターネットビジネスを行う上で重要でした。
ソーシャルアプリを提供する際には、リリースやイベント直後の膨大なトラフィックに耐えられるかどうかが重要となります。また、仮にトラフィックが減少した際にも容易にスケールダウンや撤退を行えるという点も事業継続を考える上では重要です。
現状のままハウジングで運用すると予想以上のトラフィックがかかった場合、またトラフィックが減少した場合に、すぐにサーバーの増強、廃止を行うことは難しいです。この点を解決することも重視して、クラウドの導入を決定いたしました。
導入にあたり他社のクラウドの場合、必要としているものに対して提供されるサービスが少なく、AWSの提供するクラウドと比較して弊社の要 求水準を満たすものではありませんでした。さらにソーシャルアプリ事業のグローバル展開を考えると、世界各国で既に導入実績が豊富にあり、スムーズにグ ローバル展開ができることが、AWSを採用する最終的な決め手となりました。
2012年3月よりAWSのサービスを利用しております。
「株式会社マイネット様システム構成図」
弊社ではもともとMySQL(RDBS)を使っていたのですが、MySQLはそのままではマスターがスケールしないという問題点がありました。ソー シャルアプリの場合、頻繁に仕様変更や拡張を行うことを前提に作らないといけないため、スケーラビリティーのあるシステムかどうかはソーシャルアプリを提 供する上では必須要件でした。自社でスケールが可能なシステムを開発することも検討しましたが、Amazon DynamoDBを利用することでマスターがスケールするシステムを構築できるだけでなく、システムのメンテナンスコストが不要となる点を評価し、 DynamoDBの導入を決定しました。
当初は、自前でKVSを用いなくてもマスターがスケールするシステムを自前で作成し、8割方完成していましたが、DynamoDBの導入で システムのメンテナンスコストが不要となる点を評価し、急遽その自前のシステムを捨て、DynamoDBの導入を決定しました。DynamoDBの採用を 決定してから、71日後にはサービスをローンチしました。元々データストア部分は入れ替えを想定してアプリケーションを実装していたので、 DynamoDB自体の入れ替えは1ヶ月程度で済み、その後は細かなチューニングを行なっておりました。
ビジネスプラン(旧ゴールドプラン)を利用しております。想定外のトラブルや不具合があった際にも、丁寧に対応していただき感謝しています。例えば、 Amazon Elastic Map Reduceで集計しようとした際に動かないクエリがあった時があるのですが、その際もサポートへ問い合わせをし、解決策を迅速に教えていただけたことで 無事集計をElastic Map Reduceで完了することができました。
コスト削減
厳密な比較はしておりませんが、オンプレミスとAWSの単純なコスト比較をしたところ、オンプレミスの業者はOSの提供までで、後は自前で全て構築しない といけなかったため、DynamoDBが提供してくれるサービスのシステム構築と運用コストを含めるとAWSが結果的に低コストになるだろうと判断しまし た。
また、ソーシャルアプリの売上とインフラコストの比率を検討したところ、事業計画上AWSのコストは十分検討の範囲内でした。
初期投資支出について削減することができました。ただし、バッファ分を見積もっていないので、削減効果はまだこれから見ていくところです。
現時点で1カ月ほどのインフラ運用コストの削減を行うことができました。
セキュリティと可用性
セキュリティは自前でしっかりと構築しなければならないものと考えているので、そういう意味では重要な要素とは考えていませんでした。
俊敏性と拡張性
はい、短縮することができました。
物理機器故障時の復旧時間が、オンプレミス運用時より大幅に改善されました。
大型のイベントの直後に、大量のトラフィックが集中したことがありました。
パフォーマンス
平均レイテンシーは非常に満足のいくレベルを達成できています。
今後はシステムをできるだけシンプルな状態で維持し、拡張という発想はできる限り捨てていきたいです。その上で、サービスに置き換えが可能な部分は置き換え、エンジニア達はアプリケーションの開発に注力したいと考えています。
現在MySQLを使って運用している方には、DynamoDBの検討価値が十分にあると考え ています。もともとKVSとソーシャルアプリの相性は良いの で、DynamoDBが不得意な検索についてはMySQLと組み合わせて作ることで、ソーシャルアプリ業界においても十分に対応していけるのではないかと 感じています。DyamoDBとMySQLのお互いの強みを活かして利用すれば、DBの管理コストも削減できるため、非常に使いやすくスケーラビリティー のあるシステムの構築が可能となります。またコストについても、DynamoDBにおいてはスケールアップした分に対して線形にしか費用が増えないという 点で、非常に楽だと思います。