はじめに
こんにちは!BFT名古屋支店のうどんです。
最近気温も暖かくなり、春の訪れを間近に感じるようになりました。
花粉症にも悩まされないので春は本当に好きです。
今回はENIとEIPについて初心者向けにざっくりとまとめてみました。 この二つを理解するのにかな~~り時間がかかったので、困っている方の助けになれば幸いです。
ENIとEIPについて話す前に、まずはIPアドレスについて知っておいてほしいことをまとめました。
既に知ってるよ~という方は読み飛ばしてOKです!
【IPアドレスについて①】
まずIPアドレスは、以下二つに分けられます。
・プライベートIPアドレス
それぞれ説明していきます。
一つ目のグローバルIPアドレスは、ネットワークに接続する機器に割り当てられるIPアドレスです。
インターネットに接続する際に必要なIPアドレスです。
二つ目のプライベートIPアドレスは、ローカルネットワーク内の機器に割り振られるIPアドレスです。
言い換えると、インターネットに直接接続する必要のない機器に割り当てられるIPアドレスです。
図にするとこんな感じです。
ざっくりと、
・グローバルIPアドレスは、インターネットに接続する機器に割り当てられるもの
・プライベートIPアドレスは、インターネットに接続しない機器に割り当てられるもの
というイメージを持てれば、ここではOKです!
【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アドレスを固定するために、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初心者の方、一緒に頑張りましょう~!