狠狠撸

狠狠撸Share a Scribd company logo
AWS
クックパッドでの
              運用事例
COOKPAD Inc. / Satoshi Takada
About me

? 高田悟史 (@satoship)
? 前職ではJavaプログラマ
? 2008/04 クックパッド株式会社 入社
 ? フィーチャーフォン用サイト開発
 ? インフラエンジニアデビュー
COOKPAD
COOKPAD
- Mission
「毎日の料理を楽しみにすることで
   心からの笑颜をふやす」
インフラグループも同様です
毎日の料理を楽しみにするために



「すべてのサービスを常に快適に
  使える状態を保ち続ける」
「常に快適に」

? 使いたいときに使える
 ? 稼働率を上げる
? 快適に使える
 ? サーバサイド応答速度 200ms
「保ち続ける」



? ボトルネックはすぐにつぶす
? スケーラビリティの確保
COOKPAD
- Access
昼食前と夕食前




0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
バレンタインデー




4   5   6   7   8   9   10   11   12   1   2   3   4
バレンタインデイ前日は
年間でもっともアクセス数が
多い日
5日前 !
2012/02/13(月)

? 今までで最大級のアクセス数
? 僕が見た中で一番安定していた
 ? 話題にもあがらなかった
? 当日もAppを増やしてた
COOKPADでは
AWSをどう
使っているか?
今日のおはなし
AWSへのみちのり

? 2010/05 検証を開始
? 2011/03 本格的に移行準備開始
? 2011/08 メインサービス移行
? 2011/10 完全移行完了
AWS クックパッドの運用事例
サーバ构成
Reverse Proxy   Apache




    App         Nginx + Unicorn




  Slave DB      MySQL
[PR]

? ウェブオペレーション by @hmsk
 ? 18章 日本の料理のインフラ
? WEB+DB PRESS vol.66 by @mirakui
 ? 200ミリ秒を切るインフラ
APIを活用して
サーバ設定の
自動化とバージョン管理
? git
? Puppet
? Capistrano
サーバ増设の例
Roleタグでクラスを指定すると
Puppet適用対象となる
Capistranoタスクを実行して
Puppet Masterのnodeファイルを
生成する
笔耻辫辫别迟を适用する
その他にも
いろいろな設定変更を
自動化しています

? Nagios
? Apache
? Varnish
Puppet Dashboard 使い始めました
こんな時に便利

? このサーバに最後に適用したのいつ
 だっけ?

? 間違えてファイルを上書きしちゃった
? 適用失敗しちゃったから見てみてよ
? 適用忘れの監視
摆おまけ闭手元のマシンでも动きます。
インスタンスストレージ
(Ephemeral Storage)
使ってます

? インスタンスを落とすと消える領域
? 別途料金かからない
? LVMでまとめて大容量ディスク
? ログ出力に便利
ディスクは遅いので
メモリを有効活用

? RAMディスク(/dev/shm)
 ? スロウクエリが出やすいテーブル
 ? 集計処理
Availability Zoneを
そろえる

? はじめ冗長化のために分けていたが、
 パフォーマンスのためにそろえた

? 10msくらい違った
リアルタイムモニタリング

? 漏れなく、でも多すぎず
? エラー時は目立つように
? 見やすい場所にディスプレイを設置
 ? VNCでも見れて便利
AWS クックパッドの運用事例
いつも気にしている数字


? 同時アクセス数 (pv / sec)
? 応答速度 (msec / req)
? HTTP Codeの割合
ほぼ全スレーブDBの
Seconds_Behind_Master
もモニタリング
リアルタイムモニタリング
のメリット
? 俯瞰的な状況が分かりやすい
 ? PCとアプリでだけ重くなった
 ? レプリケーションが全体で遅れた
 ? 特定のDBがつまった
スケーラビリティ
? スレーブDB
 ? /var/lib/mysql以下を
  定期的にEBSでバックアップ

 ? 増やすときはEBSをアタッチするだけ
? キャパシティ計測
 ? rps(request/sec)を
  Muninでグラフ化
何rpsを越えると
応答速度が著しく悪化するか
が分かりやすい
冗長性はまだ
試行錯誤中

? EIP
 ? スムーズに切り替わらない
? murakumo (菅原作)
 ? 検証中
その他にも泥臭い
最適化

? マスタへ発行されるSELECTを排除
? スロウクエリをキャッシュ
? テーブル数を减らす
そんなわけで無事
バレンタインを終えました
別の意味で
ハッピー
バレンタイン
AWSのおかげで
Rails3移行も楽できました
? 2011/11
? Appサーバを2倍準備して
 いつでもロールバックできるようにした

 ? 力業
? 何か大きな変更をする時に便利
まとめ
? AWSに移行後初めてのバレンタインデーを
 無事終えることができました

? すぐにサーバ増設ができるので
 チューニングに集中できました

? 大きな変更をする時に使える
 大きな武器になりました
摆笔搁闭最后に
AWS クックパッドの運用事例
まだ見ぬ問題を
楽しく解決したい
エンジニアを
お待ちしています。
ご静聴ありがとうございました

More Related Content

AWS クックパッドの運用事例