Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

スタートアップにjoinして1年間の変化を振り返る

2,233 views

Published on

2015/9/1 AWS Startup Tech 夏のLT大会 at dots.
LT資料

Published in: Technology
  • Be the first to comment

スタートアップにjoinして1年間の変化を振り返る

  1. 1. 2015/9/1 AWS Startup Tech 夏のLT大会 at dots. スタートアップにjoinして 1年間の変化を振り返る vivit株式会社 小川雅史 (@ma_ogawa)
  2. 2. 自己紹介 ❖ 小川 雅史 (おがわ まさし) ❖ @ma_ogawa ❖ vivit株式会社 ❖ 2014/10にjoin ❖ SE -> ソシャゲ -> EC ❖ フロント < インフラ < サーバーサイド
  3. 3. サービス紹介 ❖ incubate camp 6th入賞
 副賞でAWSのクレジット!(重要) ❖ アウトドアメディア hinata
 http://hinata.me ❖ アウトドアスポット情報
 https://spot.hinata.me ❖ 社員5名 + インターン10名ほど
 エンジニアは2名
  4. 4. 今日お話すること
  5. 5. スタートアップにjoinして 1年間やってきたことを ありのままに話します
  6. 6. 前回までのあらすじ (2014/10 ∼ 2015/1ころ)
  7. 7. 前回までのあらすじ ❖ サービスローンチ直後のスタートアップにjoinしたら
 寝てる場合じゃなかった ❖ 安心して眠るためにインフラ周りを整えた ❖ 詳しくは前回の資料をご覧ください
 http://www.slideshare.net/maogawa/20150319-aws- startup-tech-meetup-006-46041590
  8. 8. 当時の夜も眠れない問題 ❖ デプロイが手動でつらい(zip => scp => unzip => symlink) ❖ 静的ファイルも含め全てのアクセスがWebサーバ経由 ❖ セッションがファイル管理でスケールできない ❖ 手動の死活監視 ❖ 構成管理が属人化(知っている人はもういない) ❖ 社長がSequel Proで直接本番DBを覗いている
  9. 9. 当時を支える技術
  10. 10. 当時やったこと ❖ 静的ファイルの配信 => CloudFrontの導入 ❖ セッション管理 => ElastiCacheの導入 ❖ 死活監視 => New Relicの導入 ❖ 構成管理 => Ansibleの導入 ❖ データ集計 => Fluentd + Elasticsearch+ Kibanaの導入
  11. 11. 最低限のインフラが整った
  12. 12. インフラが整う ≠ 寝れる
  13. 13. アプリケーションの問題改善 (2015/2ころ)
  14. 14. 頭を抱える問題 ❖ 配列地獄 ❖ どこで発火するかわからないJSイベント ❖ 大量に発行されるクエリ
 100を超えるページも… ❖ 上がらないパフォーマンス…
 C3.largeでサーバーのレスポンスタイムが250ms前後…
  15. 15. 地道な改善をしつつ
  16. 16. 新機能開発
  17. 17. 寝てる場合じゃない
  18. 18. からの
  19. 19. サービスリニューアルしよう!
  20. 20. フルスクラッチで! (2015/2 ∼ 2015/3ころ)
  21. 21. 採用した主な技術
  22. 22. 採用のポイント
  23. 23. 実現したい世界観を いかにシンプルに実装するか
  24. 24. Rails採用のポイント ❖ CakePHP、Rails、Djangoで重要なページのパフォーマ ンス比較
 CakePHP < Rails <= Django ❖ コードの書きやすさ(主観) ❖ RubyGems ❖ 世界中に豊富な知見 ❖ 慣れてた
  25. 25. Vue.js採用のポイント ❖ 双方向データバインディング使いたい ❖ フルスタックまでは必要ない ❖ Knockout.js vs Vue.js
 Vue.jsの方がより記述がシンプル ❖ ディレクティブやフィルター、コンポーネントでDRYに
  26. 26. インフラ構成 ❖ appサーバの中身が変わっただけ ❖ Ansibleの構成ファイルを少し書き換える
 NginxやRedisのインストール ❖ RDSもEC2もElastiCacheもt2.smallで十分
 レスポンスタイムは80ms前後
  27. 27. リニューアルと ほぼ同じタイミングで
  28. 28. AWSクレジット無くなる (2015/3)
  29. 29. 売り上げ < 運用費
  30. 30. 可用性 vs 運用費
  31. 31. 可用性 vs 運用費 ❖ サービスの規模に対して過剰なインフラ構成 ❖ サービスダウンによる損失 < 運用費 ❖ サービスとして可用性の優先度を下げる
  32. 32. 今これで動いてます
  33. 33. 可用性 vs 運用費 ❖ CloudFront => S3のホスティング ❖ Analytics => Google Analytics & Adminツール ❖ availability zoneはcに寄せる
 転送量対策 ❖ ElastiCacheはEC2にmemcached入れた方が安い
  34. 34. 可用性 vs 運用費 ❖ あるべき姿を決して忘れない ❖ いつでもスケールさせることができる心構え ❖ いつでも可用性の高い構成にできる心構え ❖ AMIやSnapshotは準備万端 ❖ 年内にはMulti-AZな構成に戻せそう…
  35. 35. その後…
  36. 36. 2015/4 ∼ 2015/8 ❖ 2015/4 ∼ 2015/5
 リニューアルしたサービスの機能開発&改善 ❖ 2015/6
 アウトドアメディアリリース
 http://hinata.me ❖ 2015/7
 アウトドアスポット情報サイトリリース
 https://spot.hinata.me ❖ 2015/7
 2015/3にリニューアルしたサービスクローズ ❖ 2015 / 8
 移転 & 事務所拡大
  37. 37. 1年間の紆余曲折を経て 技術的なベースは整った感じ
  38. 38. サービスの成長に集中!
  39. 39. 今後のテーマ
  40. 40. Elasticsearch vs CloudSearch
  41. 41. ご清聴
 ありがとうございました

×