はじめに
この記事の目標は、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
手順
- Elastic Network Interfaceを作成する
- セカンダリプライベート IPアドレスを割り当てる
- Elastic IPを割り当て
なお、インスタンスが作成される時にENIが1つ作成されるので、ENIに空きがあれば1.は必要ありません。
また、ENIを複数作成した場合、2.は必要はありません。
つまりどういうことかと言うと例えば合計2つのElastic IPが必要な場合、
- 新規ENIを作成し、そのENIのプライマリIPに対してElastic IPを割り当てる(手順1と3)
- 既存のENIにセカンダリプライベート IPアドレスを割り当て、セカンダリプライベート IPアドレスに対してElastic IPを割り当てる(手順2と3)
上記2つのパターンがあります。
今回は複数のENI、またENIそれぞれに複数のIPを設定できるように手順を書いていくのでご自身の環境に合わせて適宜組み合わせてください。
1.Elastic Network Interfaceを作成する
Amazon EC2 コンソールを開き、左ペインの「ネットワークインターフェイス」をクリックする。
画面上の「ネットワークインターフェイスの作成」をクリックする。
ポップアップウィンドウが出るので、サブネットの選択をする。
サブネットってひとつのネットワークを細かくわける仕組みなので、初回であればどっちでもいいと思います。ここでは「172.31.0.0/20」の方を選択しています。
次にセキュリティグループを選択しますが、網元でWordPressを使用する予定なので「WordPress powered by AMIMOTO」を選択します。使用しない場合は個別にセキュリティグループを選択してください。
取り付けるインスタンスを選択します。選択したら「アタッチ」をクリックする。
すると空欄だったインスタンスIDの欄に今選択したインスタンスIDが表示されます。
インスタンスのページを確認すると、ネットワークインターフェイスの欄に「eth1」が追加されています。
(「eth0」はインスタンス作成時に自動で付属しています。)
2.セカンダリプライベート IPアドレスを割り当てる
Amazon EC2 コンソールを開き、左ペインの「ネットワークインターフェイス」をクリックする。
セカンダリプライベートIPを追加したいENIを選択して「アクション」をクリックする。
「プライベートIPアドレスの管理」をクリックする。
ポップアップが出てくるので、「新しいIPの割り当て」をクリックする。
すると1行追加されるので、「更新する」をクリックする。
プライベートIPが追加されているのを確認したらウィンドウを閉じる。
戻るとセカンダリプライベートIPが追加されています。
セカンダリプライベートIPの追加は以上です。
もっと多くのセカンダリプライベートIPが追加できるインスタンスの場合は「プライベートIPアドレスの管理」画面で「新しいIPの割り当て」を連打すればたくさん追加できます。
3.Elastic IPを割り当て
まず新しいアドレスを割り当てます。
Amazon EC2 コンソールを開き、左ペインの「Elastic IP」をクリックすし、画面上部の「新しいアドレスの割り当て」をクリックする。
新しいIPアドレスが表示されるので確認した後に閉じる。
新しいElastic IPが追加されました。
次はこのアドレスをプライベートIPアドレスに関連付けます。
新規作成したアドレスをチェックし、画面上部の「アクション」をクリック、そして「アドレスの関連付け」をクリックする。
これでプライベートIPアドレスとElastic IPアドレスが関連付けられました。
インスタンスのページを確認すると、「Elastic IP」の欄に2つアドレスが表示されています。
これで個別にドメインを紐づけることができます。
後は各自ドメインの設定を行ってください。
おわりに
あとは「このアドレスで接続して来たらこのページを見せる」って設定すればいいのでしょうか。
wp-setupで設定したせいか、その辺の設定をせずに見れている状態なので正直わかりません・・・。
ネスペの勉強すればわかるようになるんでしょうか。その辺詳しい方にご教授願いたいですね。
間違っているところ等指摘があればコメントや何かでお願いします。
参考
Elastic Network Interface(ENI) - AWS
Elastic IP アドレス - AWS
VPC内のEC2インスタンスに複数IPアドレスを割り当てる - Developers.IO
Amazon EC2編~複数IPを付けてみよう~ - ナレコムAWSレシピ