【図解】AWSのENI(Elastic Network Interface)を理解する
はじめに
AWSを使っていると「ENI」という言葉を見かけますが、実際に意識して触れる機会はあまりありません。それでもサービスは普通に動くので、スルーしてしている人も多いと思います。
ですが、ENIを理解すると、EC2の通信の仕組みやVPCの設計が一気にクリアになります。
本記事では、そのENIの役割と仕組みを整理していきます。
対象読者
- EC2やVPCは使ったことがあるけど、「ENIって何?」という方
- AWSのネットワーク構成を理解したい初中級エンジニアの方
基礎:ネットワークインターフェース(NIC)とは?
ENIを理解するためには、ネットワークインターフェース(NIC)を先に理解する必要があります。
NICとは、パソコンなどのデジタル機器をネットワークに接続するための出入り口のことです。
まず、PCの中のデータは「デジタル語(0と1)」でできています。
そして、ネットワークを流れるデータは「電気信号や電波」です。
NICは、この「デジタル語」と「電気信号」を瞬時に翻訳し、正確にネットワーク送り出したり、受け取ったりする役割を果たします。

オンプレミスとクラウドのNIC
通信の出入り口の役割を果たすNICは、通常PCやサーバーの物理的な部品として組みまれています。
しかし、クラウドの世界(AWSなど)では、この「通信の出入り口」の機能だけを必要なときに自由に付け替えられるようにした、仮想的な(形のない)仕組みがあります。
それが今回解説するENI(Elastic Network Interface)です。
ENIとは何か?
ENI(Elastic Network Interface)は、AWSのVPC(仮想プライベートクラウド)内で動作するEC2インスタンスの「仮想ネットワークカード(NIC)」です。
物理的なPCにNICがあることでネットワークに接続できるのと同じように、EC2インスタンスがVPCという仮想ネットワークと通信するためには、ENIという「通信の差し込み口」が不可欠です。
ENIとは、物理的なNICの機能(通信の出入り口)をクラウド上で「仮想的」に再現し、自由に付け替えられるようにしたものだとイメージしてください。

ENIは単なる通信ポートではなく、EC2インスタンスのネットワーク属性をすべてまとめる役割を担っています。
| 概念 | 役割 |
|---|---|
| ENI | EC2のネットワークの玄関口 |
| EC2 | ENIを通じてVPC内の他のリソースや外部と通信する主体 |
| VPC | ENIが接続される仮想的なネットワーク環境 |
ENIの保持している情報
ENIは、EC2インスタンスのネットワーク接続を定義する以下の重要な要素を保持しています。
①仮想アドレス情報
ENIは、インスタンスがネットワーク内で識別されるために必要なアドレス情報を持ちます。
プライマリIPv4アドレス:
ENIに自動で付与されるメインのIPアドレス。EC2の基本的な通信はこれを使用します。
セカンダリIPv4アドレス:
必要に応じて追加できる予備のIPアドレス。
一つのインスタンスで複数のWebサイトやサービスを動かしたい場合や、特定のIPを切り替えて利用したい場合に活用されます。

IPv6アドレス
IPv4と並行して、ENIにIPv6アドレスを割り当てることも可能です。
グローバルユニークであるため、インターネットに直接公開する際の選択肢となります。
Elastic IP (EIP) の割り当て
ENIに固定のグローバルIPである Elastic IP を関連付け可能。
通常のパブリックIPと異なり、インスタンスの再起動や停止後もIPアドレスが変わらないため、外部からの安定したアクセスポイントを提供します。
②MACアドレス
ENIごとに自動的に割り当てられる**ローカルな通信のための「専用の番号」**です。同じネットワーク内(VPC内)で「どのEC2インスタンスへデータを届けるか」を正確に区別するための識別子 となります。
世界に一つしかない固有の番号で、ユーザーが変更することはできません。
③セキュリティグループ
セキュリティグループの関連付け
ENIに直接セキュリティグループ(仮想ファイアウォール)を関連付け可能。
例えば、「22番ポートは閉じる」「80番ポートだけ開ける」といった通信制御のルールをENI単位で設定可能です。
④その他
ENI自体を一意に識別するための「ENI ID」とそのENIがどの仮想プライベートネットワーク(VPC)で使用されるかを特定するための「VPC ID」も保持しています。

ENIの種類
EC2インスタンスにアタッチされるENIには、その役割と柔軟性によって2種類あります。
🔷 プライマリENI
- EC2起動時に必ず1つ作られるENI
- このENIに付与されるプライマリIPv4アドレスが、EC2の基本的な通信に使われる
- 削除やデタッチはできず、インスタンスと一体化している(必須のNIC)
🔷 セカンダリENI
- ユーザーが必要に応じて追加するENI
- インスタンス実行中にアタッチ/デタッチ可能
- プライマリENIと違い柔軟に扱え、サブのネットワーク口として利用できます

ENIの料金
ENI自体の料金
ENIの作成・保持は無料
プライマリENIも、追加のセカンダリENIも、ENIそのものには課金されない
課金が発生するケース
ENIを使う時に間接的に料金が発生するのは以下のような場合
Elastic IP(固定グローバルIP)の割り当て
EC2が停止している状態でElastic IPを保持している場合
Elastic IPを複数持っている場合
※いずれも少額だが課金対象となる
データ転送量
ENIを通じてVPC外(インターネットや別リーション)へ通信する際は、通常のデータ転送料金が発生
VPC内の同一AZの通信は無料、異なるAZ間の通信は課金
制約事項
ENIの数の上限
インスタンスにアタッチできる最大ENI数が決まっています
小さいインスタンスは少なく、大きいインスタンスは多いです
ENIあたりのIPアドレス数
1つのENIに割り当てられるIPアドレス数にも上限があります
インスタンスタイプごとに「ENI数✖️IP数」で最大IP数が決まります
t2.micro |
c5.18xlarge |
|
|---|---|---|
| 最大ENI | 2 | 15 |
| ENIあたりのIP | 2 | 50 |
| 合計IP数 | 4 | 750 |
インスタンスタイプに依存する理由
ENIやIPの数は、インスタンスの仮想ハードウェア性能(ネットワーク帯域やNIC数)に依存しています。
つまり「小さいマシンにNICをたくさん差す」ことはできないという制約です。
まとめ
- ENI(Elastic Network Interface) = EC2にネットワークを繋ぐための仮想NIC。
- IPアドレスやセキュリティグループを持ち、追加・付け替えで柔軟な設計が可能。
- 高可用性や複数ネットワークの利用に役立つが、数やIPにはインスタンスタイプごとの制限あり。
Discussion