45
2015/9/1 AWS Startup Tech 夏のLT大会 at dots. スタートアップにjoinして 1年間の変化を振り返る vivit株式会社 小川雅史 (@ma_ogawa)

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

Embed Size (px)

Citation preview

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

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

スタートアップにjoinして

1年間の変化を振り返るvivit株式会社小川雅史 (@ma_ogawa)

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

自己紹介

❖ 小川 雅史 (おがわ まさし)

❖ @ma_ogawa

❖ vivit株式会社

❖ 2014/10にjoin

❖ SE -> ソシャゲ -> EC

❖ フロント < インフラ < サーバーサイド

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

サービス紹介❖ incubate camp 6th入賞

副賞でAWSのクレジット!(重要)

❖ アウトドアメディア hinata

http://hinata.me

❖ アウトドアスポット情報https://spot.hinata.me

❖ 社員5名 + インターン10名ほど

エンジニアは2名

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

今日お話すること

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

スタートアップにjoinして

1年間やってきたことを ありのままに話します

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

前回までのあらすじ (2014/10 ~ 2015/1ころ)

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

前回までのあらすじ

❖ サービスローンチ直後のスタートアップにjoinしたら寝てる場合じゃなかった

❖ 安心して眠るためにインフラ周りを整えた

❖ 詳しくは前回の資料をご覧くださいhttp://www.slideshare.net/maogawa/20150319-aws-startup-tech-meetup-006-46041590

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

当時の夜も眠れない問題❖ デプロイが手動でつらい(zip => scp => unzip => symlink)

❖ 静的ファイルも含め全てのアクセスがWebサーバ経由

❖ セッションがファイル管理でスケールできない

❖ 手動の死活監視

❖ 構成管理が属人化(知っている人はもういない)

❖ 社長がSequel Proで直接本番DBを覗いている

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

当時を支える技術

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

当時やったこと

❖ 静的ファイルの配信 => CloudFrontの導入

❖ セッション管理 => ElastiCacheの導入

❖ 死活監視 => New Relicの導入

❖ 構成管理 => Ansibleの導入

❖ データ集計 => Fluentd + Elasticsearch+ Kibanaの導入

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

最低限のインフラが整った

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

インフラが整う ≠ 寝れる

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

アプリケーションの問題改善 (2015/2ころ)

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

頭を抱える問題❖ 配列地獄

❖ どこで発火するかわからないJSイベント

❖ 大量に発行されるクエリ100を超えるページも…

❖ 上がらないパフォーマンス…

C3.largeでサーバーのレスポンスタイムが250ms前後…

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

地道な改善をしつつ

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

新機能開発

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

寝てる場合じゃない

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

からの

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

サービスリニューアルしよう!

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

フルスクラッチで! (2015/2 ~ 2015/3ころ)

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

採用した主な技術

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

採用のポイント

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

実現したい世界観を いかにシンプルに実装するか

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

Rails採用のポイント❖ CakePHP、Rails、Djangoで重要なページのパフォーマンス比較 CakePHP < Rails <= Django

❖ コードの書きやすさ(主観)

❖ RubyGems❖ 世界中に豊富な知見

❖ 慣れてた

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

Vue.js採用のポイント

❖ 双方向データバインディング使いたい

❖ フルスタックまでは必要ない

❖ Knockout.js vs Vue.jsVue.jsの方がより記述がシンプル

❖ ディレクティブやフィルター、コンポーネントでDRYに

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

インフラ構成

❖ appサーバの中身が変わっただけ

❖ Ansibleの構成ファイルを少し書き換えるNginxやRedisのインストール

❖ RDSもEC2もElastiCacheもt2.smallで十分

レスポンスタイムは80ms前後

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

リニューアルと ほぼ同じタイミングで

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

AWSクレジット無くなる

(2015/3)

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

売り上げ < 運用費

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

可用性 vs 運用費

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

可用性 vs 運用費

❖ サービスの規模に対して過剰なインフラ構成

❖ サービスダウンによる損失 < 運用費

❖ サービスとして可用性の優先度を下げる

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

今これで動いてます

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

可用性 vs 運用費

❖ CloudFront => S3のホスティング

❖ Analytics => Google Analytics & Adminツール

❖ availability zoneはcに寄せる転送量対策

❖ ElastiCacheはEC2にmemcached入れた方が安い

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

可用性 vs 運用費

❖ あるべき姿を決して忘れない

❖ いつでもスケールさせることができる心構え

❖ いつでも可用性の高い構成にできる心構え

❖ AMIやSnapshotは準備万端

❖ 年内にはMulti-AZな構成に戻せそう…

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

その後…

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

2015/4 ~ 2015/8❖ 2015/4 ~ 2015/5リニューアルしたサービスの機能開発&改善

❖ 2015/6アウトドアメディアリリース http://hinata.me

❖ 2015/7アウトドアスポット情報サイトリリースhttps://spot.hinata.me

❖ 2015/72015/3にリニューアルしたサービスクローズ

❖ 2015 / 8移転 & 事務所拡大

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

1年間の紆余曲折を経て

技術的なベースは整った感じ

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

サービスの成長に集中!

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

今後のテーマ

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

Elasticsearch vs CloudSearch

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

ご清聴ありがとうございました