EC2で複数IP設定する

AWSのENIと呼ばれる仮想ネットワークインターフェイスを追加することができます。
これにより複数のIPを保持することができます。
デフォルトでSNI対応していないIE向けのSSLページを作る場合等、依然として複数IPが必要なケースがあります。

複数のIP設定をする場合の注意点はパケットを受信したインターフェイスから応答をしなければいけないということです。

図にするとこんな感じ

普通にIP設定するとこうなります。

こうしないと駄目です。

なので、/etc/network/interfacesは以下のように設定しましょう

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 172.16.0.93
netmask 255.255.255.0
ip2-table 1010
ip2-net 172.16.0.0/24
ip2-gateway 172.16.0.1
post-up ip route flush table $IF_IP2_TABLE
post-up ip route add table $IF_IP2_TABLE to $IF_IP2_NET dev $IFACE
post-up ip route add table $IF_IP2_TABLE to default via $IF_IP2_GATEWAY dev $IFACE
post-up ip rule add from $IF_ADDRESS table $IF_IP2_TABLE priority $IF_IP2_TABLE
post-down ip rule del from $IF_ADDRESS

あと注意する点としてInstance Typeごとに設定できるIPが決まっています。
Instance Typeの変更をする場合は変更後のIP数の上限を超えないように設定しないとInstance Typeの変更ができなくなるので注意してください。

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

yamasita

東京電機大学工学部→3年間某SIerにて銀行システムの開発→bpsに入社

yamasitaの書いた記事

インフラ
現場で使うansible

2014年12月25日

インフラ
検証環境の作り方

2014年08月14日

週刊Railsウォッチ

インフラ

Rubyスタイルガイドを読む

BigBinary記事より

ActiveSupport探訪シリーズ