訳あって一つのインスタンスにつっこんでいる複数のWebサイトをあるルールに則っていくつかのIPアドレスに分ける必要が出てきました。取り急ぎポコポコとインスタンスを作って対応しました。管理者からインスタンスのコンソール画面から複数のIPアドレスが設定できるらしいよと、ぼんやりとしたアドバイスを頼りにしらべると、Elastic Network Interface という単語にたどり着きました。あー、仮想でNICを追加できるのね。アドバイスとしては不適切な内容だと思いました。
Elastic Network Interface
- 仮想NICに近しいものです。ENIはセキュリティグループやIPアドレスを属性にもつ仮想のネットワークインターフェースとなります。ENIの定義
- 一つのインスタンスに対して使用できるENI、一つのENIに設定できるIPアドレスの上限はインスタンスタイプによって変わってきます。EC2のヘルプ
つまり…。
- インスタンス作成時にENIはかならず一つ設定されています。このENI指定されてるIPアドレスをプライマリプライベートIPと呼びます。
- 追加で作成したENIのIPアドレスはセカンダリプライベートIPと呼びます。3つめは追加したことがないので判りません。
インスタンスにIPアドレスを追加する方法
ここではENIにIPアドレスを追加するのではなく、ENIを新たに作成してインスタンスに追加する方法をとります。
セキュリティグループの作成
セキュリティグループを作成することによりENIを作成します(セキュリティグループ=ENI)
- EC2コンソール画面 -> ネットワーク & セキュリティ -> セキュリティグループ 画面を開きます。
- 「セキュリティグループの作成」をクリックし、適当な情報を入力します。
パブリックIPとの紐付け
目的としては公開しているインスタンスに複数のIPアドレスを追加したい、ということなのでパブリックIPと紐付ける必要があります。
- EC2コンソール画面 -> ネットワーク & セキュリティ -> Elastic IP 画面を開きます。
- 「新しいアドレスの割り当て」をクリックし、Elastic IPを作成します。
- 作成したElastic IPを選択し、アクションから「アドレスの関連づけ」を選択します。
- ネットワークインターフェースに先ほど作成したセキュリティグループを指定します。
インスタンスへのENIのアタッチ
- EC2コンソール画面 -> インスタンス -> インスタンス 画面を開きます。
- ENIを追加するインスタンスを選択し、アクションから「ネットワーキング」->「ネットワークのアタッチ」を選択します。
- ネットワークインターフェースに先ほど作成したネットワークインターフェースを指定します。
- 該当インスタンスの説明画面にネットワークインターフェースが追加されたことを確認します。
OSへの反映
ここまでは仮想NICをインスタンスに追加しただけですので、OSにて認識させます。メモ書き程度にLinuxでの方法を記載します。
-
eth-configxxの作成します。xxは環境により違うと思いますので、適宜ご自身の環境に合わせて下さい。
/etc/sysconfig/network-scripts/ifcfg-ethxxDEVICE=ethxx BOOTPROTO=static BROADCAST=xxx.xxx.xxx.xxx IPADDR=xxx.xxx.xxx.xxx NETMASK=255.255.255.0 NETWORK=xxx.xxx.xxx.xxx ONBOOT=yes
-
ネットワークの再起動を実施します。
-
コンソール上から、またはEC2のコンソールからIPアドレスが追加されたことを確認します。
まとめ
ENIをつかうということがわかれば難しいことではありませんでした。ただ、アドバイスが不適切だと目的に近づくのに時間がかかるということが判りました。人にアドバイスを与える場合はある程度理解してから実施しようと思います。