AWS

CloudWatch Alarm으로 EC2 인스턴스 자동 복구

heesoohi 2025. 5. 13. 07:48

EC2 인스턴스는 물리 호스트에 문제가 생기면 running 상태로 표시되더라도 정상적으로 동작하지 않을 수 있다.
이런 상황에서 인스턴스를 자동으로 복구할 수 있도록 AWS는 CloudWatch 경보를 통한 Auto Recovery 기능을 제공한다.

 

🛠️ 자동 복구란?

EC2 인스턴스의 상태를 감시하다가 시스템 장애(예: 하드웨어 오류)로 인해 인스턴스가 응답하지 않으면, CloudWatch Alarm이 이를 감지해 자동으로 인스턴스를 정상적인 호스트에서 다시 시작한다.

 

☑️ 인스턴스를 "다시 시작"하는 것이지, 새로운 인스턴스를 생성하는 것이 아니다.

 

복구 중 유지되는 것 vs 사라지는 것

항목 복구 후 유지 여부 설명
인스턴스 ID 동일 ID로 복구
프라이빗 IP 내부 통신 문제 없음
탄력적 IP (EIP) 고정 IP 유지
퍼블릭 IPv4 주소 동적 IP는 바뀔 수 있음
인스턴스 스토어 호스트 변경 시 사라짐
메모리 데이터 (RAM) 휘발성 데이터는 유실됨

 

메모리 데이터는 왜 유실될까?

복구는 단순 재부팅이 아니라, 하드웨어 수준에서 인스턴스를 강제로 종료 후 다른 호스트에 재시작하는 과정이다. 따라서 인스턴스가 가지고 있던 RAM 상의 실행 중 데이터(세션, 캐시, 변수 등) 는 복구 중에 모두 삭제된다.

 

실무에서 Redis 등 인메모리 DB나 세션 서버를 EC2 내부에 올려 쓰고 있다면, 반드시 데이터 유실 가능성을 고려해야 한다.

 

 

 

🔔 CloudWatch로 자동 복구 설정하기 (요약)

  1. CloudWatch에서 새로운 Alarm 생성
  2. "StatusCheckFailed_System" 메트릭을 기준으로 조건 설정
  3. Alarm 트리거 시 "EC2 복구" 작업 수행하도록 설정

* 설정 방식은 매우 간단하지만, 적절한 알람 임계값 설정이 중요하다.

CloudWatch의 Auto Recovery는 복잡한 장애 조치 없이 EC2 인스턴스를 간단히 자동 복구할 수 있는 유용한 기능이지만, 복구 과정에서 유지되지 않는 항목들을 잘 파악하고, 인프라 설계에 반영해야 한다.