ECS 컨테이너가 아무 이유없이 종료될 때

2024년 9월 13일 금요일

Today I Learned

날짜

2024년 9월 13일 금요일

내용

ECS 컨테이너가 종료되는 이유

ECS 테스크가 자꾸 종료된다. 내부 로직에선 전혀 이상하지 않은데… 몇일 전에 해결된줄 알았더니 작동하고 안하고가 반복된다. 물론 안하는 경우가 훨씬 많지만.. 내부 코드에는 문제가 없다고 판단해서 AWS를 열심히 찾아봤다. ECS에서 컨테이너가 작동해 태스크가 추가되면, 그 태스크의 IP가 로드밸런서가 향하는 대상그룹에 등록된다. 그리고 그 컨테이너가 제대로 통신할 수 있는지 확인하게 된다. 여기서 방금 실행된 컨테이너 IP가

Target is in an Availability Zone that is not enabled for the load balancer

라는 오류를 띄우고 있었다. 서버의 VPC에는 총 3개의 존이 있는데 이 중 하나가 로드밸런서에서 접근할 수 없는 문제였다. 일반적으로 VPC를 처음 만들면 2a, 2b 총 2개의 존을 생성하는데 나는 2c도 추가했었다. 데이터베이스에서 읽기 전용 인스턴스와 쓰기 전용 인스턴스를 따로 관리하려면 서브넷이 총 3곳이 필요했기 떄문이다. 로드밸런서 설정에 들어가보니, 가용 영역이 2a, 2b 뿐이었다. 2c에서 실행되는 컨테이너일 경우, 로드밸런서의 가용영역에 포함되어 있지 않았기 떄문에 헬스체크를 통과하지 못하던 것이었다.

회고

오전반차인데 야근(?)함