🌀
【入門】ENI(Elastic Network Interface)を理解する
ENIの定義・概要
ENI(Elastic Network Interface)は、AWSの仮想ネットワークカード(NIC)。
パソコンにLANケーブルを差すとインターネットにつながるのと同じようにEC2インスタンスがVPC(仮想ネットワーク)と通信するためにはENIという"差し込み口"が必要。
つまり、
- ENI = EC2のネットワークの入り口
- IPアドレスやセキュリティグループなど、通信に必要な情報を持っている
ENIの基本構成要素
🍁 プライマリ/セカンダリIPv4アドレス
-
プライマリIPv4アドレス
ENIを作成すると自動で付与されるメインのIPアドレス
EC2がこのIPを通して通信する。 -
セカンダリIPv4アドレス
必要に応じて追加できるサブのIPアドレス
1台のインスタンスで複数のサービスを動かしたいときに便利。
🍎 IPv6アドレス
- ENIにIPv6アドレスを割り当てることも可能
- グローバルユニークのため、インターネットに直接公開したい場合に使われる。
🎫 MACアドレス
- ENIごとに自動的に割り当てられる物理NICと同じ役割を持つ識別子。
- 「ネットワークカードを区別するための番号」で、ユーザーが変更することはできない。
🍀 セキュリティグループの関連付け
- ENIに直接セキュリティグループ(仮想ファイアウォール)を関連付けできる。
- 例えば、「22番ポートは閉じる」「80番ポートだけ開ける」といった通信制御のルールをENI単位で設定可能。
🧩 Elastic IPの割り当て
- ENIに固定のグローバルIP(Elastic IP)を割り当て可能。
- 通常のパブリックIPはインスタンスを再起動すると変わってしまうが、Elastic IPを使えば固定IPでアクセス可能。
ENIの種類
🔷 プライマリ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
- 最大ENI:2
- ENIあたりのIP:2
- 合計IP数:4
c5.18xlarge
- 最大ENI:15
- ENIあたりIP:50
- 合計IP数:750
インスタンスタイプに依存する理由
ENIやIPの数は、インスタンスの仮想ハードウェア性能(ネットワーク帯域やNIC数)に依存している
つまり「小さいマシンにNICをたくさん差す」ことはできないという制約
まとめ
ENI(Elastic Network Interface)は、EC2にネットワークを繋ぐための仮想NIC。IPアドレスやセキュリティグループを持ち、追加・付け替えで柔軟な設計が可能。
高可用性や複数ネットワークの利用に役立つが、数やIPにはインスタンスタイプごとの制限あり。
Discussion