アクセス先のIPアドレスを固定したいため、同一AZのEC2への通信もEIPをつけて、 そのEIPのPublic IPに対して行いたいと思うことはあると思います。

そもそも、同一AZのEC2間はPrivate IPに対しての通信なら無料ですが、EIPなどの Public IPに対して場合、下記のように課金されてしまいます。

Amazon EC2 (仮想サーバー Amazon Elastic Compute Cloud) – 料金体系

Amazon Web Services Simple Monthly Calculator

つまり同一AZのEC2でもEIPにアクセスすると、データ転送料1GB(in/out)当たり $0.01かかることになります。

また、ネットワークパフォーマンスに関しても確認してみました。

まずはpingです。

Private IPに対しては下記の通りです。

# ping 10.146.82.86
PING 10.146.82.86 (10.146.82.86) 56(84) bytes of data.
64 bytes from 10.146.82.86: icmp_seq=1 ttl=64 time=0.303 ms
64 bytes from 10.146.82.86: icmp_seq=2 ttl=64 time=0.492 ms
64 bytes from 10.146.82.86: icmp_seq=3 ttl=64 time=0.350 ms
64 bytes from 10.146.82.86: icmp_seq=4 ttl=64 time=0.493 ms
64 bytes from 10.146.82.86: icmp_seq=5 ttl=64 time=0.561 ms
^C
--- 10.146.82.86 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4459ms
rtt min/avg/max/mdev = 0.303/0.439/0.561/0.100 ms

Public IPに対しては下記の通りです。

# ping 54.248.226.255
PING 54.248.226.255 (54.248.226.255) 56(84) bytes of data.
64 bytes from 54.248.226.255: icmp_seq=1 ttl=59 time=0.993 ms
64 bytes from 54.248.226.255: icmp_seq=2 ttl=59 time=1.02 ms
64 bytes from 54.248.226.255: icmp_seq=3 ttl=59 time=0.973 ms
64 bytes from 54.248.226.255: icmp_seq=4 ttl=59 time=1.77 ms
64 bytes from 54.248.226.255: icmp_seq=5 ttl=59 time=1.21 ms
^C
--- 54.248.226.255 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4884ms
rtt min/avg/max/mdev = 0.973/1.196/1.777/0.305 ms

当然ですが”Private IP”へのアクセスのほうが、”Public IP”へのアクセスより速くなってます。

次はtracerouteです。

Private IPに対しては下記の通りです。

# traceroute 10.146.82.86
traceroute to 10.146.82.86 (10.146.82.86), 30 hops max, 60 byte packets
1 ip-10-146-82-86.ap-northeast-1.compute.internal (10.146.82.86) 2.023 ms 1.971 ms 1.910 ms

Public IPに対しては下記の通りです。

# traceroute 54.248.226.255
traceroute to 54.248.226.255 (54.248.226.255), 30 hops max, 60 byte packets
1 ip-10-146-80-2.ap-northeast-1.compute.internal (10.146.80.2) 0.314 ms 0.383 ms 0.480 ms
2 ip-10-1-24-1.ap-northeast-1.compute.internal (10.1.24.1) 0.447 ms ip-10-1-22-1.ap-northeast-1.compute.internal (10.1.22.1) 0.300 ms ip-10-1-24-1.ap-northeast-1.compute.internal (10.1.24.1) 0.428 ms
3 ec2-175-41-192-21.ap-northeast-1.compute.amazonaws.com (175.41.192.21) 4.789 ms ec2-175-41-192-27.ap-northeast-1.compute.amazonaws.com (175.41.192.27) 0.472 ms 0.517 ms
4 ec2-175-41-192-26.ap-northeast-1.compute.amazonaws.com (175.41.192.26) 1.115 ms ec2-175-41-192-20.ap-northeast-1.compute.amazonaws.com (175.41.192.20) 0.776 ms 0.963 ms
5 * * *
6 ec2-54-248-226-255.ap-northeast-1.compute.amazonaws.com (54.248.226.255) 1.015 ms 0.975 ms 0.978 ms

当然ですが”Private IP”へのアクセスのほうが、Public IPへのアクセスよりホップ数が少なくなってます。

最後にtracepathです。(tracerouteと同じですが)

Private IPに対しては下記の通りです。

# tracepath 10.146.82.86
1: ip-10-146-83-8.ap-northeast-1.compute.internal (10.146.83.8) 0.134ms pmtu 1500
1: ip-10-146-82-86.ap-northeast-1.compute.internal (10.146.82.86) 0.505ms reached
1: ip-10-146-82-86.ap-northeast-1.compute.internal (10.146.82.86) 0.285ms reached
Resume: pmtu 1500 hops 1 back 64

Public IPに対しては下記の通りです。

# tracepath 54.248.226.255
1: ip-10-146-83-8.ap-northeast-1.compute.internal (10.146.83.8) 0.132ms pmtu 1500
1: ip-10-146-80-2.ap-northeast-1.compute.internal (10.146.80.2) 8.652ms asymm 2
1: ip-10-146-80-2.ap-northeast-1.compute.internal (10.146.80.2) 0.326ms asymm 2
2: ip-10-1-24-1.ap-northeast-1.compute.internal (10.1.24.1) 0.402ms
3: ec2-175-41-192-21.ap-northeast-1.compute.amazonaws.com (175.41.192.21) 0.549ms
4: ec2-175-41-192-20.ap-northeast-1.compute.amazonaws.com (175.41.192.20) 1.158ms
5: no reply
6: ec2-54-248-226-255.ap-northeast-1.compute.amazonaws.com (54.248.226.255) 1.121ms reached
Resume: pmtu 1500 hops 6 back 59

当然tracerouteと同様の結果になっています。

ということでPublic IPにアクセスするか、Private IPにアクセスするかは、 IPアドレスの固定化(運用効率)を優先するか、コストとパフォーマンス優先するか、 ということでの判断になるのか、と思います。

同一AZのEC2は、Private IP宛にしかアクセスさせたこと無いけど・・・

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら