Upgrade to Pro — share decks privately, control downloads, hide ads and more …

1年で1台->100台まで増やした話

Masakazu Ishibashi
September 24, 2014
17k

 1年で1台->100台まで増やした話

Masakazu Ishibashi

September 24, 2014
Tweet

Transcript

  1. ©Gunosy Inc. ぐの史〜~ 2012/11-‐‑‒2012/12  (1台  -‐‑‒>  10台) l 法⼈人化、AWSへの移設 – 最低限の冗⻑⾧長化、メール送信 2013/01-‐‑‒2013/04(10台

     -‐‑‒>  25台) l iPhone版リリース – 負荷の中⼼心がメール送信からAPIエンドポイントへ 2013/05-‐‑‒2013/08(25台  -‐‑‒>  70台) l ユーザ増加、⼣夕刊リリース – 時間内にバッチ処理理を終わらせるチューニングに奔⾛走 8
  2. ©Gunosy Inc. ぐの史〜~(続き) 2013/09-‐‑‒12    (70台  -‐‑‒>  100台) l ユーザアクション、コメントシステム導⼊入 – ⼀一気に書き込みにあふれたアプリへ

    l GunosyAds – 広告基盤 l データ分析基盤の強化 – Redshift導⼊入へ 2014/01-‐‑‒   l 割と構成は安定 – SNS  MobilePush⽤用テンポラリサーバが多数 9
  3. ©Gunosy Inc. 2012/11-‐‑‒2012/12  (1台  -‐‑‒>  10台) 個⼈人運⽤用時代 l さくらVPSで運⽤用 l ⼀一台ぜんぶ⼊入り l Apache

    l Rails l MySQL l テスト機兼バック アップサーバは存 在した 10 原初Gunosyは⼀一台だった
  4. ©Gunosy Inc. 2012/11-‐‑‒2012/12  (1台  -‐‑‒>  10台) l 程なくアプリのセッシ ョン関連が確認できたの で安⼼心のELB導⼊入 l AvailabilityZone複数

    利利⽤用(但し各ゾーンWe bサーバは2台のギリ ギリ) l バッチ以外は⼀一旦⽚片ゾ ーン落落ちてもどうにかな る構成に 13 AWS移⾏行行時(移⾏行行3⽇日後)
  5. ©Gunosy Inc. 2012/11-‐‑‒2012/12  (1台  -‐‑‒>  10台) まずはAWS移⾏行行とシンプルな障害耐性を実装した l DBの複数ゾーン構成、Webのロードバランサ導⼊入 l 簡単な設定で複数AZに跨り、かつスナップショットが 楽に取れるRDSは初期の運⽤用の不不安を低減した

    当時負荷が⾼高いのはメール送信だった l メールで⾒見見るユーザ  >>>  Webで⾒見見るユーザ – ⼀一番よく呼ばれたパスはメールからのリダイレクタ l メールからのリダイレクタ呼び出しを凌凌げばよく、か つメールは徐々に届くのであまり問題が無かった 14
  6. ©Gunosy Inc. 2013/01-‐‑‒2013/04(10台  -‐‑‒>  25台) l 半静的なページ呼び出 しが増えてきたのを考慮し てRedis導⼊入 l レンダリングしたhtml のキャッシュならびにマ

    イニュース表⽰示時のRD S読み込みを避ける⽤用途 l 割と現状と差のない構成 16 AWS移⾏行行時(移⾏行行3週後)
  7. ©Gunosy Inc. 2013/05-‐‑‒2013/08(25台  -‐‑‒>  70台) l ユーザ増加に伴いパー ソナライズ関連のバッチ ノードが増加 l ELB以下のアプリ層も 順調に増加

    l ⼀一部静的コンテンツ配信 にCloudFrontを採⽤用 l マイニュース⽤用RDSを分 離離 23 ユーザ数増加、⼣夕刊ローンチ
  8. ©Gunosy Inc. 2013/05-‐‑‒2013/08(25台  -‐‑‒>  70台) ユーザ登録ペースが上がって l 初期処理理(SNSアカウントからの興味推定)のデータ 取得部分が明らかにボトルネックに l 並列列処理理可能だが増やしすぎるとRateLimitらしきも ので弾かれる

    l エラー内容から⼈人間の操作で台数を増減する謎のノウ ハウが流流⾏行行 ⼣夕刊がリリースされて l 従来1⽇日1回だった推薦処理理が2回になった l 3~∼4時間ぐらいかけて⾏行行っていた推薦を1時間以内で終 えるようにした(60分ルール) l こちらはプロファイラをつかって重たい部分を⽚片っ端 から外す地道な仕事 24
  9. ©Gunosy Inc. 2013/05-‐‑‒2013/08(25台  -‐‑‒>  70台) 分析タスクの複雑化 l MongoDBのM/R等使ってやっていた集計処理理が徐々 に重たくなってくる l S3からログを落落としてきて解析するケースが増加 l 分析に使う試験ノード

    朝刊⼣夕刊(現マイニュース)⽤用RDSを分離離 l レコード数及び物理理サイズが⼤大きくなってきたため、 メンテナンス等考慮し7⽇日分だけローテーションするこ とにしてアーカイブ⽤用にRDSを分離離 l 当時で7⽇日以前の記事へのアクセスは0.1%未満 l 本体DBを軽くすることでスナップショット等軽くなった 25
  10. ©Gunosy Inc. 2013/09-‐‑‒2013/12(70台  -‐‑‒>  100台) Redshiftの導⼊入 l MongoDBのM/R等使ってやっていた集計処理理が徐々 に重たくなってくる l S3からログを落落としてきて解析するケースが増加 l 分析の⼿手法も多彩になってきたためRedshiftを導⼊入

    GunosyAdsのローンチ l ELB/App/Redis/Fluentd/S3/Redshift/Batch l Gunosy側とほぼ同様の構成 l IOがより激しいためfluent/redisについてはゾーン別 に⽴立立てており互いにセカンダリの構成になった 27