일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ncp
- AWS
- Dedup
- Linux
- ALB
- 테라폼
- storage gateway
- 네이버 클라우드 플랫폼
- terraform
- FSX
- lambda
- Windows
- Subnet
- EC2
- AD
- RDS
- CLI
- CloudFront
- Python
- 도메인
- Jenkins
- NaCl
- Storage
- VPC
- 윈도우
- S3
- route table
- security group
- dns
- Athena
- Today
- Total
끄적이는 보송
[AWS] EC2 인스턴스 키 파일 유실됐을 때 본문
EC2 인스턴스 키 파일이 분실되거나 혹은 키 파일 지정 없이 EC2 인스턴스를 생성하면... 접속할 방법이 정말 없을까 문득 생각이 들었다. 그래서 바로 해보았다.
OS 환경은 Amazon Linux 2 이며 키 분실 혹은 생성 시 미배정으로 접속하지 못하는 EC2 인스턴스의 루트 볼륨을 임시 EC2 인스턴스에 부착해 키를 배정하고 접속을 가능케 하고자 한다.
EBS Root 볼륨을 옮기기 위한 사전 작업
접속이 안되는 문제의 Temp Server다. Root EBS 볼륨을 떼어내기 전, Stop 해주자.
문제의 Temp Server는 서울 리전의 가용영역 ap-northeast-2c에 위치해 있다. 루트 볼륨 작업을 위한 임시 서버 Temp Server2 또한 같은 곳에 구축해주자. Temp Server와 Temp Server2의 EBS 볼륨 위치가 동일하다.
EBS Root 볼륨 Detach & Attach
임시 서버 Temp Server2에 접속 및 EBS 볼륨 확인
문제의 서버 Root EBS 볼륨 마운트 및 오류해결
mount: /mnt/mounttest: wrong fs type, bad option, bad superblock on /dev/xvdb1, missing codepage or helper program, or other error
볼륨을 마운트를 시도 했지만 다음과 같은 에러 메시지와 함께 문제가 발생한다. 원인이 뭘까... 내가 찾아낸 원인은 EC2 인스턴스에 Attach 된 EBS 볼륨의 UUID가 같아 생긴 것이다. 아마도 두 서버가 같은 AMI (Amazon Linux 2) 이어서 그런거 같은데 다른 AMI를 사용했으면 값만 달랐지 동일한 결과가 있었을 거라고 예상된다.
UUID는 Universally unique identifier의 약자이며 Linux 운영체제에서 파티션을 고유하게 식별할 수 있는 값이다.
동일 UUID 값으로 생긴 마운트 에러 문제 해결
[ec2-user ~]$ sudo mount -o nouuid /dev/xvdf1 /mnt/tempvol
아주 간단히 해결할 수 있다. 위 명령어로 같은 UUID 값을 가지고 있는 볼륨도 마운트 할 수 있다. 굳이 UUID 값을 변경하지 않고도 말이다. UUID 변경을 원한다면 파일 시스템에 따라 다르겠지만 ext 계열은 tune2fs 커맨드로, xfs 계열은 xfs_admin 커맨드로 변결할 수 있다. 그 외 다른 것도 있겠지만 기회가 된다면 나중에 공부하면서 다뤄볼 예정이다.
Mount 된 EBS 볼륨에 키 값 넣기
키 값 복사 후, Unmount
다시 EBS 볼륨을 Temp Server에 부착
서버 접속 성공!
문제의 Temp Server에 접속 성공하였다. Elastic Beanstalk는 가볍게 무시해주자. 이거 알아보려 했다가 엉뚱하게 꼳혀서이 글 쓴거니까;; 문제가 있어 접근하지 못한 EC2 인스턴스의 볼륨을 접근할 수 있는 다른 EC2 인스턴스에 임시로 연결하여 접근 및 해결한 것을 다뤄보았다. 참고로 키 값을 부여 했어도 콘솔상에는 해당 EC2 인스턴스 마우스 우 클릭 후, Connect를 클릭하면 여전히 SSH 통신이 오류가 될꺼라는 경고 메시지가 있고, Instance Details란에 Key Pair Name은 여전히 공백란이지만 서버는 정상적으로 접근 가능하다. 이유는 모르겠다. 아마존이 그냥 그런건가..
아마존 공식 문서에도 올라와있다. 이런 방법도 있을꺼 같아 해봤는데 실제로도 사용하는 방법인듯 하다.
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/replacing-lost-key-pair.html
잘못된 내용 지적과 조언은 언제나 달게 받겠습니다 :)
'STUDY > AWS' 카테고리의 다른 글
[AWS] 자격 증명 없이 EC2에서 S3 액세스 (0) | 2022.02.18 |
---|---|
[AWS] CLI 환경에서 AWS S3 생성, 업로드, 다운로드 하기 (0) | 2021.07.13 |
[AWS] AWS Configure 구성 (0) | 2021.07.04 |
[AWS] AWS Free Tier 만료일 확인하기 (0) | 2021.07.04 |
[AWS] AWS CLI 및 AWS Configure 설치 구성 (0) | 2021.07.04 |