[EC2 - SSA Level] EC2 Hibernate 모드

728x90

EC2 Hibernate 모드

EC2 인스턴스를 중지하면 EBS 불륨은 다음번에 시작될 것을 대비해 그대로 유지된다.

EC2 인스턴스를 종료하면 EBS 불륨에 있는 모든 데이터, 심지어 루트도 삭제된다.

인스턴스를 시작할 때는 다음과 같은 일들이 차례로 발생한다.

첫번째로 OS 가 부팅되고 EC2 유저 데이터 스크립트를 읽어들여서 실행한다.

그 다음으로 내 어플리케이션이 시작할 때 인스턴스에 내부 캐시가 있을 경우 캐시도 워밍업된다.

이 모든 과정이 시간이 좀 걸릴 수도 있다.

그래서 EC2 Hibernate 라고 하는 옵션이 존재한다.

이 EC2 hibernate 를 사용하면 모든 메모리 상태가 보존된다. 즉, 인스턴스를 재시작할 때 인스턴스 부팅이 훨씬 빠르다.

왜냐하면 OS 는 중지되거나 재실행되지 않았기 때문이다.

EC2 Hibernate 옵션은 EC2 인스턴스의 상태를 최대 절전 모드로 변경한다는 것을 알 수 있다. 그래서 훨씬 빠르게 인스턴스를 킬 수 있는 것이다.

메모리 상태를 유지한다는 것은 무척이나 어려운 일이다.

RAM 의 전체 상태는 root EBS 불륨에 암호화되어 파일로 덮어씌워진다.

RAM 에는 암호화 된 Amazon EBS root volume 이 있고 인스턴스를 멈추고 EC2 Hibernate 모드 즉, 최대 절전 모드로 전환하면 암호화 된 Amazon EBS root volume 에 RAM 이 덤프된다.

그러면 인스턴스가 중단되고, 인스턴스를 재실행할 때 EBS 불륨에 덮어씌워진 RAM 의 파일들이 인스턴스의 RAM 으로 이동한다.

image

왜 이런 식으로 사용을 하죠??

장기 실행 프로세스를 계속 실행하려는 경우나 RAM의 상태를 저장하고 싶은 경우, 또는, 초기화하는데 너무 많은 시간이 걸리는 서비스들이 있을 때 인스턴스를 최대 절전 모드(Hibernate) 로 전환하고 재실행하면 인스턴스 상태가 유지된다.

EC2 Hibernate 를 지원하는 인스턴스 유형들이 존재한다.

아래 사진처럼 C 시리즈와 M, R 시리즈에서 Hibernate 기능을 지원한다.

또한, 인스턴스의 RAM 크기는 반드시 150GB 보다 작아야 한다.

그래서 엄청나게 큰 크기의 root EBS volume 이 필요로 하며, Amazon Linux 2, Amazon Linux, Ubuntu, Windows 등의 AMI 에서 Hibernate 를 지원한다.

Root Volume 은 반드시 EBS 여야하고, 암호화 돼있어야 하며, 인스턴스를 저장할 수 없고, 전체 RAM 크기의 덤프를 지원할 만큼 엄청 큰 크기를 가져야 한다.

마지막으로 온디맨드와 예약 인스턴스에서만 사용 가능하다. 또한, 60일 이상 최대 절전 모드를 할 수 없다.

image

728x90