【AWS】EC2インスタンスにパブリックIPが割り当てられない時に確認すること

  • 2021年7月10日
  • AWS, IT
AWS

こんにちはますのです。
検証用のEC2インスタンスを作った時のお話です。

  • 起動しっぱなしだともったいないから「インスタンスの停止」しておこう
  • EIPの金額が発生してるで!とアラートを受信
  • グローバルIPを固定にする必要無いし「パブリックIP」にしよう
  • あれ、どうやってパブリックIP設定するの…。

という流れで、パブリックIPの設定の仕方が分からなかったので確認内容について備忘録となります。

EIP(Elastic IP)とパブリックIPの違い

どちらも共通しているのは
「外部からアクセス可能なグローバルIP」となります。

違いについては以下の通りです。

相違点 EIP(ElasticIP) パブリックIP
グローバルIPの固定 ×
※インスタンス起動時に再付与される
金額 アタッチ時のみ無料
※インスタンス停止、デタッチ中は課金対象
無料

 

ざっくり用途でいうと以下と捉えています。

  • グローバルIPを固定したい場合は「EIP」
  • インスタンスの停止・起動を頻繁に行って節約したい場合は「パブリックIP」

あとから「パブリックIP」を付与する設定は出来ない

EC2インスタンスを作成する際に「パブリックIP」を付与するか否か設定することが可能です。

最初に「パブリックIP」の設定をしていない場合でグローバルIPを付与したい場合は、「EIP」による付与のみとなるため注意です。

EC2インスタンス作成後は「パブリックIPを付与するか否か」設定変更が出来ないようです。
あとから「パブリックIP」を設定したい場合はAMIからの復元が必要となります。
筆者は「パブリックIP」を付与する設定を無効としていたため、AMI作成→復元で対応することになったのです。
最初の設計が大事だということを痛感したのであります。

パブリックIPを設定する方法

IPを付与するだけなら簡単です。
EC2インスタンスを作成する画面内でポチっとするだけになります。

VPC設定が漏れている場合、パブリックIPのDNS名前解決が出来ない可能性があります。
不安がある際は後述するVPCの設定を先に確認ください。

 

以下の流れで任意の設定をぽちぽちして進めます。

  • EC2管理コンソール>インスタンスを起動>AMI選択>インタスタンスタイプの選択
  • インスタンスの設定:自動割り当てパブリックIPで「有効」を選択
  • 以降の項目は任意で設定してEC2インスタンスの作成を完了させる

起動後に確認すると以下の赤枠のように「パブリック IPv4アドレス」が付与されるようになります。

VPCの設定が漏れている場合は「パブリックIPv4 DNS」の値ではアクセス出来ない可能性があります。
念のためVPCとサブネットの設定も実施しましょう。

VPCの「DNSホスト名/DNS解決」を有効化する

EC2インスタンスを作成しているVPCとサブネットが対象となります。

  • AWS管理コンソール>VPC>VPCを開く
  • EC2インスタンスに紐づけする対象のVPCを選択:DNSホスト名/DNS解決のステータスを確認する
  • どちらも「有効」ならDNS設定はOK、事項のサブネットを確認しましょう。
  • 「無効」の場合は右上の「アクション」>「DNSホスト名を編集」をクリック
  • DNSホスト名:有効化にチェックを入れる>変更を保存
  • 続いて、同じく右上の「アクション」>「DNS解決を編集」をクリック
  • DNS解決:有効化にチェックを入れる>変更を保存
  • 以下の通り「DNSホスト名/DNS解決」が有効化されれば完了となります。

パブリックIP付与をデフォルト設定とする場合:サブネット設定を変更する

続いてEC2インスタンスを作成する際に、パブリックIPを付与する設定をデフォルトとしたい場合の設定です。

デフォルトで「自動割り当てパブリックIPを有効」とすることは、AWSのベストプラクティスに沿わないものとなります。
セキュリティ要件が高い環境や特に理由が無い場合は、サブネットの自動割り当てパブリックIPは「無効」としましょう。
参考:AWS の基本的なセキュリティのベストプラクティスコントロール

手順「パブリックIPを付与する」で以下の設定をしました。

インスタンスの設定:自動割り当てパブリックIPで「有効」を選択

「有効」に設定すれば変更出来るのですが、サブネット設定を有効にしておくことで変更が不要となります。

▼ここの部分

念のためサブネットのデフォルト設定の箇所についてメモです。

  • AWS管理コンソール>VPC>サブネット>対象のサブネットを選択
  • 詳細タブ:パブリックIPv4アドレスを「自動割り当て:はい or いいえ」を確認する
    ※「はい」の場合は有効になっているので完了です。
  • 「いいえ」の場合は画面右上「アクション」>「自動割り当てIP設定の変更」をクリック
  • 「IPv4の自動割り当て:パブリックIPv4アドレスの自動割り当てを有効にする」をチェック>「保存」をクリック
  • サブネット管理画面でステータスが以下のように「はい」に変われば完了です。

こちらの設定を行うことで、次回以降のEC2インスタンス起動時に「自動割り当てパブリックIP」の選択が「サブネット設定を使用(有効)」に変更されます。
わざわざ「有効」を明示的に設定しなくて良いサブネットだよ!というものになるので、状況によって設定してみましょう。

あくまでもインスタンス起動時の設定を反映する、という立ち位置となるようです。
サブネットの設定を変更しても、パブリックIP無効で作成済のEC2インスタンスを変更することは不可でした。

【検証内容】
・サブネット設定を使用(無効)でEC2インスタンスを起動
・パブリックIPが付与されないことを確認
・サブネット設定で「パブリックIPv4アドレスを自動割り当て:はい」に変更
・EC2管理画面上で同じくパブリックIPが付与されないことを確認

普段特に考えずに「自動割り当てパブリックIP「無効」を選択していました。
今回、EIPの料金が発生して節約志向でパブリックIPにしたかった際に詳細把握できてよかったのです。
最新情報をチェックしよう!