【AWS】EC2インスタンスタイプごとの最大のENIやIPアドレスの数
EKS(Kubernetes)を触っていると、EC2 で立てているノードの IP アドレス管理も気になってきます。
1 つのノードで、どのくらいの pod を動かすのか、主に CPU やメモリなどのリソース中心で考えてしまいますが、割り振れる IP アドレスの数も重要ですよね。
ということで、EC2 のインスタンスタイプごとに、以下の情報を調べてみました。
・最大の ENI の数
・1 つの ENI ごとの IP アドレスの数
ENI(ネットワークインタフェース)
ENI の情報は awc cli を使えばすぐにわかります。
You can use the describe-instance-types AWS CLI command to display information about an instance type, such as its supported network interfaces and IP addresses per interface. The following example displays this information for all C5 instances.
To retrieve network interface information using the AWS CLI
例えば、r5 系のインスタンスの場合は以下の通り。
$ aws ec2 describe-instance-types --filters "Name=instance-type,Values=r5.*" --query "InstanceTypes[].{Type: InstanceType, MaxENI: NetworkInfo.MaximumNetworkInterfaces, IPv4addr: NetworkInfo.Ipv4AddressesPerInterface}" --output table
結果は以下の通り。
(2024 年 5 月 31 日現在)
---------------------------------------
| DescribeInstanceTypes |
+----------+----------+---------------+
| IPv4addr | MaxENI | Type |
+----------+----------+---------------+
| 50 | 15 | r5.24xlarge |
| 10 | 3 | r5.large |
| 30 | 8 | r5.4xlarge |
| 50 | 15 | r5.metal |
| 50 | 15 | r5.16xlarge |
| 30 | 8 | r5.8xlarge |
| 15 | 4 | r5.xlarge |
| 15 | 4 | r5.2xlarge |
| 30 | 8 | r5.12xlarge |
+----------+----------+---------------+
r5.xlarge の場合は、ENI が最大で 4 つ、ENI が追加されるごとに 15 個の IP アドレスが追加される計算になります。
やはり t3 系の小さなインスタンスタイプだと少ないですね。
$ aws ec2 describe-instance-types --filters "Name=instance-type,Values=t3.*" --query "InstanceTypes[].{Type: InstanceType, MaxENI: NetworkInfo.MaximumNetworkInterfaces, IPv4addr: NetworkInfo.Ipv4AddressesPerInterface}" --output table
--------------------------------------
| DescribeInstanceTypes |
+----------+----------+--------------+
| IPv4addr | MaxENI | Type |
+----------+----------+--------------+
| 15 | 4 | t3.2xlarge |
| 15 | 4 | t3.xlarge |
| 12 | 3 | t3.large |
| 6 | 3 | t3.medium |
| 2 | 2 | t3.nano |
| 2 | 2 | t3.micro |
| 4 | 3 | t3.small |
+----------+----------+--------------+
ノードのIPアドレス設定
EKS のノードの場合、起動時に割り振られる IP アドレスの数は、aws-node の以下の環境変数によって状態が異なります。
WARM_ENI_TARGET
WARM_IP_TARGET
MINIMUM_IP_TARGET
なお、WARM_IP_TARGET が設定されている場合は、WARM_ENI_TARGET の設定が無効になるので WARM_IP_TARGET の扱いには注意が必要です。
このあたりの説明は以下の記事に詳しく書かれています。
なるべく IP アドレスを節約したい場合は、WARM_IP_TARGET を設定するといいですね。