Japanese subtitles

← App Server Scaling - CS253 Unit 6 - Udacity

Get Embed Code
2 Languages

Showing Revision 1 created 03/11/2014 by Fran Ontanaya.

  1. データベースの負荷を軽くする方法を見てきました
  2. 実際にソリューションを検討する際に
  3. データベースの書き込みのみに集中して
  4. 読み込みは最低限にすると
  5. 閲覧ごとに読み込むより動作が大幅に改善します
  6. リクエストの処理の手順は
  7. まずリクエストはHTTPやURLなどを通して
    処理されます
  8. そしてデータベースクエリをします
  9. 次は結果の照合です ただASCII Chanに関しては
  10. まったく考慮しなくて大丈夫です
  11. そしてそれからHTMLをレンダリングします
  12. データベースクエリは改善済みですが
  13. 他についてはどうでしょうか?
  14. キャッシュはHTMLのレンダリングに有効ですが
  15. 3つの処理すべてに効果的なワザがあります
  16. 今から紹介するアプリケーションサービスを
    追加するのです
  17. 仮に1つのプログラムを実行し
  18. ブログやASCII Chanなどすべてのリクエストを
  19. 処理しているとします
  20. 現状はシンプルなリクエストを処理できる状態ですが
  21. マシン1台では対応できない大量のリクエストが
    来た場合は
  22. マシンを増設して
  23. 負荷を分散するのもひとつの方法です
  24. そうすれば処理を他のマシンに振り分けたり
  25. マシン同士をデータベースで連結させることも
    可能かもしれません
  26. その際それぞれのマシンのシステムで
  27. キャッシュできれば なお便利でしょう
  28. ではどうやって複数のマシンで
    リクエストを処理するのでしょう
  29. そこでユーザとすべてのサーバの間に
  30. ロードバランサと呼ばれるものを置きます
  31. ロードバランサは
    APサーバやデータベースサーバのように
  32. 物理的な装置です
  33. ロードバランサの唯一の用途は
  34. リクエストを複数のマシンに分散することです
  35. ロードバランサには
  36. 実在するAPサーバのリストがあり
  37. 大量のリクエストを外部から受けると
  38. どのAPサーバにリクエストを送るか決めます
  39. これはここ これはここといった具合に
  40. 振り分けていきます
  41. APサーバと違ってロードバランサに
  42. このような処理ができる理由は
  43. リクエストの受け取りやサーバの選択
  44. コネクションの転送だけを行うからです
  45. HTTPの解析はほとんど行いませんし
  46. データベースクエリも実行しません
  47. HTMLのレンダリングもキャッシュもしません
    唯一と言える役割は
  48. リクエストの振り分けだけなのです
  49. 皆さんが自分で作成することはないと思いますが
  50. 仕組みを知ることは有益です
  51. Google App Engineを利用していれば
  52. サーバの作成やスケーリングを自動でしてくれます
  53. GAEの管理画面で
    自分のWebアプリケーションをホストするための
  54. サーバの数を確認できます
  55. ロードバランサの設置は簡単ではありません
  56. 私もRedditをスケーリングする際に
  57. 時間がかかりました ここでしっかり学びましょう
  58. ロードバランサがトラフィックを
  59. どのサーバに送るか決めるアルゴリズムがあります
  60. 最も簡単な方法はランダムにサーバを選ぶことです
  61. リクエストを受け取ると
  62. ロードバランサが無作為にサーバを選び
    リクエストを送ります
  63. この場合多くのリクエストが出されると
  64. 各サーバの負荷は同じになるはずです
  65. 他の方法としてラウンドロビンがあります
  66. これはロードバランサが順番にサーバを選ぶ方法です
  67. 最初はこれ 次はこれというように選びます
  68. 非常にシンプルなアルゴリズムです
  69. ロードバランサの中には各サーバの負荷や
  70. 未処理のリクエスト数を把握していて
    その情報によって
  71. リクエストを振り分けるものもあります
  72. "これはすでに5個も抱えているがこちらはゼロなので"
  73. "次はこちらに"という要領です
  74. このように負荷分散には様々な方法があります
  75. ではここで小クイズです
  76. ラウンドロビンアルゴリズムの実装についてです