Awsでアプリケーションロードバランサーを作成しようとすると(これまではクラシックなものを問題なく使用していました)、次のメッセージが表示されます。
At least two subnets must be specified
ALBで2つのサブネットを指定する必要があるのはなぜですか?それを作成し、単一のサブネット内のインスタンス間でLBに使用する方法はありますか?
したがって、ここで明確にするために。 @pasmwelは基本的にドキュメントのリンクで答えましたが、これはビューを取得しているように見えるので、私はそれをわかりやすくしたいと思います。
1つのリージョンがダウンしてもALBが他のリージョンで動作できるように、ALBには2つのサブネットが必要です。
これはちょっとばかげています... AWSがバックグラウンドでそれを行う可能性があるためです。
通常のELBとTCP LBは、明白な理由もなくこれを必要としません。しかし、サブネットがフォールダウンすると、それらも失敗します。
1つのリージョンがダウンした場合
上記は間違っており、記載する必要があります
そのため、リージョン内の1つのアベイラビリティーゾーン(AZ)がダウンした場合
質問に対する答えは、AWSが2つのサブネットを必要とする正当な理由はないということです。本番環境で1つのサブネットのみが必要なユースケースと、開発者が1つのサブネットのみで必要なユースケースがあります。サブネットが1つしかないのに、なぜALBを気にするのかと思うかもしれません。答えは、ALBがインスタンスのヘルスを監視できることです(CloudWatchなど、他の監視方法もありますが)。