AWS 공부를 위해 서버를 추가로 만들다 보니 요금이 부담되 프로젝트가 배포된 AWS EC2 서버를 중지했다.
그런데 이게 왠걸 중지하고 나니까 퍼블릭 ip가 바뀌어서 프로젝트에 접근할 수가 없다😫 심지어 키 파일은 내 컴퓨터에 없어서 도저히 들어갈 방법이 없다 그래서 구글링하다가 키 페어 파일 변경하는 법을 알게 됐는데 나중에 까먹지 않기 위해 기록한다. 많은 시행착오를 겪은 후 나처럼 어렵고 두렵고 떨린 마음을 가진 초보자들을 위해 모든 걸 다 친절히 써주겠다. 자 시작해보자!
1. AWS에 접속해 기존 인스턴스와 동일한 서버를 만들어준다(다 동일해야 한다!). 키 페어 파일도 새로 만들어야 한다면 만들어준다
2. 복구해야 할 인스턴스(편의상 1번)와 복구를 위해 만든 임시 인스턴스(편의상 2번) 둘 다 중지 시켜준다
-> 중지해야 볼륨이 분리된다! (중지되는데 시간 좀 걸림)
3. 왼쪽 메뉴에 Elastic Block Store -> 볼륨에 들어간다
4. 밑에 그림처럼 1번 컴퓨터에 마우스 오른쪽 누르고 볼륨 분리를 클릭
5.이렇게 1번 인스턴스가 사용가능으로 바뀌면 다시 1번 컴퓨터 마우스 오른쪽 버튼 눌러서 볼륨 연결
6. 1번이 복구할 인스턴스의 볼륨이고 2번이 복구를 위해 사용될 인스턴스의 볼륨이다
그래서 복구를 위해 사용될 인스턴스의 볼륨 즉 2번 컴퓨터의 볼륨을 선택해서 연결한다
설명에도 있듯이 볼륨은 하드 디스크 드라이브 같은 것이고 여기에 보통 키 파일이 있기 때문에 우리는 새로운 키페어를 가지고 있는 볼륨을 연결하는 것이다
쉽게 말해 1번 컴퓨터 머리 속에 2번 컴퓨터 뇌가 있어 뇌에 있는 키 정보를 1번 컴퓨터로 가져오겠다는 것이다. 설명을 쓰고 보니 이게 더 어려운 거 같다 어쨌든 넘어가자
7. 볼륨 선택하면 자동적으로 디바이스 이름이 들어갈텐데 그대로 사용한다
8. 이제 2번 컴퓨터 인스턴스를 다시 시작해주고 새로 생성한 키 파일이 있는 폴더 위치에서 터미널을 열어 접속해준다(나같은 경우는 git bash를 사용했다)
9.자 리눅스 서버라고 쫄지말자 그냥 lsblk를 치면 뾰로롱 밑에 처럼 xvdf 밑에 xvdf1이 보일 것이다. 이거 되면 마음고생 끝났다 그냥 다 끝났다고 보면 된다
10. 여기서부터 중요하다
sudo mkdir /mnt/tempvol
이 명령어는 키를 복사할 디렉토리를 만드는 것이다.
참고로 mkdir -> make directory -> 폴더를 만든다 는 명령어다
그리고 나서
sudo mount /dev/xvdf1 /mnt/tempvol
아까 우리가 찾은 xvdf1 파일을 방금 만든 디렉토리에 마운트 한다
그리고 대망의 키를 이제 복사할 시간이다
sudo cp ~/.ssh/authorized_keys /mnt/tempvol/home/bitnami/.ssh/authorized_keys
cp -> copy -> 복사한다는 명령어다
자 위 경로대로 가보면 와우 정말 authorized_keys가 있다(이거 발견하고 울뻔했다😭)
나같은 경우는 bitnami 를 써서 명령어가 저런데 대부분 ubuntu를 쓸테니 앞으로 나오는 코드에 bitnami는 다 ubuntu로 바꿔도 무방하다(원래 내가 찾았던 정보들은 다 ubuntu여서 나는 bitnami로 바꿨다 뒤에 나오는 코드들은 사실 다 ubuntu에 해당한다)
cd /mnt/tempvol/home/bitnami/.ssh/
자 이제 복사한 폴더로 이동해서 읽기 가능 설정을 해주자
sudo chmod u+r authorized_keys
chmod -> change mode -> 모드 변경한다는 명령어다
sudo chown bitnami:bitnami authorized_keys
chown -> change own -> 소유 변경한다는 명령어다
이렇게 소유자를 변경하고
sudo umount /mnt/tempvol
마운트를 해제한다
11. 이제 다시 2번 컴퓨터의 인스턴스를 중지하고 1번 컴퓨터의 볼륨을 분리하고 원래 본인의 볼륨을 연결한다. 이때! (완전 중요함 나 이거 때문에 겁나 헤맴)
스토리지에 루트 디바이스 이름을 꼭꼭 확인하여 연결 시 7번 단계에 있는 사진에서 보는 것처럼 디바이스 정보를 루트 디바이스 이름으로 써주길 바란다(보통은 그냥 연결하면 자동으로 나오는게 다 되는거 같은데 나는 bitnami여서 그런지 저 이름으로 연결해야 했다. 혹시 모르니 꼭 루트 디바이스 이름으로 연결해줘야 한다!
12. 자 이제 다시 볼륨 연결까지 다했으면
짜잔
본인이 ssh 방식으로 접속할 때 새로운 키 페어 파일 이름으로 접속해주면 된다! 물론 인스턴스 중지를 여러 번 해서 ip주소는 바뀔 수 있으니 ip 주소 바뀐 것도 잘 적용해줘야 한다!
'개발 공부 > 오류 해결' 카테고리의 다른 글
EC2 복구 회고록(블로그 글을 믿지 말자) (0) | 2023.06.06 |
---|---|
EC2에서 innoDB 손상 시 해결 방법(2) (1) | 2023.03.22 |
EC2에서 innoDB 손상 시 해결 방법(1) (1) | 2023.03.22 |