間に立つ機器
愛知の自動車部品メーカーでは、社員のパソコンが外のサイトを見るとき、必ず社内のプロキシを通ります。
一方、この会社の部品注文サイトには、毎朝たくさんの取引先が来ます。その入り口にも、注文を受けて後ろのサーバーに渡す機器があります。
どちらも「間に立つ」機器です。けれども、誰の側に立つかが違います。
このレッスンのゴール
メモ
プロキシ、リバースプロキシ、ロードバランサーの役割を説明できる。
キーワード
| ことば | いみ |
|---|---|
| プロキシ | 社内の利用者の代わりに外へつなぐ仲介役 |
| リバースプロキシ | サーバーの代わりに外からの頼みを受ける仲介役 |
| ロードバランサー | 頼みごとを複数のサーバーに分ける機器 |
| バックエンド | 仲介役の後ろで実際に仕事をするサーバー |
| ヘルスチェック | サーバーが動いているかの定期的な確認 |
学生が入力するセルは、このプレビューでは空白です。
プロキシは利用者の側に立つ
プロキシは、社内の利用者の代わりに外のサイトへつなぎます。外から見えるのは、プロキシの住所だけです。
会社は、プロキシで危ないサイトを止めたり、記録を残したりします。
リバースプロキシは逆です。サーバーの側に立ち、外からの頼みを受けます。利用者からは、後ろのサーバーが見えません。
よくある思い違い
注意
プロキシとリバースプロキシは同じものだ、と思う人が多いです。使う技術は似ていても、守る側が違います。利用者の側ならプロキシ、サーバーの側ならリバースプロキシです。
ロードバランサーは仕事を分ける
年末の大きな注文の日には、一台のサーバーでは追いつきません。
ロードバランサーは、届いた頼みを何台かのサーバーに分けます。いちばん簡単な分け方は、順番に一つずつ回す方法です。これをラウンドロビンと言います。
ヘルスチェックで止まったサーバーを見つけると、そこには配りません。
例: web2が止まったときの配り方
| リクエスト | 全部動いている | web2が止まった |
|---|---|---|
| 1番目 | web1 | web1 |
| 2番目 | web2 | web3 |
| 3番目 | web3 | web1 |
| 4番目 | web1 | web3 |
| 5番目 | web2 | web1 |
学生が入力するセルは、このプレビューでは空白です。
やってみよう: 順番に配る
servers = ["web1", "web2", "web3"]
# 届いた順に、サーバーへ一つずつ回して配ります
for number in range(7):
server = servers[number % len(servers)]
print("リクエスト", number + 1, "→", server)
# servers に "web4" を足して、配り方がどう変わるか見ましょう