0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

#ALB を作ろうとしたら「2つの AZ を選べ」で止まった話【ALB / サブネット】

0
Posted at

はじめに

自作した VPC の中で動かしている Spring Boot アプリ(EC2)の前に、ロードバランサー(ALB)を立てようとしていました。

ところが ALB の作成画面で、サブネットの選択に進んだところ、**「最低2つのアベイラビリティーゾーンを選んでください」**という条件で止まってしまいました。私の VPC では、その条件をうまく満たせなかったのです。

「サブネットなら作ってあるのに、なんで足りないって言われるの?」と固まりました😅

原因は「サブネットの数」ではなく「どんなサブネットを、いくつの AZ に持っているか」でした。同じく自作 VPC で ALB に詰まった人のために残します。

環境

  • AWS(EC2 + Application Load Balancer)
  • 自作 VPC(10.0.0.0/16)/ リージョン ap-northeast-1
  • サブネット構成(最初の状態):
    • public サブネット … 1つだけ(AZ-1a)
    • private サブネット … AZ-1a / AZ-1c

起きたこと

ALB は「インターネット向け」で作るつもりでした。作成画面の「ネットワークマッピング」で、2つの AZ にチェックして、それぞれにサブネットを割り当てる必要があります。

でも私の VPC では——

  • AZ-1a:public サブネットがある → OK
  • AZ-1c:あるのは private サブネットだけ

という状態。インターネット向け ALB は、各 AZ でインターネットに出られる(public な)サブネットが必要なので、AZ-1c 側で選べるものがなく、2つ目の AZ を埋められませんでした

原因

最初は「private サブネットもあるし、2つあるから大丈夫では?」と思っていました。でも、インターネット向け ALB に使うサブネットとしては、それでは足りませんでした。

ALB には、ざっくり2つの前提があります。

  1. 可用性のため、少なくとも2つの AZ にサブネットを指定する必要がある。
  2. インターネット向け ALB は、各 AZ のサブネットが public(インターネットゲートウェイへの経路を持つ)である必要がある。

私の VPC は public サブネットが AZ-1a に1つだけ。つまり「2つの AZ ぶんの public サブネット」が用意できておらず、条件を満たせなかった——というのが正体でした。「サブネットを作ってある」と「2つの AZ に public サブネットがある」は別物だったわけです。

解決

別の AZ に、2つ目の public サブネットを用意すれば解決でした。

  1. AZ-1c に新しいサブネットを作成(例:10.0.4.0/24
  2. そのサブネットを、インターネットゲートウェイへの経路(0.0.0.0/0 → IGW)を持つルートテーブルに関連付ける
    • ※ サブネットを作っただけでは public になりません。ルートテーブルの関連付けで初めて「外に出られる public サブネット」になります。
  3. ALB 作成画面に戻り、AZ-1a と AZ-1c の2つに、それぞれ public サブネットを割り当て

これで2つの AZ を満たせて、ALB を作成できました🎉

学び

  • 基本的に ALB は、少なくとも2つの AZ にサブネットを指定する必要がある(冗長性のため)。
  • インターネット向け ALB のサブネットは public(IGW への経路が必要)。
  • サブネットを作る ≠ public になる。 ルートテーブルの関連付けまでやって、はじめて public サブネット。

おわりに

「サブネットは足りているはず」と思ったら、**“2つの AZ に public サブネットがあるか”**を数えてみる。自作 VPC で初めて ALB を立てる人の役に立てば嬉しいです🙌

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?