AWS 환경에서 서비스를 운영하다 보면 Amazon EC2 인스턴스가 예고 없이 종료(Stopped/Terminated) 되는 상황을 경험하게 된다.
이 문제는 단순 장애를 넘어 서비스 중단, 매출 손실, 데이터 유실까지 이어질 수 있기 때문에 원인을 빠르게 파악하고 재발 방지 체계를 구축하는 것이 매우 중요하다.
이번 글에서는 EC2 인스턴스가 갑자기 종료되는 주요 원인을 운영 관점에서 체계적으로 정리하고, 실무에서 바로 활용 가능한 점검 방법까지 함께 설명한다.
1. AWS 측 인프라 장애 (하드웨어 이슈)
가장 기본적인 원인은 AWS 물리 인프라 문제다.
주요 원인
- 호스트 서버 장애
- 네트워크 장애
- 전원/하드웨어 오류
특징
- EC2 상태가
stopped또는terminated로 변경 - AWS 콘솔에서 “Instance reachability check failed” 발생
대응 방법
- 인스턴스 재시작 또는 다른 AZ로 이동
- 장애 이벤트 확인 (AWS Health Dashboard)
👉 AWS는 고가용성을 제공하지만 물리 장애는 완전히 배제할 수 없다
2. Auto Scaling 정책에 의한 종료
Auto Scaling을 사용하는 경우 의도치 않게 인스턴스가 종료될 수 있다.
주요 원인
- Scale-in 정책 작동
- 헬스 체크 실패로 인한 교체
- 잘못된 최소/최대 인스턴스 수 설정
점검 방법
- Auto Scaling Group 이벤트 로그 확인
- Target Group Health 상태 확인
👉 로그 없이 사라진다면 Auto Scaling에 의해 종료된 경우가 매우 많다
3. Spot Instance 회수 (가장 흔한 케이스 중 하나)
비용 절감을 위해 Spot Instance를 사용하는 경우 AWS가 언제든지 인스턴스를 회수할 수 있다.
주요 특징
- 종료 2분 전에 알림 발생
- 갑작스러운 Termination
점검 방법
curl http://169.254.169.254/latest/meta-data/spot/termination-time
👉 Spot 인스턴스는 언제든지 종료될 수 있다는 전제를 반드시 고려해야 한다
4. 사용자의 직접 종료 (Human Error)
운영 환경에서 의외로 많은 비율을 차지하는 원인이다.
주요 원인
- 콘솔에서 실수로 종료
- 잘못된 스크립트 실행 (Terraform, CLI)
- IAM 권한 오남용
점검 방법
- AWS CloudTrail 로그 확인
→TerminateInstances이벤트 검색
👉 실제 운영에서는 사람이 가장 큰 장애 원인이 되는 경우가 많다
5. OS 레벨 문제 (OOM / Kernel Panic)
EC2 인스턴스 내부 OS 문제로 인해 시스템이 다운되는 경우도 있다.
주요 원인
- 메모리 부족(OOM Killer)
- 커널 패닉
- 디스크 I/O 오류
점검 방법
dmesg -T | grep -i kill
👉 로그가 갑자기 끊겼다면 OS 레벨 크래시 가능성 높음
6. EC2 Instance Retirement (AWS 유지보수)
AWS는 주기적으로 인스턴스를 강제 종료하거나 교체할 수 있다.
주요 특징
- 사전 알림 제공 (이메일, 콘솔)
- 특정 시간 내 조치 필요
점검 방법
- AWS Personal Health Dashboard 확인
👉 알림을 놓치면 예고 없이 종료된 것처럼 보일 수 있다
7. EBS 또는 스토리지 문제
루트 디스크(EBS) 문제가 발생하면 인스턴스가 정상적으로 동작하지 못한다.
주요 원인
- EBS 장애
- 파일 시스템 손상
- 디스크 full 상태
점검 방법
df -h
lsblk
8. IAM / 보안 정책 문제
자동화 시스템이나 정책에 의해 인스턴스가 종료될 수 있다.
주요 원인
- Lambda 또는 자동화 스크립트
- 비용 절감 정책 (idle instance 종료)
- 보안 정책 위반 시 자동 종료
9. 빠른 원인 분석 체크리스트
운영자가 즉시 확인해야 할 순서:
- CloudTrail에서
TerminateInstances확인 - Auto Scaling Group 이벤트 확인
- Spot Instance 여부 확인
- AWS Health Dashboard 확인
- OS 로그(dmesg, syslog) 확인
- 디스크 및 리소스 상태 확인
👉 이 순서대로 보면 대부분 10~15분 내 원인 식별 가능
10. 재발 방지를 위한 운영 전략
① Multi-AZ 구성
- 단일 인스턴스 의존 제거
② Auto Recovery 설정
- EC2 자동 복구 기능 활용
③ CloudWatch 알람
- Amazon CloudWatch 기반 상태 감지
④ IAM 권한 최소화
- 실수로 인한 종료 방지
⑤ Spot 사용 시 대비
- On-Demand 혼합 전략 적용
결론
EC2 인스턴스가 예고 없이 종료되는 문제는 단순한 시스템 이슈가 아니라
인프라, 설정, 운영 프로세스가 복합적으로 얽힌 결과인 경우가 많다.
특히 실무에서는
- Auto Scaling 설정 오류
- Spot Instance 사용
- 운영자의 실수
이 세 가지가 주요 원인으로 자주 발생한다.
따라서 단순히 원인을 찾는 것에 그치지 않고,
장애를 전제로 한 아키텍처 설계와 운영 자동화 체계 구축이 필요하다.
결국 안정적인 서비스 운영의 핵심은
“인스턴스가 언제든 사라질 수 있다”는 가정 위에서 설계하는 것이다.