인스턴스 종료가 동작하는 방식
인스턴스 종료가 동작하는 방식
인스턴스를 종료하면 인스턴스의 운영 체제(OS) 수준에서 변경 사항이 등록되고, 일부 리소스는 손실되며 일부 리소스는 유지돼요.
출처: 문서
본문
다음 그림은 Amazon EC2 인스턴스가 종료될 때 손실되는 것과 유지되는 것을 보여줘요. 인스턴스가 종료되면 인스턴스 스토어 볼륨의 데이터와 인스턴스 RAM에 저장된 데이터가 지워져요. 인스턴스와 연결된 Elastic IP 주소는 분리돼요. Amazon EBS 루트 볼륨과 데이터 볼륨의 경우 결과는 각 볼륨의 Delete on termination 설정에 따라 달라져요.
고려 사항
데이터 영속성
- 인스턴스 스토어 볼륨: 인스턴스가 종료되면 모든 데이터가 영구적으로 삭제돼요.
- EBS 루트 볼륨:
- 실행 시 연결된 경우: 인스턴스가 종료되면 기본적으로 삭제돼요.
- 실행 후 연결된 경우: 인스턴스가 종료되면 기본적으로 유지돼요.
- EBS 데이터 볼륨:
- 콘솔로 실행 시 연결된 경우: 인스턴스가 종료되면 기본적으로 유지돼요.
- CLI로 실행 시 연결된 경우: 인스턴스가 종료되면 기본적으로 삭제돼요.
- 콘솔 또는 CLI로 실행 후 연결된 경우: 인스턴스가 종료되면 기본적으로 유지돼요.
참고 — 인스턴스 종료 시 삭제되지 않는 볼륨은 계속 요금이 발생해요. 인스턴스 종료 시 볼륨을 삭제할지 유지할지 설정을 변경할 수 있어요. 자세한 내용은 인스턴스가 종료될 때 데이터 보존하기 문서를 참고하세요.
실수로 인한 종료 방지
- 누군가 인스턴스를 실수로 종료하지 못하게 하려면 종료 방지를 활성화하세요.
- 인스턴스에서 종료가 시작될 때 인스턴스를 중지할지 종료할지 제어하려면 **인스턴스 시작 종료 동작(instance initiated shutdown behavior)**을 변경하세요.
종료 스크립트
- 인스턴스 종료 시 스크립트를 실행한다면 인스턴스가 비정상적으로 종료될 수 있어요. 종료 스크립트가 실행된다는 보장이 없기 때문이에요. Amazon EC2는 인스턴스를 깨끗하게 종료하고 시스템 종료 스크립트를 실행하려 시도하지만, 하드웨어 장애 같은 특정 이벤트는 시스템 종료 스크립트 실행을 막을 수 있어요.
베어 메탈 인스턴스
- x86 베어 메탈 인스턴스는 협력 종료(cooperative shutdown)를 지원하지 않아요.
인스턴스를 종료하면 일어나는 일
OS 수준에서 등록되는 변경 사항
- API 요청이 게스트에 버튼 누름(button press) 이벤트를 보내요.
- 버튼 누름 이벤트로 인해 다양한 시스템 서비스가 중지돼요. 시스템의 정상 종료는 Linux는
systemd, Windows는 System 프로세스가 제공해요. 정상 종료는 하이퍼바이저의 ACPI 종료 버튼 누름 이벤트에 의해 트리거돼요. - ACPI 종료가 시작돼요.
- 정상 종료 프로세스가 끝나면 인스턴스가 종료돼요. 구성 가능한 OS 종료 시간은 없어요. 인스턴스는 잠시 동안 콘솔에 표시되다가 항목이 자동으로 삭제돼요.
손실되는 리소스
- 인스턴스 스토어 볼륨에 저장된 데이터.
DeleteOnTermination속성이true로 설정된 경우 EBS 루트 볼륨.DeleteOnTermination속성이true로 설정된 경우 EBS 데이터 볼륨(실행 시 또는 실행 후 연결).
유지되는 리소스
DeleteOnTermination속성이false로 설정된 경우 EBS 루트 볼륨.DeleteOnTermination속성이false로 설정된 경우 EBS 데이터 볼륨(실행 시 또는 실행 후 연결).
인스턴스 종료에 대한 애플리케이션 응답 테스트
AWS Fault Injection Service를 사용해 인스턴스가 종료될 때 애플리케이션이 어떻게 응답하는지 테스트할 수 있어요. 자세한 내용은 AWS Fault Injection Service User Guide를 참고하세요.
더 알아보기
- 종료하기 (Terminate)
- 인스턴스 종료 방법