はじめる前に
- 必須AWS アカウントを持っていること
- 必須マネジメントコンソールにサインインできること
- あると良いEC2 インスタンスを一度起動したことがある(今回は確認用に 1 台起動しますが、起動の流れを知っていると進めやすいです)
- あると良い「IP アドレス」がネットワーク上の住所のようなものだ、というイメージを持っている
- あると良い「パブリック IP」と「プライベート IP」という言葉を聞いたことがある(本文でも触れます)
※ このハンズオンは すべてコンソールだけで完結します。サーバーへのログイン(SSH)は使いません。アドレスが変わる/変わらないは、すべてコンソールの画面上で確認できます。
参照する公式ドキュメント
手順に迷ったときや、用語の意味を確かめたいときに開きましょう。
※ リンク切れの場合は、ページタイトルで検索してください。
背景・シナリオ
EC2 インスタンスを起動すると、インターネットからアクセスするためのパブリック IP アドレスが自動で割り当てられます。とても便利な仕組みですが、ひとつ落とし穴があります。サーバーを停止して起動し直すと、このパブリック IP アドレスは別のものに変わってしまうのです。
アドレスが変わると、ブラウザのお気に入りに登録した接続先や、誰かに伝えたアクセス先が、ある日突然つながらなくなってしまいます。そこで使うのが Elastic IP アドレスです。これは AWS が用意する「固定の public IPv4 アドレス」で、インスタンスに関連付けておくと、停止・起動を繰り返しても同じアドレスを使い続けられます。
どうして普通のパブリック IP は変わってしまうの?
自動で割り当てられるパブリック IP は、AWS が持つアドレスの「貸し出しプール」から、起動のたびに空いているものを一時的に借りる仕組みだからです。停止すると返却され、次の起動でまた別のものを借ります。Elastic IP は「自分専用に確保したアドレス」なので、返却されず変わりません。
確保しておくだけなら、ずっと無料で持っておけるの?
いいえ。Elastic IP は確保している間に料金がかかる仕組みです(詳しくは末尾のコスト注記で説明します)。「使う分だけ確保し、使い終わったら返す」のが基本になります。これも今回体験する大事なポイントです。
EC2 インスタンスに Elastic IP アドレスを関連付け、停止 → 起動を繰り返してもパブリック IP アドレスが変わらないことをコンソール上で確認する。最後に Elastic IP を正しく解放して片づける。
つくる構成
「Elastic IP なし」と「あり」で、停止 → 起動したときにパブリック IP アドレスがどうなるかを比べます。この違いを自分の手で再現するのが、このハンズオンの中心です。
自動割り当ての
パブリック IP のまま
固定アドレスを
関連付けた状態
※ 図の IP アドレスは例です。実際の値は、自分の環境で割り当てられたものになります。
要件
以下の流れで、「変わる」→「固定する」→「変わらない」を順に確認してください。
| No | 要件 |
|---|---|
| 1 | リージョンは「東京(ap-northeast-1)」を使用する。 |
| 2 | 確認用に EC2 インスタンスを 1 台起動する。AMI は Amazon Linux 2023(最新版でよい)、インスタンスタイプは無料利用枠の対象(例:t2.micro または t3.micro)。パブリックサブネットに置き、パブリック IP アドレスが割り当てられるようにする。名前タグは eip-demo(例)。 |
| 3 | Elastic IP を関連付ける前に、インスタンスを停止 → 起動し、パブリック IP アドレスが別の値に変わることを確認する。 |
| 4 | Elastic IP アドレスを 1 つ取得(割り当て)する。 |
| 5 | 取得した Elastic IP を、手順 2 の EC2 インスタンスに関連付ける。 |
| 6 | 関連付けたあとに、もう一度インスタンスを停止 → 起動し、パブリック IP アドレスが変わらないことを確認する。 |
構築の進め方
「先に変わることを確かめてから固定する」という順番が、このハンズオンの肝です。Elastic IP のありがたみは、変わる様子を一度見ておくと実感できます。
-
マネジメントコンソールにサインインし、リージョンを合わせる
ブラウザで AWS マネジメントコンソールにサインインします。画面右上のリージョン名をクリックして、「アジアパシフィック(東京)ap-northeast-1」になっていることを確認してください。
Elastic IP もリージョンごとElastic IP アドレスは、取得したリージョンの中でだけ使えます。インスタンスと同じリージョンで作業していることを最初にそろえておきましょう。
-
確認用の EC2 インスタンスを 1 台起動する
EC2 コンソールで「インスタンスを起動」を押し、名前に
eip-demo、AMI に Amazon Linux 2023、インスタンスタイプに無料利用枠の対象(例:t2.micro/t3.micro)を選びます。ネットワーク設定ではパブリックサブネット・パブリック IP の自動割り当てを有効にして起動します。今回は中に入らないこのハンズオンではサーバーにログインしません。キーペアは「キーペアなしで続行」でも構いません。セキュリティグループも初期値のままで大丈夫です(アドレスの変化はコンソールで見られます)。
-
いまのパブリック IP アドレスを控える
インスタンスの状態が「実行中(Running)」になったら、一覧で
eip-demoを選び、詳細画面の「パブリック IPv4 アドレス」の値をメモします(例:203.0.113.25)。これが「変わる前」の値です。パブリックとプライベートを取り違えない詳細画面には「プライベート IPv4 アドレス」も並んでいます。今回見るのはパブリックのほうです。プライベート IP は VPC 内部用のアドレスで、別の役割を持っています。
-
いったん停止して、起動し直す
eip-demoを選び、「インスタンスの状態」→「インスタンスを停止」を選びます。状態が「停止済み(Stopped)」になったら、今度は「インスタンスを開始」で起動し直します。「再起動」ではなく「停止 → 開始」OS の「再起動(Reboot)」ではアドレスは変わりません。アドレスが入れ替わるのは、AWS の視点で一度停止してから開始したときです。必ず「停止」→「開始」で操作しましょう。
-
パブリック IP アドレスが変わったことを確認する
もう一度、詳細画面の「パブリック IPv4 アドレス」を見ます。手順 3 で控えた値と違うアドレスに変わっているはずです(例:
203.0.113.25→18.182.xx.xx)。これが「Elastic IP なし」の状態です。ここがスタート地点この「勝手に変わってしまう」状態を一度見ておくことが大切です。次のステップから、これを固定していきます。
-
Elastic IP アドレスを取得(割り当て)する
EC2 コンソールの左メニュー「ネットワーク & セキュリティ」→「Elastic IP」を開き、「Elastic IP アドレスの割り当て」を押します。設定はほぼ既定のまま(ネットワークボーダーグループは東京リージョンのもの)で「割り当て」を押すと、新しい固定アドレスが 1 つ手に入ります。
「取得した」だけではまだ付いていない割り当てただけでは、アドレスは「手元に確保された」状態で、まだどのインスタンスにも結び付いていません。次の手順で関連付けて、はじめてサーバーのアドレスになります。
-
Elastic IP をインスタンスに関連付ける
取得した Elastic IP を選び、「アクション」→「Elastic IP アドレスの関連付け」を押します。リソースタイプで「インスタンス」を選び、
eip-demoを指定して「関連付ける」を押します。関連付けると元のアドレスは置き換わる関連付けると、インスタンスのパブリック IP アドレスが、この Elastic IP の値に切り替わります。以降、外からのアクセス先はこの固定アドレスになります。
-
もう一度、停止 → 起動して「変わらない」ことを確認する
手順 4 と同じように
eip-demoを停止 → 開始します。起動後に詳細画面の「パブリック IPv4 アドレス」を見ると、今度はElastic IP と同じ値のまま変わっていないはずです。これで固定できました。これがゴール停止・起動をしてもアドレスが動かない——この状態を確認できたら、このハンズオンの目的は達成です。忘れずに、最後の「後片づけ」まで進めましょう。
つまずきポイント
初学者がよく引っかかる箇所を先回りでまとめました。答えそのものは載せていませんが、「どこを見直せばよいか」の手がかりとして使ってください。
「Elastic IP を取得したのに、停止・起動でまだ変わる」
「取得した」だけで関連付けができていないときに起こりがちです。①Elastic IP の一覧で、その アドレスの「関連付けられたインスタンス ID」に eip-demo が表示されているか、②確認しているのがパブリック IPv4 アドレスか(プライベート IP と混同していないか)を見直しましょう。取得と関連付けは別の操作だ、という点がポイントです。
「Before の確認で、変わるはずのアドレスが変わらない」
OS の「再起動(Reboot)」で済ませていないか確認しましょう。アドレスが入れ替わるのは、AWS の操作として一度「停止(Stop)」し、そのあと「開始(Start)」したときです。状態が「停止済み」を経由しているか、操作のメニューを見直してみてください。
完了チェック
要件の再確認ではなく、画面のどこを見れば達成を確認できるかをまとめました。EC2 コンソールを開いて、次を順に確かめましょう。
- 画面右上のリージョン表示が 「東京 / ap-northeast-1」になっている。
- 「インスタンス」一覧に
eip-demoがあり、状態が 「実行中(Running)」になっている。 - 「Elastic IP」の一覧に、取得したアドレスが 1 つ表示されている。
- そのElastic IP の「関連付けられたインスタンス ID」に
eip-demoが表示されている。 - インスタンス詳細の「パブリック IPv4 アドレス」が、その Elastic IP と同じ値になっている。
- 停止 → 開始を行ったあとでも、パブリック IPv4 アドレスがその Elastic IP のまま変わっていない。
考えてみよう
手を動かすことに加えて、次の問いに自分の言葉で答えられるようにしておくと、理解がより深まります。
- 自動で割り当てられるパブリック IP は停止・起動で変わるのに、Elastic IP は変わりませんでした。この違いは、それぞれのアドレスの「持ち方」の違いから来ています。どう違うのか、自分の言葉で説明してみましょう。
ヒント
自動割り当ては「起動のたびに空いているものを一時的に借りる」イメージ、Elastic IP は「自分専用に確保して手元に置いておく」イメージです。借り物は返すと別のものになり、確保したものは返さない限り同じ、という観点で整理してみましょう。 - Elastic IP は「確保している間に料金がかかる」仕組みです。では、どんな状態のときに「もったいない(無駄な料金が発生しやすい)」と言えるでしょうか。
ヒント
「確保したのに使われていない」状態を考えてみましょう。たとえば、どのインスタンスにも関連付けていない Elastic IP や、関連付けた相手のインスタンスが動いていない場合などです。「使っていないのに確保し続ける」ことの是非を考えると見えてきます。 - 固定のアドレスがあると便利な反面、IP アドレスを直接伝える方法には不便な面もあります。Web サイトの公開などで、IP アドレスの代わりによく使われる「人が覚えやすい名前」の仕組みは何でしょうか。それを使うとどんな利点があるか考えてみましょう。
ヒント
普段ブラウザで入力しているのは数字の羅列ではなく、文字でできた「名前」のはずです。その名前と IP アドレスを結び付ける仕組み(ドメインネームシステム)を調べてみましょう。アドレスが変わっても名前側を直せば済む、という柔軟さがヒントです。
後片づけ
Elastic IP は放置すると料金が発生し続ける代表的なリソースです。今回はとくに、片づけまでが学びの一部です。次の順番で片づけましょう。
- インスタンスを終了する:EC2 コンソールの「インスタンス」で
eip-demoを選び、「インスタンスの状態」→「インスタンスを終了(Terminate)」を選びます。状態が「終了済み(Terminated)」になれば、このサーバーの料金は止まります。 - Elastic IP を解放(Release)する:左メニュー「Elastic IP」で対象のアドレスを選び、「アクション」→「Elastic IP アドレスの解放」を選びます。これを行わないと、インスタンスを終了しても Elastic IP の料金は残り続けます。今回の片づけで最も重要な操作です。
- 確認:「Elastic IP」の一覧から、解放したアドレスが消えていることを確かめます。
インスタンスを消しても、Elastic IP は別途「解放」が必要
Elastic IP は、インスタンスとは独立したリソースです。インスタンスを終了すると関連付けは外れますが、アドレスそのものは「確保したまま」手元に残り、料金が発生し続けます。使い終わったら必ず「解放(Release)」して返却しましょう。なお、デフォルト VPC やデフォルトのサブネットは消さないようにしてください。
コストに関する注意: Elastic IP アドレスは、確保している間ずっと時間あたりの料金がかかります(関連付けの有無にかかわらず課金されます)。また現在は、Elastic IP に限らずすべての public IPv4 アドレスに時間あたりの料金がかかる扱いになっています。あわせて、確認用に起動する EC2 インスタンスも起動中は課金されます(t2.micro / t3.micro などは無料利用枠の対象で、月あたり一定時間まで無料)。インスタンスに付くディスク(EBS ボリューム)にも料金がかかります。短時間で終えれば少額にとどまりますが、Elastic IP を解放し忘れると、インスタンスを消したあとも課金が続く点にとくに注意してください。最新の料金は AWS の公式料金ページで確認できます。なお、VPC・サブネット・ルートテーブル・セキュリティグループ自体には料金はかかりません。使い終えたら、上の「後片づけ」で必ずインスタンスの終了と Elastic IP の解放を行いましょう。