こう 聞かれます
- 「ロードバランサーと CDN の
役目を、 それぞれ説明してください」 - 「アクセスが
急に 増えて サイトが 落ちそうです。 どんな 手を 打ちますか」 (設計の 考えを、 困った 場面から聞く形) - 「CDN を
使うと、 なぜ 速くなるのですか」
面接官が 見ている点
- 2 つを
「速くする物」で まと めず、 どこに 置き、 何を 減らすのかを 分けて話せるか - 1 台が
落ちても 止まらない、という 役目まで話せるか - 置いた
ことで 新しく 考える 事 (セッションの 置き場、 古い 写しが 残る ) に 気づけるか
短い答え
- ロードバランサーは、
サーバーの 前に 置き、 届いた 要求を 何台かの サーバーに 振り分けます。 1 台に 負荷が 偏らず、 落ちた サーバーを 外して 残りで 動かせます。 - CDN は、
世界の 各地に 置いた サーバーに 画像や CSS などの 写しを 持たせ、 利用者の 近くから 返します。 遠くまで 行かずに 済むので 速く、 元の サーバーの 負荷も 減ります。 - ロードバランサーは
台数を 増やして 止まらなく する 物、 CDN は 届く 距離を 縮めて 元へ 来る 量を 減らす物、と 役目が 違います。
少し 詳しい答え
ロードバランサー
利用者からは 1 つの
- 振り分け順番に
回す、 今つながっている 数が 少ない所へ 送る、 などの 決め方があります - 生き死にの
確かめ (ヘルスチェック) 決まった URL を 定期的に 叩き、 返事の 無い サーバーには 送らなくなります。 1 台が 落ちても、 サービスは 止まりません - 増やしやすさ混ん
できたら サーバーを 足すだけで 受けられる 量が増えます
気を
CDN
東京の
- 向くのは、
誰に 返しても 同じ 物 (画像、 CSS、 JavaScript、 公開の頁) - 向かないのは、
人ごとに 違う 物 (マイページ、 注文の 一覧)。 写しを 別の 人に 返すと、 個人の 情報が漏れます
元の
作った
よく ある間違い
- 「CDN を
置けば 何でも 速くなる」と言う 速くなるのは 写しを 返せる 物です。 人ごとに 違う API の 応答は、 毎回元の サーバーへ行きます - ロードバランサーを
置けば 落ちないと言う ロードバランサー自体が 1 台なら、 そこが 止まると 全部止まります。 ロードバランサーも 二重にします - サーバーを
増やしても セッションの 置き場を変えない 振り分けの 先が 変わる たびに、 ログインが 切れたように見えます
深掘りの問い
- 「同じ
利用者を 同じ サーバーへ 送り続ける 方法 (スティッキーセッション) の弱点は」 その サーバーが 落ちると、 その 人の セッションも 消える、 偏りが 出やすい、と答えます - 「CDN の
写しを 更新しても、 古い 頁が 見える 人が います。 なぜですか」 拠点や ブラウザが 期限まで 古い 写しを 持っている ため。 ファイル名の 版や パージで 防ぐ、と答えます - 「L4 と L7 の
ロードバランサーの違いは」 L4 は IP アドレスと ポート番号で 振り分け、 L7 は URL や ヘッダーなど HTTP の 中身を 見て 振り分けられる、と答えます