【入門編】 VPC内のエフェメラルポート範囲(Ephemeral Port Range)とAWSネットワークの仕様 – クラウドインフラと仮想化ネットワーク実践ガイド

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ではポート範囲が異なることを頭の片隅に置いておきましょう。

最初は難しく感じるかもしれませんが、パケットの流れを郵便配達のように想像してみれば、ネットワークの世界はもっと身近で面白いものになりますよ。

それでは、皆さんのインフラ構築がより安全で、快適なものになりますように!また次回の記事でお会いしましょう!

コメント

タイトルとURLをコピーしました