現在記事移行・修正中です

【AWS】インスタンスに複数のElastic IPを設定する方法

はじめに

この記事の目標は、1つのインスタンスに複数のElastic IPを付与することです。

 

つまり1つのインスタンスで複数の異なるドメインを使用したサイトを運営できるということですね。

もちろんサブディレクトリ型だったりサブドメイン型で異なるテーマのサイトを運営すればこのような面倒なことはしなくて良いのですが、新しいインスタンスを借りる程の規模ではないんだけどドメイン分けてやりたい、なんて時にどうぞ。

【2016/8/4現在の画面、方法です。AWSの仕様変更等があった場合は手順が変わる場合があります。】

 

 

概要

Elastic Network Interface(以下、ENI)には作成した時点でプライマリIPが付与されています。

ひとつのENIにはインスタンスタイプによって複数のプライベートIPアドレスを使用できます。

プライベートIPアドレスがいくつあっても外部からは参照できませんが、すごく単純に言うと、プライベートIPアドレス1つに対して1つのElastic IPを付与することができ、外部から参照することができます。

これを利用して複数のElastic IPに対してそれぞれ異なるドメインを紐づければいくつもインスタンスを作成する必要がなく、お金を節約できるというわけですね。もちろん処理できる範囲内に限りますが。

(なんでそうなのか、といった事が説明できず申し訳ないです。勉強したいのでそこんとこ解説しているサイトや書籍等あれば紹介してください)

 

ちなみにElastic IPをいくつ付与できるかはインスタンスタイプによって異なります。

例えば私が使っているt2.microではENI の最大数が2、使用できるIPがENIひとつにつき2つなので最大4つ設定することができます。

x1.32xlargeはENIが8つまで、使用できるIPがENIひとつにつき30個までの合計240個プライベートIPアドレスを使用することができます。ちなみに利用料金は$13.338 /1 時間です。1カ月当たり約97万円ですね。やべぇ。

参考:Elastic Network Interface(ENI)-AWS

 

手順

  1. Elastic Network Interfaceを作成する
  2. セカンダリプライベート IPアドレスを割り当てる
  3. Elastic IPを割り当て

なお、インスタンスが作成される時にENIが1つ作成されるので、ENIに空きがあれば1.は必要ありません。

また、ENIを複数作成した場合、2.は必要はありません。

つまりどういうことかと言うと例えば合計2つのElastic IPが必要な場合、

  1. 新規ENIを作成し、そのENIのプライマリIPに対してElastic IPを割り当てる(手順1と3)
  2. 既存のENIにセカンダリプライベート IPアドレスを割り当て、セカンダリプライベート IPアドレスに対してElastic IPを割り当てる(手順2と3)

上記2つのパターンがあります。

今回は複数のENI、またENIそれぞれに複数のIPを設定できるように手順を書いていくのでご自身の環境に合わせて適宜組み合わせてください。

 

1.Elastic Network Interfaceを作成する

Amazon EC2 コンソールを開き、左ペインの「ネットワークインターフェイス」をクリックする。

画面上の「ネットワークインターフェイスの作成」をクリックする。

スクリーンショット_2016-08-03_18_34_11.png

ポップアップウィンドウが出るので、サブネットの選択をする。

サブネットってひとつのネットワークを細かくわける仕組みなので、初回であればどっちでもいいと思います。ここでは「172.31.0.0/20」の方を選択しています。

スクリーンショット_2016-08-03_18_34_27.png

次にセキュリティグループを選択しますが、網元でWordPressを使用する予定なので「WordPress powered by AMIMOTO」を選択します。使用しない場合は個別にセキュリティグループを選択してください。

スクリーンショット_2016-08-03_18_34_35.png
選択したら「作成する」をクリックする。
するとネットワークインターフェイスのページに1行追加されます。スクリーンショット_2016-08-03_18_34_57.png
この時点ではインスタンスID、パブリックIPの欄が空白で、ステータスが「available」になっています。
次に作成したネットワークインターフェイスをインスタンスにアタッチします。アタッチは直訳すると「取り付ける」だそうです。サーバ機にNICを刺す感じでしょうか。
まず作成したネットワークインターフェイスのチェックボックスをクリックし、画面上部の「アタッチ」をクリックする。
スクリーンショット_2016-08-03_18_35_19.png

取り付けるインスタンスを選択します。選択したら「アタッチ」をクリックする。

スクリーンショット_2016-08-03_18_35_27.png

すると空欄だったインスタンスIDの欄に今選択したインスタンスIDが表示されます。

スクリーンショット_2016-08-03_18_36_11.png

インスタンスのページを確認すると、ネットワークインターフェイスの欄に「eth1」が追加されています。

(「eth0」はインスタンス作成時に自動で付属しています。)

スクリーンショット_2016-08-03_18_36_25.png
ネットワークインターフェイスの作成は以上です。
 

2.セカンダリプライベート IPアドレスを割り当てる

Amazon EC2 コンソールを開き、左ペインの「ネットワークインターフェイス」をクリックする。

セカンダリプライベートIPを追加したいENIを選択して「アクション」をクリックする。

スクリーンショット_2016-08-01_23_43_14.png

「プライベートIPアドレスの管理」をクリックする。

スクリーンショット_2016-08-01_23_43_38.png

ポップアップが出てくるので、「新しいIPの割り当て」をクリックする。

スクリーンショット_2016-08-01_23_44_15.png

すると1行追加されるので、「更新する」をクリックする。

スクリーンショット_2016-08-01_23_44_41.png

プライベートIPが追加されているのを確認したらウィンドウを閉じる。

スクリーンショット_2016-08-01_23_44_54.png

戻るとセカンダリプライベートIPが追加されています。

スクリーンショット_2016-08-01_23_45_09.png

セカンダリプライベートIPの追加は以上です。

もっと多くのセカンダリプライベートIPが追加できるインスタンスの場合は「プライベートIPアドレスの管理」画面で「新しいIPの割り当て」を連打すればたくさん追加できます。

 

3.Elastic IPを割り当て

まず新しいアドレスを割り当てます。

Amazon EC2 コンソールを開き、左ペインの「Elastic IP」をクリックすし、画面上部の「新しいアドレスの割り当て」をクリックする。

スクリーンショット_2016-08-01_23_45_30.png
ポップアップが表示されるので、「関連付ける」をクリックする。
スクリーンショット_2016-08-01_23_46_00.png

新しいIPアドレスが表示されるので確認した後に閉じる。

スクリーンショット_2016-08-01_23_46_22.png

新しいElastic IPが追加されました。

スクリーンショット_2016-08-01_23_46_31.png

次はこのアドレスをプライベートIPアドレスに関連付けます。

新規作成したアドレスをチェックし、画面上部の「アクション」をクリック、そして「アドレスの関連付け」をクリックする。

スクリーンショット_2016-08-01_23_46_48.png
ポップアップが表示されるので、以下のように入力します。
ネットワークインターフェイスIDを入力する欄ではクリックすると候補が表示されるので、先ほどセカンダリプライベートIPを追加したENIを選択してください。わからない場合はネットワークインターフェイスのページに記載されています。
入力したら「関連付ける」をクリックする。
スクリーンショット_2016-08-01_23_51_24.png

これでプライベートIPアドレスとElastic IPアドレスが関連付けられました。

スクリーンショット_2016-08-01_23_51_32.png

インスタンスのページを確認すると、「Elastic IP」の欄に2つアドレスが表示されています。

スクリーンショット_2016-08-01_23_52_06.png

これで個別にドメインを紐づけることができます。

 

後は各自ドメインの設定を行ってください。

スクリーンショット_2016-08-01_23_55_35.png
Elastic IPの割り当ては以上です。
これで複数のIPアドレスを設定して、それぞれにドメイン割り振ることができるようになりました。
 

おわりに

あとは「このアドレスで接続して来たらこのページを見せる」って設定すればいいのでしょうか。
wp-setupで設定したせいか、その辺の設定をせずに見れている状態なので正直わかりません・・・。
ネスペの勉強すればわかるようになるんでしょうか。その辺詳しい方にご教授願いたいですね。
間違っているところ等指摘があればコメントや何かでお願いします。
 

参考

Elastic Network Interface(ENI) - AWS

Elastic IP アドレス - AWS

VPC内のEC2インスタンスに複数IPアドレスを割り当てる - Developers.IO

Amazon EC2編~複数IPを付けてみよう~ - ナレコムAWSレシピ