こう 聞かれます
- 「自動で
台数が 増える 環境で、 何に 気を つけますか」 - 「アクセスが
急に 増えたら 台数が 増えるので、 もう 安心ですか」 (裏から聞く形) - 「台数が
増えたら、 データベースは どうなりますか」
面接官が 見ている点
- 台数が
増える 途中の 遅れと、 それを 抑える 費用を 引き換えで話せるか - アプリの
台数が 増えると DB の 接続も 増える、と 結び 付けられるか - 手元の
メモリや ディスクに 状態を 置かない 作りを 知っているか
短い答え
- 最小の
台数を 置いて 立ち 上がりの 遅れ (コールドスタート) を 抑えますが、 その 台数は 使っていなくても 費用が かかるので、 遅れと 費用の 引き換えで 決めます。 - 1 台が
同時に 受ける 要求の 数と、 最大の 台数を 決め、 その 掛け算で DB の 接続数が あふれないようにします。 - どの
台に 要求が 来ても 同じに 動く よう、 手元に 状態を 持たない 作り (ステートレス) にし、 ファイルは 外の 置き場に 置きます。
少し 詳しい答え
立ち 上がりの 遅れと費用
台数が
夜は
台数と 接続数の掛け算
アプリの
最大の台数 20 台
1 台が持つ接続の数 10 本 (コネクションプール)
合計 200 本
DB が受けられる数 100 本 -> あふれる手当ては、
手元に 状態を 持たない (トレードオフ)
台数は
外に
話すときは、
よく ある間違い
- 台数が
増えれば 何でも 耐えると思う アプリが 増えても、 DB や 外の API が 先に 詰まります。 後ろの 限界から 逆算します - 最小の
台数を 費用を 考えずに増やす 使っていない 時間も 料金が かかります。 待たせて 困る 画面か どうかで決めます - アップロードされた
ファイルを 手元の ディスクに置く 台が 消えると ファイルも 消え、 別の 台からは 見えません
深掘りの問い
- 「台数を
増やす合図には、 何を 使いますか」 CPU の 使い方、 同時の 要求の 数、 キューに 溜まった 件数などから、 詰まりの 元に 近い物を 選ぶ、 と答えます - 「急な
山に 台数の 増え方が 追いつかないときは」 最小の 台数を 時間帯で 上げる、 キューで 受けて 後ろで 流す、 入口で 回数を 絞る、と答えます - 「台数が
減る とき、 処理中の 要求は どうなりますか」 止める 合図を 受けたら 新しい 要求を 取らず、 今の 要求を 終えてから 止まるよう 作る、と答えます