🌀

【入門】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