less than 1 minute read

学んだこと

ロードバランサーとは?

  • ロード(負荷)+バランサー(平衡を保つ)の意味
  • サーバに掛かる負荷を、平等に振り分けるための装置のこと。
  • 例えるなら、ショッピングモールの駐車場係員の役割。

メリット

  • 負荷分散
    • 高負荷を防ぐことで、全体のパフォーマンスを向上させる。
  • 可用性向上
    • 一部サーバが故障しても、他のサーバでサービスを継続できる。
  • スケーラビリティ
    • 必要に応じてサーバを追加・削除できる。
  • セキュリティ強化
    • 直接アプリケーションサーバにアクセスさせないため、不正アクセスを防ぐ事ができる。

デメリット

  • 初期設定や管理の複雑さ
  • コストがかかる

種類

  • L4(ネットワーク層)
    • IP アドレスやポート情報を元に振り分ける。
  • L7(アプリケーション層)
    • HTTP リクエスト内容を元に振り分ける
  • クラウドロードバランサー
    • クラウドサービスが提供している。

負荷分散のアルゴリズム

  • ラウンドロビン
    • 順番にサーバーへ振り分ける。
  • 加重ラウンドロビン
    • サーバ毎の負荷に応じて重みを設定する。
  • 最小接続数
    • 接続数が少ないサーバを優先する。
  • IP ハッシュ
    • ユーザの IP アドレスに基づいてサーバを固定する。
  • セッション維持
    • 同じユーザは同じサーバに振り分ける。

死活監視とは

  • リクエストを処理するサーバが正常に稼働しているか定期的にチェックする仕組み。
  • 異常が検知された場合は、通知や自動復旧を行うことでシステムの安定性を強化できる。

Active レコードとは?

  • Rails の機能で、データベースのレコードを Ruby のオブジェクトとして扱う事ができる仕組み。
  • そのため、SQL を意識せずともデータベースを比較的簡単に操作することができる。

O/R マッピングとは?

  • オブジェクト指向プログラムと RDB をつなぐ仕組み。
  • Rails の ActiveRecord は O/R マッピングに該当する。

継承とは?

  • オブジェクト指向の特徴の一つで、既存クラスのメソッドやメンバ変数等を受け継ぎ、新しくクラスを定義すること。
  • 受け継がれた新しいクラスは、親クラスのメソッドやメンバ変数を呼び出す事が可能。

カプセル化とは?

  • オブジェクト指向の特徴の一つで、クラス内に定義されているメソッドやメンバ変数を外部から参照できないようにする仕組みのこと。
  • アクセス指定子(public,private,protected)を使用し実現する。
    • public
      • 内部・外部ともに参照することができる。
    • private
      • 内部のみ参照することができる。
    • protected
      • 継承先・継承元のクラス内で参照することができる。