🧡 AWS

ECS 컨테이너 시작 실패 (feat.troubleshooting)

MNY 2024. 9. 25. 17:21
728x90
반응형

🔥 문제 상황

ECS를 생성할 때 튜터님과 함께 설정했음에도 불구하고 컨테이너가 정상적으로 시작되지 않고 계속해서 재시작하는 상황이 발생했다. NLB(Network Load Balancer)의 헬시 상태가 뜨지 않아 문제가 발생하고 있었다.

 

👀 고민 및 시도한 내용

ECS 생성 과정은 다음과 같이 진행했다.

  1. 태스크 생성
  2. 클러스터 생성
  3. NLB 그룹 생성
  4. NLB 생성
  5. 서비스 생성

NLB의 헬시 상태가 나타나지 않아서 몇 가지를 고민하며 시도했다:

  1. 보안 그룹에서 443 포트를 제거
  2. 상태 검사를 완화
  3. 포트가 8080이 잘못된 건가 싶어 80으로 변경
  4. 오토 스케일링 그룹과 상태 검사를 맞춰보기
  5. 현재 ECS가 프라이빗 서브넷에 연결되어 있었기에 ACL을 변경

 

💡 해결 방법

문제를 해결하기 위해 다음과 같은 과정을 진행했다.

문제가 되었던 부분은 AWS에서 캐싱이 되어 있었던 것으로 추측했다. 클러스터, 태스크, 서비스 등 네이밍을 할 때 v1 같은 버전 표기를 추가하여 생성하니 문제가 해결되었다.

 

추가적으로 생각하는 다른 추측:

  • Nginx가 127.0.0.0으로 라우팅되면, 내가 설정한 NLB가 프라이빗 서브넷에서 nginx의 요청을 제대로 처리하지 못했을 가능성도 있다.
  • 진행 과정에서 ECS 부분에서 ACL을 추가했는데, 해당 ACL이 8080이었고 이 부분을 삭제하고 동일하게 ECS를 재생성했을 때 정상적으로 동작한 것으로 보아 이 또한 문제의 원인 중 하나였던 것 같다.

 

🔍 마무리

이번 경험을 통해 AWS ECS에서의 환경 변수 설정과 NLB의 상태 점검의 중요성을 다시 한 번 깨닫게 되었다. 네이밍, 캐싱과 설정 점검이 문제 해결의 중요한 열쇠임을 실감하게 되었다.

728x90
반응형