반응형
1. 개요
- EC2에서 작업을 하다가 Critical한 이슈가 발생한 경우, EC2 Instance에 접근을 못하는 경우 등 여러가지 이유로 Root Volume을 다른 Instance에 붙여서 복구 작업을 진행해야 하는 경우가 있다
- 사람일은 누구나 모르기 때문에 Root Volume을 다른 Instance에 붙여서 원인을 파악한 이후 복구하는 방법에 대해 알아보도록 하겠다.
2. 실습
- 실습하기 전에 알아두면 좋은 내용들에 대해서 링크를 걸어둠
- EC2에 Attach되는 Storage들은 타입이 무엇인지, Root Volume 전용인지 등에 따라 다르게 부여된다.
실습 환경
Public Subnet에 있는 EC2 Instance 2대
- A : 접속이 불가능하며, 복구해야 할 EC2
- ⇒ Root Volume을 B에 붙일 것임
- B : 접속이 가능하며, 해당 인스턴스에 A의 Root Volume을 임시 마운트시켜 복구할 예정
1. 인스턴스에 문제가 발생
- 'A' 인스턴스의 ec2-user 디렉터리의 권한을 600으로 고의로 수정
- Server refused our key 오류가 발생함
- (ec2-user 홈 디렉터리 내부에 접근을 못하기 때문, 결국 다른 Instance에 Mount하여 복구를 해야 함)
2. 인스턴스 Stop한 이후 Volume 옮기기
- Instance 중지
- Root Volume 떼어내기 (인스턴스에 붙어 있는 Root Volume 정보 적어둘 것 => 나중에 다시 Root Volume을 붙일 때 동일한 Device Name (/dev/xvda)으로 붙여야 하기 때문 )
- 떼어낸 볼륨을 다른 Instance에 Attach하기
3. Mount하기
- 특정 디렉터리( ex> /mount )에 Mount를 할 것
sudo su -
mkdir /mount
mount /dev/xvdf1 /mount
- 만약 다른 인스턴스의 Root Volume과 떼어낸 Volume의 UUID가 같을 경우, mount를 할 때 오류가 발생할 수 있다. 아래 blkid 명령어로 확인해 본 결과 UUID가 같았다
- 그럴 경우, uuidgen 명령어로 새로운 UUID를 받아내고 xfs_admin 명령어를 통해 새로운 UUID를 기입해준다 (해당 파일시스템 타입이 xfs이기 때문에 xfs_admin 명령어를 사용했지만 ext4일 경우 다른 명령어로 작업을 수행할 수 있을 것임)
1. uuidgen으로 UUID 발급받은 이후 수동 기입
uuidgen
xfs_admin -U <<UUID>> /dev/nvme2n1
2. generate로 자동 UUID 발급받아 기입하기
xfs_admin -U generate /dev/xvdf1
- 이후 mount 명령어로 떼어낸 볼륨을 마운트 할 수 있을 것임
- UUID 변경 후 Mount할 경우, 이전의 UUID를 기억하고 있어야 한다. 모든 작업을 마친 이후 UUID를 다시 원상복구 시켜주어야 함 ⇒ 원상복구 시키지 않으면, /boot/grub2/grub.cfg 의 UUID값과 다르기 때문에 부팅이 되지 않고, Status Check를 통과하지 못한다.
- 만약 UUID를 변경하고 싶지 않으면 아래의 명령어로 Mount하면 된다.
mount -o nouuid /dev/xvdf1 /mount
4. Trouble Shooting 후 나머지 작업
- 마운트 디렉터리로 이동하여 원상복구 시켜줌
- umount로 마운트 해제 ( UUID를 변경한 이후 Mount 했다면 이전 UUID로 복구시킬 것 )
- 다른 인스턴스로부터 Volume을 Detach하기
- Stop 시켰던 원래의 Instance에서 Volume 다시 붙이기
- ( 기입해놨던 Device명인 /dev/xvda 그대로 다시 적어준다. )
- 인스턴스 재기동 이후 접속 여부 및 변경되었는지 확인
반응형
'AWS' 카테고리의 다른 글
AWS IAM을 통한 인증, 인가 (0) | 2021.07.24 |
---|---|
[AWS] IAM Policy JSON 알아보기 (0) | 2021.07.24 |
AWS와 Azure간 Transit Gateway을 통한 Site to Site VPN 연동 (2) | 2021.07.20 |
[AWS] Amazon EC2 Instance 유형 알아보기 (1) | 2021.06.05 |
[WEB, WAS] 앞단에 ALB가 있을 때 Apache, Tomcat의 Log에서 Client IP 노출 설정 (1) | 2021.05.29 |