AWS

ALB作成したらElastic IPも自動生成されていたので最速で調べて検証してみた

おはよう世界、どうも若林です。
新年あけましておめでとうございます。2025年、あっという間に終わりましたね。
毎年去年よりも一年が早いって言っている気がします。

さて、今回はALB作ってたら知らないElastic IP(以下、EIP)が生成されていたのでこの謎を追っていきたいと思います。
この技術ブログを書いている時点では何も調べてないので、書きながら一緒に調べていきたいとおもいます。

きっかけ

遡ること昨日の業務中、私がAWS環境の構築する案件を進めており、リソース周りの構築が済んだので同じ課の先輩にダブルチェックをお願いしていました。
その時に先輩が「この名無しのEIPってなに?不要なものなら削除をお願い」と依頼されました。

(ん?EIPってそんなにたくさん作ったっけ?)

私は疑問に思いながらもEIPのコンソールを開いて確認してみました。

え?なにこれ!?
気付いたらEIPが3つに増えていました。
赤塗マスクのものは私がEC2のパブリックIPを固定するために作成したものですが、この名無し2つは本当に身に覚えがありませんでした。

パッと見だと関連付けされているリソースもなさそう、、知らなすぎて意識を手放して無意識に意味もなく作成したのか・・・?
「よく分からないけど要らないしこのまま消そう・・・」と思い一応この名無しのEIPを開いて中身を確認してから消そうと思いました。

ふと、ネットワークインターフェイス(以下、ENI) IDが目に入りました。

「あれ?ENIに関連付いてる??」

本来、EIPをそのまま作成しても最初から関連付けされた状態で作成は出来ません。
作成したら右上のElastic IPアドレスを関連付けるってところからリソースに割り当てないといけません。
なのに、ENIへ関連付けされています。つまり間違えて作成してそのままにしてたわけではなく、その後にENIに割り当てているのです。
流石に意識がなくてもそんな作業をしてたら覚えています。
次に目に入ったのがService managedの部分です。

「alb・・・ロードバランサーが内部サービスとして管理しているの?なにそれ見たことない」

この時点でほぼ意識がなくなったとかそんな話じゃないとは思ってます(頭の片隅にまだ少し残ってますが)
あまり普段意識してなかったのですが、ALBを作成したらENIも自動的に作成されることを思い出しました。

その時一つの仮説が出ました。
ALBを作成したらEIPも自動的に割り当てられるようになったのか!

色々調べてみた

まず本当にそうなのか、調べてみました。
最初にお手軽便利先生こと、Chat-GPTに聞いてみました。

作成されないの!?って思うかもしれませんが、実際こんな事が起きていますので、これはないですね。
所詮はAIですので仕方ありません。私もふと思った疑問を聞くことや暇なときの話し相手くらいにしか活用してなかったのでGPT先生には頼れないことがわかりました。

次はAWSの公式が出している最新情報サイトがありますのでそこから探してみます。
AWSの最新情報

(一応貼っておきます)
豆知識ですが、言語を英語にするとまだ日本語化されてない最新情報がありますのでGoogleの翻訳を活用しながら読んでいただければと思います。

話を戻します。
私の先輩(さっき登場した先輩とは別の人)情報によると、2025年の12月18日の時点ではEIPが作成されてなかったみたいです。
つまり2025年12月18日から現在までの間にあるそれっぽい記事を探してみます。




10分後・・・


ありませんでした・・・。

ざっとタイトルと流し読み程度に内容を確認しただけですので見逃した可能性も無くはないですが、それっぽい情報は見当たりませんでした。
最新情報から見当たらなければそれよりも前にある機能、もしくはまだ記事にできてないのかなと思いました。
作成されてなかったって言っていた先輩はAWS詳しい人なのでその情報は間違ってないだろうなーって思っています。
記事ができてないっていうのもサービス改善からほほ同時に記事を公開するAWSの最新情報ならそれはないかなって思いました。
両方ともその可能性は低そうだったのでもう少し粘ってみます。

それっぽい記事を発見!

粘ってみた結果、なんとそれらしき記事を発見できました!
Elastic IP created automatically by ALB and I cannot disassociate or delete
まさかのAWS re:Postにその情報がありました。
さすが公式の情報コミュニティ。

まさに探していたものです。

3年前から製品用のAWSアカウントを使用しています。12月20日にELBによってElastic IPが自動的に作成されましたが、こちら側で分離したり削除したりできません。ALBにタグ付けされています。
誰かElastic IPが作成される理由を説明してもらえますか?

って書いてあるので先輩が言っていた時期にはなかったのも納得できます。
(コミュニティですのでこの日リリースかはわかりませんが、18日~20日の間のどこかだとは思います)
絶対これっぽいので読んでみます。

とりあえずわかったこと

  • ALBを作成したらENIが自動生成される。EIPはEC2インスタンスかENIにしか関連付けができないためALBのENIに関連付けされる。
  • service managed 属性が「ALB」に設定される。
  • EIPはコンソール上から確認はできるが、ALBによって完全に管理されているため、ユーザーが変更や解放はできない。つまり解除や削除ができない。
  • ALBを削除したら関連付けされたEIPも自動的に解放される。

公式情報引用


AWSは、パブリックIPv4アドレスの利用に対して新しい料金体系を導入します。2024年2月1日より、特定のサービスに割り当てられているかどうかに関わらず、すべてのパブリックIPv4アドレスの利用に対して1IPアドレスあたり0.005USD/時間が課金されます


今回何故ALB作成時にEIPが自動的に関連付けされるようになったのかというと、今までだとALBのパブリックIPv4アドレスがどこにも見えない状態だったみたいで、パブリックIPv4アドレスの課金の説明ができないためAWSがALBのパブリックIPv4アドレスをEIPとして明示的に表示させるための仕様だったみたいです。
そのためservice managedがALBとして見えるようになったのかと思います。

要するに、パブリックIPv4アドレスが課金対象なのにALBのパブリックIPv4アドレスが見えないと課金の透明性を確保できないからALB作ったらEIPとして見れるようにしておこう。service managedにALBと表示させているからこのパブリックIPアドレスはALBのものだって分かるようにした。

みたいな感じかと思います。
翻訳結果&若干の自己解釈も含まれていますので完全に正解かは分かりません。

実際に検証してみた

調べるだけだとあまり面白くはないので実際に色々検証してみます。

今回検証してみる内容

  • 手動でEIPを作成したら何も関連付けされないのか
  • ALBで作成したらEIPが自動的に生成・関連付けされているのか
  • ALBで作成したEIPは何も操作できないのか
  • EIPは本当に手動で解放できないのか
  • ALBを削除したらEIPも解放されるのか

色々気になるので検証してみたいと思います。
さっきのスクショは案件用に発行した顧客用の環境だったのでいつも使っている検証環境で試してみます。

まずは手動でEIPを作成して、内容を確認してみます。
(あとで削除しますのでIPアドレスはそのまま出してます)

予想通り何も関連付けられていません。
Service managedも何も書いてないですね。
本来EIPは手動で作成したらこんな感じです。でも最初に見せたスクショのEIPはENIが関連付けられれてましたね。
では次にALBを作成してみます。
(VPCやサブネットは見せられないので隠します)

今回ALBだけ作成すればいいので、ターゲットグループやEC2は不要です。
設定値も適当で問題ありません。
次はALB作成時に自動生成されたENIを探していきます。
EC2のコンソールから左メニューにネットワークインターフェイスがありますので開いてください。
上にある検索欄で先程作成したALB名を入力したら出てくると思います。
このときALB作成時に選択したサブネット分のENIがあります。
どれでもいいので開いてみましょう。

ENIの概要を見てみると、もうEIPの情報が下にありますね。
ではここから本当にEIPがあるのか確認してみます。
EC2のコンソールから左メニューにElastic IPがありますので開いてください。
ENIの中に書いてあったパブリックIPアドレスを検索欄に入力してみましょう。

あるー!!!
私が案件中に発見した名無しのEIP、関連付けされているENI、Service managedにALB、まさにこれです!
これによりALBを作成したら今までENIしか自動的に生成されませんでしたが、EIPも生成されることがわかりました。

それでは次にこの作ったEIPは本当にこちら(ユーザー)から何も操作ができないのか検証してみます。
まず試しにこのEIPを手動で解放してみます。

関連付けIDがあるため、解放できません
これはALBがService managedで管理しているため、関連付けIDが存在しているため解放ができません。
これは私も始めてみたとき、いらないと思って解放しようと思ったら解放ができませんでした。あのときはなんで?って思いましたがこういうことだったのですね。
では次に関連付けを解除してみます。

解除ができませんでした。
エラー文を読むと、「あなたにはこのリソースにアクセスする権限がありません」って書いてあるみたいです。
これはやはりALBが管理しているからユーザーにはアクセス権限がないってことみたいですね。
次は逆引きDNSレコードを更新してみます。

このドメインは存在してないので失敗するとは思いますが、更新してみましょう。

こちらは更新ができましたね。
ドメインがないので失敗する挙動にはなると思いますが、更新自体は行けるみたいです。
DNSレコードの更新には権限がいらないみたいですね。初知り。
では最後に、ALBを削除したらEIPも削除されるのか、確認してみます。

では、削除してみます。
無事に削除できたので、先程のENIとEIPを確認しに行きます。

ENIはありませんでした。
これは元々の機能ですので予想通りの挙動ですね。
では次にEIPを確認しに行きます。

無くなってる!!!
あれだけ解放や関連付けを解除しようとしたのに、ALBを削除したら一瞬でいなくなりました。
つまり調べた通り、ALBに関連付けされているENI、その更にENIにEIPが関連付けされてIPv4アドレスの管理が容易になりました。
構築中の顧客の環境にあるEIPも無理矢理削除しなくてよかったです・・・。

最後に

いかがだったでしょうか。
昨日の夕方に発覚して今日調べて今日技術ブログにしたので相当駆け足で書き上げました。足りてない部分があったらすみませんmm
知らない機能にぶつかるとあたふたしてしまいますね・・・。
最初なんて「無意識に意味もなくEIPを作成してた」って思ってましたし。。。

EIPでIPを固定化されるならGlobal Acceleratorを用意して静的IP化しなくてもいいかもしれません。
ただ、調べて思ったのが、管理しているのがALBなので、IP固定化されるか?って言われると微妙なところっぽいですよね。
ユーザー管理ならまだどうにかできそうではありますが、AWSのサービスが管理しているなら何かしらの拍子にIPアドレスが変わりそうで怖いです。
少なくとも実案件でALBのIPを静的IP化させたい!って要件が来たらもう少し検証してからのほうが安全かもしれません。
調べてもまだまだ分からないことだらけですのでゆっくり慣れていきたいと思います。

それではまたどこかでお会いしましょう。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA