emolog

脳内メモです。

(wip)サーバ/インフラを支える技術の読書メモ

サーバ/インフラを支える技術を読んだメモ

f:id:ababababa0222:20200419194610p:plain

前提用語メモ

  • Deamon
    • バックグラウンドで動き続け、仕事をするやつ
    • httpd /bind
  • フェイルオーバ

    • 冗長化されたシステムにおいて、Activeなノードが停止した際に自動的にBackupノードに切り替わること
  • フェイルバック

    • Activeなノードがフェイルオーバした状態からもとに戻ること
  • メモリファイルシステム
    • ハードディスク上などの永続化した記憶装置でなく、メモリ上につくったファイルシステム
    • メモリ上にあるので再起動の際にデータなくなる、読み書きがはやい
  • ラウンドロビン
  • レイテンシ
    • ネットワークでデータが届くまでの時間
  • ロードバランサ
    • クライアントとサーバの間に位置
    • クライアントからのリクエストをバックエンドに適宜分散
    • 複数のサーバをまとめて、1つの仮想的なサーバに見立てる

冗長化について

まとめ

  • イメージがふわっとしていたが、ロードバランサはリクエストを振り分ける仮想サーバ
  • 後ろにあるサーバ達を隠蔽してくれる頭いい

メモ

  • コールドスタンバイ
    • 基本は使用せず、現用機が故障したら接続
  • ホットスタンバイ
    • 現用機と同じ環境を常に保持
    • 即座に切り替え
  • ポート監視
    • レイヤ4
    • TCP接続でダウン検知
  • サービス監視
    • レイヤ7
    • HTTP接続でダウン監視
  • ホットスタンバイ・コールドスタンバイなどは予備機が基本稼働しないので、もったりない
    • 両方のサーバを使ってサービス提供したい
    • サイト性能は倍に
  • DNSラウンドロビン
    • DNSを用いて1つのサービスを複数台のサーバに
      • サーバの数だけグローバルアドレス
      • 負荷などに応じて柔軟な対応ができない
  • ロードバランサ
    • 1つのアドレスに対してリクエストを複数サーバに
    • 仮想的なサーバとして動作
      • 本物のサーバへリクエストする

リバースプロキシ

  • webサーバとロードバランサの間に入るもの
  • クライアント → ロードバランサ → リバースプロキシ → webサーバ
    • → リバースプロキシ → ロードバランサ→ ロードバランサ → クライアント
  • メリット
    • HTTPリクエストに応じたシステムの制御
    • システム全体のメモリ効率化

リバースプロキシによるメモリ効率化

  • 動的コンテンツ配信webサーバは(APサーバ)起動時のオーバーヘッドが大きい
  • そのためメモリに常駐している
  • 一度起動すれば早い
  • そのため大量のメモリを食う
  • APサーバは1リクエストに対して1プロセス or 1スレッドなケースが多い
  • APサーバ内で静的コンテンツ / 動的コンテンツも同様にメモリを食う
  • 静的コンテンツはコンテンツ配信用のサーバに分けたほうがAPサーバの負荷軽減になる

メモ

  • 自分自身結構APサーバで静的コンテンツ配信しがち。リバースプロキシとか上のレイヤーでよしなにやっていったほうがスマート感あるのでやってきたい