BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【AWS】初心者向け!EIPとENIについてまとめてみた

はじめに


こんにちは!BFT名古屋支店のうどんです。

最近気温も暖かくなり、春の訪れを間近に感じるようになりました。

花粉症にも悩まされないので春は本当に好きです。

今回はENIとEIPについて初心者向けにざっくりとまとめてみました。 この二つを理解するのにかな~~り時間がかかったので、困っている方の助けになれば幸いです。





ENIとEIPについて話す前に、まずはIPアドレスについて知っておいてほしいことをまとめました。

既に知ってるよ~という方は読み飛ばしてOKです!


IPアドレスについて①】

まずIPアドレスは、以下二つに分けられます。


グローバルIPアドレス

・プライベートIPアドレス


それぞれ説明していきます。

一つ目のグローバルIPアドレスは、ネットワークに接続する機器に割り当てられるIPアドレスです。

インターネットに接続する際に必要なIPアドレスです。


二つ目のプライベートIPアドレスは、ローカルネットワーク内の機器に割り振られるIPアドレスです。

言い換えると、インターネットに直接接続する必要のない機器に割り当てられるIPアドレスです。

図にするとこんな感じです。



ざっくりと、

グローバルIPアドレスは、インターネットに接続する機器に割り当てられるもの

・プライベートIPアドレスは、インターネットに接続しない機器に割り当てられるもの

というイメージを持てれば、ここではOKです!


IPアドレスについて②】

IPアドレスは、IPv4IPv6に分けることができます。

IPv4IPv6の違いは、IPアドレスの長さです。

IPv4は32ビット、IPv6は128ビットで表現されます。

IPv4アドレスを使うことの方が多い印象です。


ここまでIPアドレスについて説明しました。

本題のEIP・ENIに入る前に、まずはAWSのEC2インスタンスIPアドレスについて少し解説させてください。


AWSのEC2インスタンスIPアドレスについて】

次にAWSのEC2インスタンスIPアドレスについて説明します。


①パブリックIPv4アドレス

パブリックIPv4アドレスは、「インターネットから到達可能なIPv4アドレス」です。

IPアドレスの種類で説明した「グローバルIPアドレス」に該当します。

EC2インスタンスとインターネット間で通信する際に、パブリックIPv4アドレスを使用できます。

つまり、「グローバルIPアドレス」と「IPv4アドレス」を組み合わせたIPアドレスですね。


②プライベートIPv4アドレス

プライベートIPv4アドレスとは、「インターネットから到達できないIPv4アドレス」です。

通信で使用できるのは、同じVPC内にあるインスタンス同士での通信になります。

IPアドレスの種類で説明した「プライベートIPアドレス」と「IPv4アドレス」の組み合わせたIPアドレスですね。

では、以上2点がどのように機能するのかをプライベートサブネットのEC2インスタンスがインターネットに接続する場合を例に説明していきます。


【 パブリックIPv4アドレスとプライベートIPv4アドレスの接続イメージ】


プライベートサブネットのEC2インスタンスがインターネットに接続する際の流れは以下になります。

 プライベートIPv4アドレス(EIP) →グローバルIPv4アドレス(ENI) →Internet gateway →internet

図にするとこんな感じになります。



ここでやっとEIPとENIが出てきました。

パブリックIPv4アドレスがEIP(Elastic IP address)にあたり、プライベートIPv4アドレスがENI(Elastic network interface)に該当します。

では、EIPとENIとは何かを説明していきます。


参考資料:Amazon EC2 インスタンスの IP アドレス指定 - Amazon Elastic Compute Cloud


【EIPについて】

EIPとは、EC2インスタンスに割り当てられる静的なパブリックIPアドレスのことです。

「静的な」ということは、固定で変わらないIPアドレスということなんですよね。

「パブリック」ということは、インターネットから接続可能ということになります。

またEIPには、IPv4アドレスが割り当てられます。

どうやらIPv6アドレスは、サポートがされておらず割り当てができないようです。


EIPのメリットは?


EIPを設定するメリットは、パブリックIPアドレスの固定ができるという点です。

EIPを使用しないパブリックIPアドレスは、EC2インスタンスを再起動する度にIPアドレスが変更します。

このようなIPアドレスを動的IPアドレスと言います。

ですが、インターネットからアクセスをする機器のIPアドレスがころころ変わったら困ってしまいますよね。

そこで、IPアドレスを固定するために、EIPを使うのです。

パブリックIPアドレスは無料ですが、EIPは有料になります。

参考資料:Elastic IP アドレス - Amazon Elastic Compute Cloud


【ENIについて】

ENI(Elastic Network Interface)は、EC2インスタンスに付与されるネットワークインターフェースです。

物理的な環境におけるNIC(Network Interface Card)にあたります。

NICはインターネットに接続する際に必要な部品であるため、ENIはインターネットに接続するために必要なものと考えましょう。

ENIが付与されることで、EC2インスタンスが複数のネットワークインターフェースを持つことができるようになります。

つまり、ENIによりEC2インスタンスに複数のIPアドレスを割り当てることが可能になります。

この割り当て可能なIPアドレスは、「パブリックIPアドレス」と「プライベートIPアドレス」の両者が該当します。


また、ENIの「プライベート IPv4 アドレス」とEIPである「パブリックIPv4アドレス」を関連付けることができます。


参考資料:Elastic Network Interface - Amazon Elastic Compute Cloud


以上を踏まえ、プライベートサブネットとパブリックサブネットにEC2インスタンスが存在する際のEIPとENIの関係を構成図にするとこんな感じになります。

EIPはインターネットへの接続の際に使われて、ENIは同じアベイラビリティゾーン内のEC2インスタンス同士で通信するときに使われます。

異なるサブネット同士のEC2インスタンスも、ENIを使って通信が可能です。


さいごに


EIPとENIについては以上になります。

名前も似ていてごっちゃになりやすいなと。。。

理解しておくと役立つことがあると思いますのでAWS初心者の方、一緒に頑張りましょう~!