Submit Search
AWS クックパッドの運用事例
•
70 likes
•
12,231 views
S
Satoshi Takada
Follow
1 of 52
Download now
Downloaded 150 times
More Related Content
AWS クックパッドの運用事例
1.
AWS クックパッドでの
運用事例 COOKPAD Inc. / Satoshi Takada
2.
About me • 高田悟史
(@satoship) • 前職ではJavaプログラマ • 2008/04 クックパッド株式会社 入社 • フィーチャーフォン用サイト開発 • インフラエンジニアデビュー
3.
COOKPAD
4.
COOKPAD - Mission
5.
「毎日の料理を楽しみにすることで
心からの笑顔をふやす」
6.
インフラグループも同様です
7.
毎日の料理を楽しみにするために 「すべてのサービスを常に快適に 使える状態を保ち続ける」
8.
「常に快適に」 • 使いたいときに使える •
稼働率を上げる • 快適に使える • サーバサイド応答速度 200ms
9.
「保ち続ける」 • ボトルネックはすぐにつぶす • スケーラビリティの確保
10.
COOKPAD - Access
11.
昼食前と夕食前 0 1 2
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
12.
バレンタインデー 4
5 6 7 8 9 10 11 12 1 2 3 4
13.
バレンタインデイ前日は 年間でもっともアクセス数が 多い日
14.
5日前 !
15.
2012/02/13(月) • 今までで最大級のアクセス数 • 僕が見た中で一番安定していた
• 話題にもあがらなかった • 当日もAppを増やしてた
16.
COOKPADでは AWSをどう 使っているか?
17.
今日のおはなし
18.
AWSへのみちのり • 2010/05 検証を開始 •
2011/03 本格的に移行準備開始 • 2011/08 メインサービス移行 • 2011/10 完全移行完了
20.
サーバ構成
21.
Reverse Proxy
Apache App Nginx + Unicorn Slave DB MySQL
22.
[PR] • ウェブオペレーション by
@hmsk • 18章 日本の料理のインフラ • WEB+DB PRESS vol.66 by @mirakui • 200ミリ秒を切るインフラ
23.
APIを活用して サーバ設定の 自動化とバージョン管理 • git • Puppet •
Capistrano
24.
サーバ増設の例
25.
Roleタグでクラスを指定すると Puppet適用対象となる
26.
Capistranoタスクを実行して Puppet Masterのnodeファイルを 生成する
27.
Puppetを適用する
28.
その他にも いろいろな設定変更を 自動化しています • Nagios • Apache •
Varnish
29.
Puppet Dashboard 使い始めました
30.
こんな時に便利 • このサーバに最後に適用したのいつ だっけ? •
間違えてファイルを上書きしちゃった • 適用失敗しちゃったから見てみてよ • 適用忘れの監視
31.
[おまけ]手元のマシンでも動きます。
32.
インスタンスストレージ (Ephemeral Storage) 使ってます • インスタンスを落とすと消える領域 •
別途料金かからない • LVMでまとめて大容量ディスク • ログ出力に便利
33.
ディスクは遅いので メモリを有効活用 • RAMディスク(/dev/shm) •
スロウクエリが出やすいテーブル • 集計処理
34.
Availability Zoneを そろえる • はじめ冗長化のために分けていたが、
パフォーマンスのためにそろえた • 10msくらい違った
35.
リアルタイムモニタリング • 漏れなく、でも多すぎず • エラー時は目立つように •
見やすい場所にディスプレイを設置 • VNCでも見れて便利
37.
いつも気にしている数字 • 同時アクセス数 (pv
/ sec) • 応答速度 (msec / req) • HTTP Codeの割合
38.
ほぼ全スレーブDBの Seconds_Behind_Master もモニタリング
39.
リアルタイムモニタリング のメリット • 俯瞰的な状況が分かりやすい •
PCとアプリでだけ重くなった • レプリケーションが全体で遅れた • 特定のDBがつまった
40.
スケーラビリティ • スレーブDB •
/var/lib/mysql以下を 定期的にEBSでバックアップ • 増やすときはEBSをアタッチするだけ • キャパシティ計測 • rps(request/sec)を Muninでグラフ化
41.
何rpsを越えると 応答速度が著しく悪化するか が分かりやすい
42.
冗長性はまだ 試行錯誤中 • EIP •
スムーズに切り替わらない • murakumo (菅原作) • 検証中
43.
その他にも泥臭い 最適化 • マスタへ発行されるSELECTを排除 • スロウクエリをキャッシュ •
テーブル数を減らす
44.
そんなわけで無事 バレンタインを終えました
45.
別の意味で ハッピー バレンタイン
46.
AWSのおかげで Rails3移行も楽できました • 2011/11 • Appサーバを2倍準備して
いつでもロールバックできるようにした • 力業 • 何か大きな変更をする時に便利
47.
まとめ
48.
• AWSに移行後初めてのバレンタインデーを 無事終えることができました •
すぐにサーバ増設ができるので チューニングに集中できました • 大きな変更をする時に使える 大きな武器になりました
49.
[PR]最後に
51.
まだ見ぬ問題を 楽しく解決したい エンジニアを お待ちしています。
52.
ご静聴ありがとうございました
Download