Upload
satoshi-takada
View
16.076
Download
8
Embed Size (px)
Citation preview
クックパッドでの運用事例
COOKPAD Inc. / Satoshi Takada
AWS
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 完全移行完了
サーバ構成
Reverse Proxy
App
Slave DB
Apache
MySQL
Nginx + Unicorn
[PR]
•ウェブオペレーション by @hmsk•18章 日本の料理のインフラ•WEB+DB PRESS vol.66 by @mirakui•200ミリ秒を切るインフラ
•git•Puppet•Capistrano
APIを活用してサーバ設定の自動化とバージョン管理
サーバ増設の例
Roleタグでクラスを指定するとPuppet適用対象となる
Capistranoタスクを実行してPuppet Masterのnodeファイルを生成する
Puppetを適用する
•Nagios•Apache•Varnish
その他にもいろいろな設定変更を自動化しています
Puppet Dashboard 使い始めました
•このサーバに最後に適用したのいつだっけ?
•間違えてファイルを上書きしちゃった•適用失敗しちゃったから見てみてよ•適用忘れの監視
こんな時に便利
[おまけ]手元のマシンでも動きます。
•インスタンスを落とすと消える領域•別途料金かからない•LVMでまとめて大容量ディスク•ログ出力に便利
インスタンスストレージ(Ephemeral Storage)使ってます
•RAMディスク(/dev/shm)•スロウクエリが出やすいテーブル•集計処理
ディスクは遅いのでメモリを有効活用
•はじめ冗長化のために分けていたが、パフォーマンスのためにそろえた
•10msくらい違った
Availability Zoneをそろえる
•漏れなく、でも多すぎず•エラー時は目立つように•見やすい場所にディスプレイを設置•VNCでも見れて便利
リアルタイムモニタリング
•同時アクセス数 (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を排除•スロウクエリをキャッシュ•テーブル数を減らす
その他にも泥臭い最適化
そんなわけで無事バレンタインを終えました
別の意味でハッピーバレンタイン
•2011/11•Appサーバを2倍準備していつでもロールバックできるようにした
•力業•何か大きな変更をする時に便利
AWSのおかげでRails3移行も楽できました
まとめ
•AWSに移行後初めてのバレンタインデーを無事終えることができました
•すぐにサーバ増設ができるのでチューニングに集中できました
•大きな変更をする時に使える大きな武器になりました
[PR]最後に
まだ見ぬ問題を楽しく解決したいエンジニアをお待ちしています。
ご静聴ありがとうございました