実施環境
Microsoft Edge 124.0.2478.67 (64bit)
0. 概要
EC2 のインスタンスのパブリック IPv4 アドレスは、インスタンスを停止して再び起動すると変わってしまう場合があります。
個人利用であればそれでも問題ないかもしれませんが、 Web サーバーとして公開したい場合などは接続先が変わってしまうと困ることもあるでしょう。
そのような場合に対応できるように、 AWS には「 Elastic IP アドレス」というものがあります。
Elastic IP アドレスはパブリック IPv4 アドレスの一種ですが、通常のパブリック IPv4 アドレスと異なりアカウントに対して割り当てられ、勝手に変更されることはありません。
今回はこの「 Elastic IP アドレス」を用いて、 EC2 の Linux インスタンスに対し固定のパブリック IPv4 アドレスを関連付けてみます。
Elastic IP アドレスはあくまで IP アドレスです。
Elastic IP アドレスを使えばドメイン名も固定はされますが、ドメイン名自体を自由に決められるわけではありません。
ドメイン名を自由に決めたりするには、「 Route 53 」というサービスを利用します。
なお、 Route 53 に無料枠はありません。
なお、最新の手順は以下を参照してください。
1. Elastic IP アドレス割り当て
まずは、 Elastic IP アドレスをアカウントに割り当てます。
EC2 のページで左側のメニューを開き、「ネットワーク & セキュリティ」⇒「 Elastic IP 」をクリックします。
Elastic IP アドレスの一覧画面が開くので、「 Elastic IP アドレスを割り当てる 」をクリックします。
「ネットワークボーダーグループ」が現在選択しているリージョンであることを確認します。
「パブリック IPv4 アドレスプール」は「 Amazon の IPv4 アドレスプール」にチェックを入れましょう。
タグなどは一旦設定しなくて大丈夫です。
「割り当て」をクリックします。
正しく割り当てできれば、以下のようなメッセージが表示されます。
Elastic IP アドレスの一覧に先ほど割り当てた IP アドレスが表示されているはずです。
2. インスタンス関連付け
それでは早速、割り当てた Elastic IP アドレスを EC2 インスタンスに関連付けます。
先ほど割り当てた Elastic IP アドレスにチェックを入れ、「アクション」⇒「 Elastic IP アドレスの関連付け」を選択します。
「リソースタイプ」は「インスタンス」にチェックを入れます。
Elastic IP アドレスを関連づけたい EC2 のインスタンスを選択します。
他の設定はとりあえずデフォルトでも大丈夫です。
「関連付ける」をクリックします。
正常に関連付けできれば、以下のようなメッセージが表示されます。
「関連付けられたインスタンス」に関連付けたインスタンスが表示されているはずです。
3. 関連付けの確認
インスタンス側からも Elastic IP アドレスが関連付けられていることを確認してみましょう。
左側のメニューから「インスタンス」⇒「インスタンス」を選択し、インスタンス一覧画面に移動します。
Elastic IP アドレスを関連付けたインスタンスを選択します。
「詳細」タブから「パブリック IPv4 アドレス」を確認すると、先ほど割り当てた Elastic IP アドレスが関連付けられていることがわかります。
なお、この時点で「パブリック IPv4 DNS 」に表示されるドメイン名も固定となります。
試しに上記で確認できるドメイン名を用いて SSH 接続してみます。
PS E:\work\aws> ssh -i E:\work\aws\TEST_KEY.pem ec2-user@***
The authenticity of host '***' can't be established.
ECDSA key fingerprint is SHA256:***.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '***' (ECDSA) to the list of known hosts.
, #_
~\_ ####_ Amazon Linux 2
~~ \_#####\
~~ \###| AL2 End of Life is 2025-06-30.
~~ \#/ ___
~~ V~' '->
~~~ / A newer version of Amazon Linux is available!
~~._. _/
_/ _/ Amazon Linux 2023, GA and supported until 2028-03-15.
_/m/' https://aws.amazon.com/linux/amazon-linux-2023/
[ec2-user@*** ~]$
問題なく接続できました。
IP アドレスが固定されていることを確認するため、一旦インスタンスを停止し、その後起動してみます。
「詳細」タブを見ると、「パブリック IPv4 アドレス」「パブリック IPv4 DNS 」のどちらも変わっていないことが確認できます。
もちろん、 SSH もきちんと通ります。
PS E:\work\aws> ssh -i E:\work\aws\TEST_KEY.pem ec2-user@***
, #_
~\_ ####_ Amazon Linux 2
~~ \_#####\
~~ \###| AL2 End of Life is 2025-06-30.
~~ \#/ ___
~~ V~' '->
~~~ / A newer version of Amazon Linux is available!
~~._. _/
_/ _/ Amazon Linux 2023, GA and supported until 2028-03-15.
_/m/' https://aws.amazon.com/linux/amazon-linux-2023/
[ec2-user@*** ~]$
4. インスタンス関連付け解除
Elastic IP アドレスと EC2 インスタンスの関連付けを解除するには、 Elastic IP アドレス一覧で解除したい Elastic IP アドレスにチェックを入れ、「アクション」⇒「 Elastic IP アドレスの関連付けの解除」を選択します。
解除対象が正しいことを確認して「関連付け解除」をクリックします。
正常に解除できれば、以下のようなメッセージが表示されます。
「関連付けられたインスタンス」からインスタンスが消えているはずです。
インスタンス側からも、「詳細」タブの「パブリック IPv4 アドレス」を見ると割り当てた Elastic IP アドレスとは異なるアドレスになっていることが確認できます。
5. Elastic IP アドレス解放
Elastic IP アドレスをアカウントから解放して利用を完全に終了するには、解放したい Elastic IP アドレスにチェックを入れて「アクション」⇒「 Elastic IP アドレスの解放」を選択します。
解放対象に間違いないことを確認して「解放」をクリックします。
正常に開放できれば以下のようなメッセージが表示されます。
解放した Elastic IP アドレスが一覧から無くなっていることが確認できるはずです。