ある日の放課後、パソコン部のユウキは先生に質問しました。
ユウキ:「先生、コンテナとかマイクロサービスについて調べてたら“サイドカープロキシ”って言葉を見つけたんですけど、これってなんですか?」
先生:「おっ、いいところに気づいたね。じゃあ、たとえ話で説明してみようか。たとえば、バイクに乗るときに横に小さな“サイドカー”がついているタイプがあるよね。あのサイドカーは、運転はしないけど、荷物を積んだり、誰かを乗せたりしてサポートする存在なんだ。」
ユウキ:「あ、たしかに!本体のバイクを補助してくれてる感じですね!」
先生:「そのとおり!たとえば、Webサービスを動かしている“本体のプログラム”のすぐそばに、“通信や認証、監視”などをサポートするための補助的なプログラムをくっつけて動かすんだ。それが“サイドカープロキシ”だよ。」
ユウキ:「分かるような分からないような…。サイドカープロキシの“プロキシ”って、プロキシサーバーとは違うんですか?」
先生:「いい質問だね!実は、“プロキシ”という言葉自体は“代理”とか“中継役”という意味なんだ。サイドカープロキシもプロキシサーバーも、どちらも『本体の代わりに処理を行う』っていう点では同じだよ。」
ユウキ:「じゃあ、同じものってことですか?」
先生:「似ているけど、使い方や役割が少し違うんだ。たとえば、プロキシサーバーは、ネットワークの出入り口にいて、通信全体を中継して管理する役割があるよね。学校のネットが一度プロキシサーバーを通してインターネットに出ていく、みたいな使い方。」
ユウキ:「あ、フィルタリングとかログを取ったりしてるやつですね!」
先生:「そう。それに対して、サイドカープロキシはアプリの“すぐ隣”にくっついて、そのアプリだけの通信や認証をサポートするんだ。つまり、もっとアプリに近いところで、細かく制御を手伝う“補助役”だね。」
ユウキ:「なるほど、プロキシにもいろいろ種類があるってことですね!アプリ専用の小さな代理人、って感じかな?」
先生:「その例え、いいね。まさにそれがサイドカープロキシなんだよ。ちなみに、最近では“サービスメッシュ”という仕組みが広まっていて、サイドカープロキシが重要な役割を果たしているんだ。代表的なサービスメッシュにはIstio(イストィオ)やLinkerd(リンカード)があるよ。」
ユウキ:「サービスメッシュって、なんですか?」
先生:「マイクロサービスがたくさんあると、それぞれの通信を手作業で管理するのは大変だよね。そこで、通信や認証、監視などをまとめて面倒見てくれるのが“サービスメッシュ”なんだ。IstioやLinkerdはその代表例で、サイドカープロキシ(たとえばEnvoy)を自動で展開して、サービス間の通信を賢く管理してくれるんだよ。」
ユウキ:「へぇ~、サイドカープロキシって、そういう高度な仕組みでも活躍してるんですね!」
| プロキシの種類 | 配置場所 | 主な用途 | 特徴 |
|---|---|---|---|
| プロキシサーバー | ネットワークの出入り口 | フィルタリング、アクセス制御、キャッシュ | 複数の端末をまとめて管理できる |
| サイドカープロキシ | アプリケーションの隣 | 通信制御、認証、監視 | 各アプリごとに細かい制御が可能 |
ある大手SNS企業では、マイクロサービスを活用したシステムでIstioというサービスメッシュを導入し、各サービスの横にEnvoyというサイドカープロキシを配置。これにより、開発者はアプリ本体に手を加えずに通信の暗号化・トラフィック制御・異常検知ができるようになりました。
とある銀行系システムでは、各マイクロサービス間の通信においてゼロトラストセキュリティを実現するため、サイドカープロキシを用いて相互TLS認証を設定。結果、サービス間通信の安全性と柔軟性を高めることに成功しました。
サイドカープロキシの特徴として正しいのは?
A. 全社ネットワークの出入り口に設置される
B. アプリケーションの外にあるが近くに配置される
C. アプリ内のライブラリとして実装される
プロキシサーバーとサイドカープロキシの主な違いは?
A. どちらも同じ働きをする
B. サイドカープロキシはネットワーク全体を制御する
C. サイドカープロキシはアプリごとの通信を制御する
サイドカープロキシが活用されるアーキテクチャは?
A. モノリシックアーキテクチャ
B. マイクロサービスアーキテクチャ
C. クライアントサーバモデル