EC2 Hibernate
- 기존 패턴으로는
EC2 인스턴스를 중지 (stop) 할 때, 디스크의 데이터 (EBS) 는 다음 시작을 위해 그대로 유지
EC2 인스턴스를 종료 (Terminate) 할 때, 디스크의 데이터 (root) 는 손실되고 파괴됨
하지만 EBS 볼륨이 보조 드라이브에 첨부되어 있다면 인스턴스가 종료될 때 디스크의 데이터가 파괴되지 않으며 데이터 유지 - 인스턴스를 첫 번째 시작할 때는 운영 시스템은 부팅한 후 EC2 사용자 데이터에서 스크립트를 가져와 실행
인스턴스를 멈추고 다시 시작할 때는 운영 시스템이 부팅되고 앱 시작, 내부 캐시 워밍업
앱이 시작하는 것이 조금 늦거나 캐시가 워밍업되는 것이 늦을 수 있는데 이를 위해 EC2 Hibernate 옵션 사용 (최대절전모드)
EC2 Hibernate – Good to know
- EC2 Hibernate를 사용하면 운영 시스템이 중지되지 않으므로 (운영 시스템이 여전히 켜져있음, RAM이 사라지지 않았으므로)
RAM에 있는 모든 메모리내에 상태가 보존되어 최대절전모드 이후에 인스턴스를 재시작할 때 인스턴스 부팅이 훨씬 더 빠름
즉, EC2 인스턴스의 상태가 얼어있거나 최대절전모드가 되어 있는 것과 같은 상태이므로 훨씬 빠르게 재시작이 가능한 것 - RAM의 전체 상태는 root EBS 볼륨에 파일로 쓰여지고 암호화되어 있는 것
Running : EC2 인스턴스가 작동하고 있고 RAM에는 암호화된 Amazon EBS root volume이 있음
Stop - Hibernate : 멈춘 후 최대절전모드로 전환하면 암호화된 Amazon EBS root volume에 RAM이 쓰여짐
Shutdown, Stopped : 쓰여진 후 인스턴스가 중단됨
Start : 다시 시작될 때, RAM은 EBS Volume에서 인스턴스의 RAM으로 이동한 후
Running : 인스턴스가 실행됨
- 장기 실행 프로세스를 계속 실행하거나 RAM 상태를 저장하려는 경우, 혹은 초기화하는데 많은 시간이 걸리는 서비스에 사용하여
인스턴스를 최대절전모드로 전환하고 재시작하면 인스턴스 상태가 유지 - Hibernate 사용에는 제약 조건이 있음
1) Supported instance families : 현재 C3, C4, C5, M3, M4, M5, R3, R4, and R5 인스턴스 패밀리만 지원
2) Instance RAM size : 모든 RAM을 디스크에 넣기 위해서 인스턴스 RAM 사이즈는 반드시 150GB 보다 작아야 하는 한계
3) Instance size : 베어메탈 인스턴스에는 지원되지 않음
4) AMI : Amazon Linux 2, Linux AMI, Ubuntu & Windows 지원
5) Root Volume : 인스턴스 store는 사용할 수 없으며 EBS에만 사용 가능하며 암호화되어야하고 충분히 커야함
6) 온디맨드와 예약 인스턴스에서만 사용 가능, 스팟 인스턴스는 불가능
7) 인스턴스당 60일 이상의 최대절전모드는 할 수 없음
<EC2 Hibernate 모드 실습>
- 인스턴스 시작 - Amazon Linux 2 AMI 0 - t2.micro - 최대 절전 중지 동작 - 루트 볼륨 암호화 - launch-wizard-1 보안 그룹
인스턴스가 생성되었고 특정한 정지 동작으로 최대절전모드를 활성화했음 - 최대절전모드가 작동하는 것을 증명하기 위해 EC2 인스턴스 연결
uptime 명령어를 통해 인스턴스가 켜진 시간 (인스턴스가 마지막으로 다시 시작된 이후로 얼마나 지속되었는지) 을 알 수 있음
- 최대절전모드를 가동하기 위해서 인스턴스 상태를 유지하고 최대절전모드로 상태 변경 후 다시 시작
- 최대절전모드가 없다면 인스턴스를 중지하고 다시 시작할 때 uptime 명령을 사용하면 0분과 1분을 반환
하지만 최대절전모드를 사용할 경우 운영체제의 관점에서는 중지된 적이 없으므로 가동 시간이 5분인 것을 확인 가능
'Cloud > AWS' 카테고리의 다른 글
[SAA] EBS (0) | 2022.01.23 |
---|---|
[SAA] EC2 고급 개념 (Nitro, vCPU, 용량 예약) (0) | 2022.01.23 |
[SAA] ENI (탄력적 네트워크 인터페이스) (0) | 2022.01.22 |
[SAA] EC2 배치 그룹 (0) | 2022.01.22 |
[SAA] 프라이빗 vs 퍼블릭 vs 탄력적 IP (0) | 2022.01.21 |