☁️
マルチAZのALB→ECSの通信が不安定
ALB経由でのECSアクセスを試していたときに遭遇した出来事です。
結果的には些細な見落としだったのですが、参考になれば嬉しいです。
概要
ローカルPC→ALB→ECSの経路でECSの動作確認をしていた。
アクセスすると、アクセス可能なタイミングと不可なタイミングがあり、通信が不安定な様子だった。
結論
片方のサブネットがルートテーブルと関連付けられておらず、
そのサブネットにプロビジョニングされたALBがECSと通信できなかった。
概要図
調査
- ALBのパブリックドメインにアクセスすると、ECSコンテナにアクセス可、不可となる
- IPアドレスでアクセスすると、ALBの片方のIPは正常に通信可能、もう片方はアクセス不可
- 通信可能なIPが所属するサブネットはルートテーブルと紐付けられており、もう片方は紐付けられていなかった
- つまり通信不可のIPはメインルートテーブル(未設定)に紐付いていた
- terraformのコードに対象サブネット分の
aws_route_table_association
がなかった
対応
- 通信不可だったサブネットを、正常に設定されたルートテーブルに紐づけ、解決
network.tf
resource "aws_route_table_association" "test-public-routetable-association-1c" {
route_table_id = aws_route_table.test-public-routetable.id
subnet_id = aws_subnet.test-subnet-1c.id
}
所感
些細なミスでしたが、無事解決できてよかったです。
ALBのIPが切り替わるタイミングは未調査なため、機会があるときに調査したい。
Discussion