クラウドの「住所」を操る:ENIとマルチIPアドレスの仕組みを郵便配達で理解しよう
こんにちは!クラウドの世界へようこそ。インフラエンジニアとして日々AWSやGCPといった巨大なパズルのようなネットワークを設計していると、ふと「当たり前すぎて忘れがちなこと」の深淵に気づかされることがあります。
今回は、仮想サーバーの心臓部とも言える「ENI(Elastic Network Interface)」と、そこに紐づく「IPアドレス」の仕組みについて、教科書の堅苦しい説明を捨てて、身近な「郵便配達」に例えながら紐解いていきましょう。
—
1. ENI(Elastic Network Interface)=「サーバーという家の表札」
クラウド上の仮想サーバー(AWSのEC2など)を動かすとき、そのマシンはどこにいるのでしょうか?当然、ネットワークの中です。
そのマシンが「私、ここにいますよ!」とネットワークに対して主張するための物理的なインターフェースが、この ENI です。
郵便配達で例えると…
- サーバー(インスタンス):家そのもの。
- ENI:その家に設置された「郵便受け(ポスト)」。
- MACアドレス:そのポストに刻印された「世界で唯一無二の製造番号」。
ネットワークの世界では、パケットという名の「手紙」が届くとき、必ずこの「ポスト(ENI)」が受け取ります。そして、そのポストに書かれた番号(MACアドレス)を見て、「ああ、これはこの家のものだな」と判断されるわけですね。
—
2. なぜ「マルチIPアドレス」が必要なの?
さて、ここからが少し面白い話です。一つのポスト(ENI)には、普通一つの住所(IPアドレス)が割り当てられます。しかし、AWSなどのクラウドでは、一つのポストに複数の「サブの住所(セカンダリIP)」をねじ込むことができます。
「一つの家に住所をいくつも持たせて、何が嬉しいの?」と思いますよね。
現場でよくあるケース
- 1台のサーバーで複数のサービスを動かしたいとき:
例えば、api.example.com と admin.example.com を一つのサーバーで処理させたい場合、それぞれに別のIPアドレスを割り当てておくと、ロードバランサーやセキュリティグループの設定で「このIP宛の通信だけを通す」といった細かい交通整理が可能になります。
- コンテナ(Kubernetes)の世界:
ここが一番重要です!Kubernetesでは、一つの仮想サーバーの中で何十ものコンテナが動きます。コンテナ一つひとつに固有のIPを持たせたいとき、ENIのマルチIP機能が「住所の付箋をたくさん貼る」ような役割を果たしてくれるのです。
—
3. 実践:AWS CLIでIPアドレスを付与してみる
理屈はわかったところで、実際にAWS環境でセカンダリIPを割り当てる手順を覗いてみましょう。現場ではGUIのポチポチ操作だけでなく、自動化のためにCLIを使うのがSREの嗜みです。
# まず、現在のENIのIDを確認します
aws ec2 describe-network-interfaces --filters Name=attachment.instance-id,Values=i-0123456789abcdef0
# 確認したENIに対して、セカンダリIPを1つ追加で割り当てます
aws ec2 assign-private-ip-addresses \
--network-interface-id eni-0a1b2c3d4e5f6g7h8 \
--private-ip-addresses 10.0.1.50 # ここで好きな住所(IP)を指定します
これだけで、そのサーバー(家)のポストに「10.0.1.50」という新しい宛名が追加されました!
—
4. 注意点:サーバーの中身も教えてあげよう
クラウドの管理画面で「このIPを追加したよ!」と伝えても、実はOS側はまだそれを知りません。郵便局(クラウド基盤)が配達をしてくれても、家の中の住人(OS)がその住所宛の手紙を受け取る準備をしていないと、パケットは迷子になってしまいます。
Linuxサーバーであれば、以下のようにしてOSに「新しい住所を認識して!」と伝える必要があります。
# OS側でネットワークインターフェース(通常は eth0)にIPを追加するコマンド例
sudo ip addr add 10.0.1.50/24 dev eth0
# 設定が反映されたか確認
ip addr show eth0
—
最後に:ネットワークを「自分事」にするために
今回お伝えした「ENIとマルチIP」という仕組みは、クラウドネットワークのほんの入り口に過ぎません。しかし、この「パケットはどこから来て、どのポスト(ENI)を叩き、どの住人(プロセス)に届くのか」というイメージさえ持てていれば、ネットワークトラブルの解決スピードは劇的に上がります。
「繋がらない!」というエラーログを見たとき、まずは「手紙はポストまで届いているかな?」「ポストに宛名は書いてあるかな?」と、郵便配達の視点で考えてみてください。
一歩ずつ、パケットの流れが見えるようになると、インフラエンジニアとしての仕事はもっともっと楽しくなりますよ!何か疑問や「ここが詰まった!」というポイントがあれば、ぜひまた質問してくださいね。応援しています!
コメント