「リスナー とは」みたいな感じでググると、「ラジオの視聴者」みたいな記事ばかり出てきて、なかなかお目当てのIT的な「リスナー」の意味には巡り合えません。
かと言って、「AWS リスナー」とかで検索すると、ELB(ALB)で設定すべき専門的な「リスナー」が出てきて、一般的にはどういう意味なのか、理解することはできません。
そんな、IT業界で初めて「リスナー」に出会った人が、「リスナー」をざっくり理解するための記事です。
IT業界で「リスナー(Listener)」とは
リスナーとは、設定したプロトコルとポートを使用して接続リクエストをチェックするプロセスのことです。
まさに、リスナーとは「(外部からのアクセスを)聞く人」と言っていいでしょう。
主に、ロードバランサーの受信側の設定で登場します。
IT業界で「リッスン(Listen)する」とは
語弊を恐れず一般化するなら、「リッスンする」とは「なんらかのアクセスを受けその後なんらかの処理をしていく」ことです。
そもそも多くの場合、リスナーでは、プロトコルとポート(またはIPアドレス)の設定をすることになります。このプロトコルでこのポートにアクセスがあったら、そのアクセスはどう処理する(どのサーバーにリダイレクトさせるか、など)ということを決めていくということです。
つまり、
「プロトコルとポート(またはIPアドレス)を設定する」
=あるプロトコルとポート(またはIPアドレス)からのアクセスを受けその後なんらかの処理をしていく
これが「リッスンする」という行為。リスナーが行う処理を「リッスンする」と言うのだから、「リスナー」がわかっていれば難しいことではないですね。
参考:https://e-words.jp/w/%E3%83%AA%E3%83%83%E3%82%B9%E3%83%B3.html
「このELBは80番ポートでリッスンしている」
「そのIPアドレスをリッスンできるように設定する」
などと使うようです。(この例だけだと、アクセス許可に近いが、アクセスできるだけでなくそれを受けた上でどうにかするというニュアンスが含まれる)
ロードバランサー(ALB)でしか出てこない?
私はALBの設定の際に初めて出会ったものですから、AWS特有の表現かと思って調べたら、そんなことはありませんでした。
何らかのきっかけに応じて起動されるよう設定されたサブルーチンや関数、メソッドなどのことを「イベントリスナー」という使い方はあるようです。
参考:https://e-words.jp/w/%E3%83%AA%E3%82%B9%E3%83%8A%E3%83%BC.html
OracleDB(オラクルデータベース)でも、クライアントのリクエストを受け付ける「リスナー」という言葉が出てきます。
参考:https://sql-oracle.com/?p=1664
「リッスンする」という言葉自体も、nginxやApacheなどのwebサーバーでも登場します。(nginxやApacheでは「Listenディレクティブ」がリスナーに該当)
いずれも、アクセスやリクエストを受け、どう処理するかに繋げていく役割を果たしていることがわかりますね。
感想
個人的には、例えば「レシーバー(=受信機)」とか「レセプション(=受付)」とかAcceptanceとかとかの方がしっくりくるのになーと思いつつも、この業界では当たり前のように「リスナー」「リッスンする」を使うので、郷に入っては郷に従おうと思います。
再三になりますが、ただ受けるだけでなく、リダイレクトなど、その後なんらかの処理をしていくというニュアンスが入っているため、あえてこのような表現を使っているのかな?と思いました。
この記事が誰かのモヤモヤの助けになれば嬉しいです。
最後まで読んでくださってありがとうございました!
コメント