[AWS] ECS는 Running인데 계속 Unhealthy? ALB Health Check 실패의 진짜 원인 (보안그룹 아웃바운드 문제) (Product : SpeakNote)

2026. 2. 16. 03:12·DevOps/AWS

 

 

 

이번에 Next.js 프론트를 ECS Fargate + ALB 구조로 배포하면서 이상한 현상을 겪었다.

컨테이너는 분명히 살아있는데 ECS는 계속 태스크를 죽이고 다시 올렸다.

 

증상

 

 

ECS 서비스 이벤트 로그
task ... port 3000 is unhealthy in target-group ... reason: Health checks failed Amazon ECS replaced 1 tasks due to an unhealthy status.
 

그리고 무한 반복.

  • 태스크 → 실행됨
  • Target group → Unhealthy
  • ECS → 태스크 교체
  • 다시 Unhealthy
  • 또 교체

무한 루프

 

1차 의심: 컨테이너 문제?

ECS Exec으로 직접 들어가서 확인했다.

 
 

200
/ health /api/health

전부 200

컨테이너 내부에서는 완벽히 정상


2차 의심: HTTPS 리다이렉트 문제?

ALB에서

  • 80 → 443 리다이렉트
  • 443 → target group

구성.

Next.js가 HTTPS 강제 리다이렉트 해서 Health check가 301 받는 건가 의심을 해봤는데

헤더 강제로 넣어서 테스트를 해도

Host: dev.speaknote.site X-Forwarded-Proto: https

→ 여전히 200.

리다이렉트 문제 아님.


3차 의심: Target Group 설정?

  • Health check path → /
  • → /health
  • → /api/health

다 바꿔봤다.

여전히 Unhealthy.


진짜 원인: ALB 보안그룹 아웃바운드

여기서 깨달았다.

ALB 보안그룹 상태

인바운드

  • 443 허용 (내 IP만)

아웃바운드

  • 443만 허용

문제는 여기.


ALB는 443으로만 통신하지 않는다

ALB는 클라이언트와는 443으로 통신하지만,

타겟(ECS)으로는

타겟 포트(여기서는 3000) 로 접속한다.

즉,

 

ALB → ECS : TCP 3000

그런데 ALB 보안그룹 아웃바운드가

TCP 443 only

로 되어 있었다.

그럼 ALB는 타겟으로 연결 자체를 못한다.

Health check도 못하고
Forward도 못한다.

 

 해결 방법

ALB 보안그룹 수정

 
Outbound: TCP 3000 → ecs-service 보안그룹

또는

All traffic → 0.0.0.0/0 (개발 환경이면 이게 편함)

수정하자마자

  • Target group → Healthy
  • ECS 교체 루프 종료
  • 정상 접속

끝.


왜 내부에서는 200이었을까?

컨테이너 안에서는

 
curl localhost:3000

정상.

하지만 ALB는

ALB → ECS (3000)

이 경로가 보안그룹에 막혀 있었음.

즉,

앱은 정상
네트워크가 막혀있던 것


정리

ECS에서 Unhealthy 뜨면 무조건 앱 문제부터 의심하는데
이번 케이스는 완전히 네트워크였다.

체크 순서

  1. 컨테이너 내부 200 확인
  2. Target group path 확인
  3. 리다이렉트 여부 확인
  4. ALB 보안그룹 아웃바운드 확인 ← 이게 핵심

오늘의 교훈

ALB는 클라이언트와 443으로 통신하지만
타겟과는 “타겟 포트”로 통신한다.

이걸 안 열어두면
헬스체크는 영원히 실패한다.

 

개 뻘~~~~짓을 했고,, 나는 또 새벽 3시에 잠들지만,,,, 한가지를 알아가서 행복하다..

 

 

'DevOps > AWS' 카테고리의 다른 글

[AWS - ECS & ALB]ECS + ALB+RDS 기반 서비스 아키텍처 정리  (0) 2026.02.10
[cloud computing] 클라우드 컴퓨팅과 가상화 기술  (0) 2025.12.11
[cloud computing] 클라우드 컴퓨팅 (CC) 이란?  (0) 2025.12.10
'DevOps/AWS' 카테고리의 다른 글
  • [AWS - ECS & ALB]ECS + ALB+RDS 기반 서비스 아키텍처 정리
  • [cloud computing] 클라우드 컴퓨팅과 가상화 기술
  • [cloud computing] 클라우드 컴퓨팅 (CC) 이란?
yeseul-kim01
yeseul-kim01
  • yeseul-kim01
    슬 개발일지
    yeseul-kim01
  • 전체
    오늘
    어제
    • 분류 전체보기 (79)
      • 자격증 (1)
        • 정보보안기사 (0)
      • DevOps (17)
        • Docker (6)
        • Kubernetes (1)
        • GitHub Actions (0)
        • AWS (4)
        • Monitoring (1)
        • Nginx (1)
        • GCP (3)
      • ServerDev (34)
        • SpringBoot (13)
        • DJango (5)
        • FastAPI (14)
        • Next (0)
        • Flask (0)
        • Database (2)
      • Algorithm (2)
        • BFS (0)
        • DFS (1)
        • 다익스트라 (0)
      • CS (8)
      • Data Engineering (1)
      • AI&MLOps (2)
      • Architecture (6)
      • Software Engineering (0)
        • Library Packaging (0)
      • Project (5)
        • docx-generator (0)
        • speak-note (2)
        • ms-serving (1)
        • keyshield (2)
      • ProgrammingLanguages (3)
        • Python (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SpeakNote
    rag
    KServe
    di
    Kubernetes
    multipartfile
    실무일기-인프라편
    Django
    백엔드
    docker
    실무일기-백엔드편
    NLP부트캠프
    동시성제어
    FastAPI
    KeyShield
    실시간시스템
    SpringBoot
    MLops
    아키텍처
    프로젝트기록-KeyShield
    프로젝트기록-speaknote
    하이브리드아키텍처
    비동기처리
    멀티모듈
    STT
    grpc
    아키텍처설계
    FastAPI - CORS 마스터
    트러블슈팅
    depends
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
yeseul-kim01
[AWS] ECS는 Running인데 계속 Unhealthy? ALB Health Check 실패의 진짜 원인 (보안그룹 아웃바운드 문제) (Product : SpeakNote)
상단으로

티스토리툴바