0
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 完全移行完了
サーバ構成
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ファイルを生成する
Puppetを適用する
その他にもいろいろな設定変更を自動化しています• Nagios• Apache• Varnish
Puppet Dashboard 使い始めました
こんな時に便利• このサーバに最後に適用したのいつ だっけ?• 間違えてファイルを上書きしちゃった• 適用失敗しちゃったから見てみてよ• 適用忘れの監視
[おまけ]手元のマシンでも動きます。
インスタンスストレージ(Ephemeral Storage)使ってます• インスタンスを落とすと消える領域• 別途料金かからない• LVMでまとめて大容量ディスク• ログ出力に便利
ディスクは遅いのでメモリを有効活用• RAMディスク(/dev/shm) • スロウクエリが出やすいテーブル • 集計処理
Availability Zoneをそろえる• はじめ冗長化のために分けていたが、 パフォーマンスのためにそろえた• 10msくらい違った
リアルタイムモニタリング• 漏れなく、でも多すぎず• エラー時は目立つように• 見やすい場所にディスプレイを設置 • 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を排除• スロウクエリをキャッシュ• テーブル数を減らす
そんなわけで無事バレンタインを終えました
別の意味でハッピーバレンタイン
AWSのおかげでRails3移行も楽できました• 2011/11• Appサーバを2倍準備して いつでもロールバックできるようにした • 力業• 何か大きな変更をする時に便利
まとめ
• AWSに移行後初めてのバレンタインデーを 無事終えることができました• すぐにサーバ増設ができるので チューニングに集中できました• 大きな変更をする時に使える 大きな武器になりました
[PR]最後に
まだ見ぬ問題を楽しく解決したいエンジニアをお待ちしています。
ご静聴ありがとうございました
AWS クックパッドの運用事例
AWS クックパッドの運用事例
AWS クックパッドの運用事例
Upcoming SlideShare
Loading in...5
×

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

16,254

Published on

Published in: Technology
1 Comment
71 Likes
Statistics
Notes
  • Hello,
    How are you doing and how is life down there in your Country? I guess you are having good time. My name is Cordelia . I would love to be communicating with you for a mutual and well established friendship. I am really consumed by your profile, giving me the impression that you will be a type i desire to have as a friend. Pleas i will like you to write me back on my email address(ask4pretycordelia@hotmail.com) so that we can share our photos and experience of life and every other things in common with each other. I will wait to hear from you.

    Take care of yourself.
    Cordelia
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
16,254
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
143
Comments
1
Likes
71
Embeds 0
No embeds

No notes for slide

Transcript of "AWS クックパッドの運用事例"

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

    Clipping is a handy way to collect important slides you want to go back to later.

×