【図解】AWSのENI(Elastic Network Interface)を理解する
はじめに
AWSにはENIというネットワークに関するサービスがありますが、どのようなものなのか理解しづらいため、内容をまとめます。
今回の記事で理解できること
- ENIの概要や必要性
- ENIの制約事項
ENIとは何か?
ENI(Elastic Network Interface)は、AWSのVPC(仮想プライベートクラウド)内で動作するEC2インスタンスの「仮想ネットワークカード(NIC)」です。
物理的なPCにLANケーブルを差し込むことでネットワークに接続するのと同じように、EC2インスタンスがVPCという仮想ネットワークと通信するためには、ENIという「通信の差し込み口」が不可欠です。
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ごとに自動的に割り当てられる物理NICと同じ役割を持つ識別子。
「ネットワークカードを区別するための番号」で、ユーザーが変更することはできません。
セキュリティグループの関連付け
ENIに直接セキュリティグループ(仮想ファイアウォール)を関連付け可能。
例えば、「22番ポートは閉じる」「80番ポートだけ開ける」といった通信制御のルールをENI単位で設定可能です。
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