AWSの「エフェメラルポート」という名の郵便配達員:ネットワーク通信の舞台裏を覗いてみよう
こんにちは!クラウドアーキテクト兼SREの視点から、日々AWSのネットワークの奥深さを探求しているライターです。
皆さんは、AWSでWebサーバーを立てたとき、「セキュリティグループ(ファイアウォール)の設定で、なぜ受信(インバウンド)は許可したのに、返信がうまく届かないことがあるんだろう?」と悩んだことはありませんか?
実はその裏側で、あなたのサーバーは「エフェメラルポート」という、ちょっとした秘密兵器を使って通信を行っています。今回は、インフラエンジニアなら必ず押さえておきたい「一時的なポートの仕組み」を、身近な郵便配達に例えて紐解いていきましょう!
—
1. 「エフェメラルポート」って一体なに?
「エフェメラル(Ephemeral)」とは、英語で「儚い」「一時的な」という意味です。
サーバー同士が会話をするとき、例えばブラウザでWebサイトを見に行くとします。あなたのサーバー(クライアント)は、相手のサーバー(Webサーバー)に対して「このデータをください!」と手紙を送ります。
このとき、相手に「返信はここへ送ってね」と伝えるために、自分自身に一時的な「仮の部屋番号」を割り当てるのですが、これがエフェメラルポートです。
郵便配達でイメージしてみよう
あなたがネットショッピングで注文をするとき、宛先(相手の住所)は分かっていますよね。でも、荷物が届いたとき、不在だったら困ります。そこで、あなたは送り状に「不在時は『一時受付窓口(=エフェメラルポート)』に預けてください」と書き添えます。
通信が終わればその窓口は即座に解体されるため、「儚い(一時的な)」ポートと呼ばれているのです。
—
2. なぜこの範囲を意識する必要があるの?
AWSのインスタンス(Amazon LinuxやWindows)には、OSごとに「この範囲の番号を一時受付窓口として使っていいよ」というルールが予め決まっています。
- Amazon Linux系: 多くは
32768〜65535 - Windows系: 多くは
49152〜65535
もし、あなたのセキュリティグループ(AWS版の門番)で、「外部からの戻り通信」を厳しく制限しすぎていると、このポート範囲に返信が届かなくなり、通信がプツンと切れてしまうのです。
—
3. 実践!セキュリティグループの「正しい」考え方
AWSのセキュリティグループは「ステートフル」という賢い性質を持っています。これはどういうことかと言うと、「自分から出した通信に対する返信なら、門番は自動的に通してくれる」という仕組みです。
つまり、基本的には「エフェメラルポートを個別に許可するルール」を書く必要はありません!しかし、「ネットワークACL(NACL)」という、サブネット単位の門番も使う場合は注意が必要です。
ネットワークACLでの注意点
NACLはステートフルではない(=融通が利かない)ため、戻り通信を通すために、このエフェメラルポート範囲を明示的に許可しなければいけません。
# NACLのインバウンドルール設定例
# 外部サーバー(80番ポート)からの返信を受け入れるための設定
# 宛先ポート範囲を 32768-65535 に設定する必要がある
# これを忘れると、どれだけセキュリティグループを調整しても通信は通りません!
—
4. 現場でトラブルを解決するための確認コマンド
もし「通信が繋がらない!」という事態に陥ったら、まずはサーバーの中で「今、何番のポートを使っているのか」を確認しましょう。
Amazon Linux (netstat/ss コマンド)
# 現在確立されている通信と、使用中のポートを確認する
# -n: ポート番号を数値で表示
# -t: TCP通信を表示
ss -nt
このコマンドを打つと、10.0.1.5:38421 のような表示が出てくるはずです。この :38421 こそが、今まさに使われているエフェメラルポートです。この番号がOSの決めた範囲内に収まっていることを確認してくださいね。
—
まとめ:ネットワークは「対話」である
エフェメラルポートを意識することは、単なる設定作業ではありません。それは、「自分のサーバーが、外の世界とどうやって握手をしているか」を理解することに繋がります。
1. 通信は必ず「往復」を考える: 送り出した手紙への返信が、どの窓口(ポート)に帰ってくるかをイメージしましょう。
2. セキュリティグループを過信しない: NACLを使うときは、エフェメラルポートの範囲を忘れないこと。
3. OSのデフォルトを知る: Amazon LinuxとWindowsではポート範囲が異なることを頭の片隅に置いておきましょう。
最初は難しく感じるかもしれませんが、パケットの流れを郵便配達のように想像してみれば、ネットワークの世界はもっと身近で面白いものになりますよ。
それでは、皆さんのインフラ構築がより安全で、快適なものになりますように!また次回の記事でお会いしましょう!
コメント