CloudEngineering (AWS)/EC2

AWS 전용 호스트(Dedicated Host) Recovery

Halfmoon 2021. 7. 29. 15:15

개요

Dedicated Host(전용 호스트)를 운영하던 고객사에서 EC2가 하나씩 상태 검사 실패하더니 모든 EC2에 상태 검사 실패가 뜨는 장애가 발생했다. DH(Dedicated Host) 대시보드의 상태는 Under assessment를 나타냈고 CaseOpen을 진행하던 중 한 시간이 조금 넘게 흘렀을 때 EC2의 상태는 정상적으로 작동했다.

 

서비스 장애 시간이 한시간 넘게 지속된 것이다. AWS 사용자 입장에서는 할 수 있는 것이 아무것도 없다. 그렇다면 비싼 돈을 내고 Dedicated Host를 사용하는 이유가 없지 않은가? 이와 같은 장애에 대처하는 방법은 정말 없을까?

일단 Host Recovery를 설정해야 겠다. 설정 방법은 AWS 공식문서를 참고하여 설정하도록 하자.

 

Host recovery - Amazon Elastic Compute Cloud

Data on instance store volumes is lost when an instance is stopped, hibernated, or terminated. This includes instance store volumes that are attached to an instance that has an EBS volume as the root device. To protect data from instance store volumes, bac

docs.aws.amazon.com

Host Recovery (Running EC2)

DH의 환경에서 Host Recovery(호스트 복구)라는 기능을 제공한다. 이를 활성화하면 장애시에 신규 DH를 자동으로 생성하고 Fail Over된다. 그런데 이 기능이 정말 잘 동작할까? 장애 시간은 얼마 정도일까? 테스트 환경을 구축한 뒤 AWS 엔지니어의 도움을 받아 이를 테스트할 수 있었다.

 

* DH 장애 발생 시점 부터 복구 시점까지 시간별로 순차적으로 정리했다.

 

1. 장애 발생 진행 (8:19 AM)

AWS 엔지니어 지원으로 수동으로 테스트 DH에 장애를 발생시킨다. 장애 발생이 진행되면 가장 우선적으로 서비스가 먹통이 된다.

인스턴스 상태 검사 실패 (8:21 AM)

약간의 시간이 흐르고 EC2 대시보드의 상태 검사실패를 나타내기 시작한다.

 

신규 전용 호스트 생성 및 장애 전용 호스트 상태 변화 (8:24 AM)

약간의 시간이 흐른 뒤에 PHD 알람 발생과 동시에 신규 DH를 배포한다. 바로 생성이 되는 것은 아니다 장애 발생 시점으로부터 5분 후이다.

 

PHD의 DH recovery 시작에 대한 알림

 

신규 호스트에 EC2 이관 (8:25 AM)

장애가 발생한 DH에서 신규 호스트로 EC2가 이관된다.

 

EC2 대시보드 인스턴스 상태 변경 및 호스트 ID 변경 (8:27 AM)

장애 발생 시점부터 약 8분이 지난 뒤에 인스턴스 상태가 실행 중으로 바뀌게 되면서 서비스가 정상화됨을 확인할 수 있었다.

 

HTTP 상태 값 200 반환

 

전용 호스트 대시보드 상태 값 변경 (8:30 AM)

DH의 대시보드를 보면 장애 발생한 DH의 상태 값이 Released 상태를 나타낸다. 이는 약 수 시간이 소요된다.

Host Recovery (Stopped EC2)

Host Recovery 기능 중 눈 여겨서 볼 부분은 중지된 상태의 EC2이다.

중지된 상태의 EC2는 호스트 장애가 발생해도 Auto Recovery가 실행되지 못하고 기존의 호스트 ID를 유지하게 되는데 호스트 ID를 수동으로 변경하지 않을 경우에는 실행이 불가능했다.

이럴 경우에는 [작업-인스턴스 배치 수정] 하여 신규 호스트로 변경한 뒤 인스턴스 실행이 가능하다.

마치며

본 테스트는 아래와 같이 요약할 수 있다. 보안적인 부분으로 테스트 내용을 전부 공개할 수는 없으나 아래 정도의 내용만 기억하고 있다면, DH환경에서 장애가 나더라도 당황하지 않고 장애 시간을 최소화할 수 있다.

  • Host Recovery 설정 시 물리적 호스트에 장애가 날 경우 자동으로 복구된다.
  • 장애 복구 시 신규 전용 호스트가 할당되며, 설정 값은 모두 동일하다.
  • 전용 호스트의 상태 값은 Available → Under assessment → Released(permanent failure) 순서로 변경된다.
  • 전용 호스트 장애 시 EC2는 상태 검사 실패로 확인된다.
  • 이관은 Running 상태의 EC2 만 해당되며 Stopped 상태의 EC2는 수동으로 인스턴스를 재 배치한 뒤, 인스턴스 시작해야 한다.
  • 이관된 EC2의 모든 정보는 동일하나 EIP를 적용하지 않은 EC2의 퍼블릭 IP는 변경된다.
  • 서비스 복구까지의 시간은 8 ~ 10분 정도 소요된다. 실행 중인 EC2 대수에 따라 더 오래 걸릴 수 있다.