프로젝트가 끝나고 불륨 크기와 인스턴스 유형을 많이 낮춰 프리티어 조건에 맞춰 나가는 돈을 줄여야 했다.
그래서 스냅샷을 뜬 다음 해당 스냅샷으로 불륨을 생성한 이후 해당 불륨을 인스턴스에 연결해 시작하려고 하니....
이런 오류가 떴다.
왜 인지는 오류 내용에서도 알 수 있는데 인스턴스의 루트 디바이스에 적용된 불륨이 없다는 뜻!!
그래서 생각해보니 얼핏 불륨을 인스턴스에 연결할 때 디바이스 이름이 default로 /dev/sdf였던거 같은데 그냥 넘긴 것 같다.
그래서 이번엔 다시 연결을 할 때 /dev/sda1로 설정을 하고 인스턴스에 연결을 했다.
그랬더니...
다시 시작이 가능해졌다!!
평소에 EC2를 사용을 하지 않을 때는 인스턴스를 중지시켰다가 사용할 때만 키는 식으로 진행하면서 인스턴스 유형을 변경해야 할 때는 불륨을 분리해 새 인스턴스에 연결을 해주었다.
인스턴스를 중지를 하고도 재시작을 하면 해당 인스턴스내의 데이터들은 보존이 되어 기본설정이 그렇게 되어있는 줄 알았다.
하지만 이번에 알게된 것이 인스턴스가 시작할 때의 지정한 AMI에 따라 루트 디바이스로 인스턴스 스토어 불륨과 EBS 불륨중 하나로 결정된다는 것이다.
초기에 루트 디바이스는 AWS EC2의 인스턴스 스토어가 모든 AMI를 지원하였기 때문에 S3에 저장된 템플릿으로부터 생성된 인스턴스 스토어 불륨이었으며 AWS EBS가 나온 이후에는 EBS의 지원을 받는 AMI가 도입되어 해당 AMI로 시작한 인스턴스는 EBS 스냅샷으로부터 생성된 EBS불륨이 루트 디바이스 불륨으로 저장되었다.
AWS에서는 EBS불륨을 지원하는 AMI를 사용할 것을 권장하는데 그 이유는?
인스턴스 스토어 불륨은 기본적으로 중지가 되든 종료가 되든 내부 데이터가 전부 삭제되기 때문에 여러 가용영역에 데이터를 분산하는 것과 정기적으로 데이터를 영구 스토리지로 백업해 운영할 것을 권장하고 있다.
하지만 EBS불륨은 중지를 해도 데이터가 손실되지 않으며, 인스턴스 유형을 변경해야 할 경우 해당 불륨을 스냅샷 떠서 새 인스턴스에 연결만 시켜주면 된다.
EBS불륨도 인스턴스를 종료하면 데이터가 다 삭제되는데 DeleteOnTermination 속성을 false로 설정해주면 종료가 되더라도 보존이 되도록 할 수 있다고 한다.
사실 EBS에 대해서 기본적인 공부를 하고 사용을 했다 생각했는데 인스턴스를 완전히 종료를 해도 데이터를 보존하거나 불륨 유형에 EBS불륨 말고도 있다는 건 모르고 사용하고 있었다.
어떻게 보면 중요한 내용들을 모르고 사용하고 있었다고 느낀다.. 다른 불륨 유형을 사용할지는 모르겠지만 인스턴스를 중지만 해도 데이터들이 사라지니...
AWS의 서비스를 이용할 때는 항상 연관된 링크의 설명들도 꼼꼼히 읽어보는게 맞다고 다시 한번 느낀다.