여러 Region을 사용하기 위해서 작업을 하고 있는 중입니다.
Region마다 서로 다른 Key Pairs를 사용하기 귀찮아서 단일 Key Pairs를 사용할수 없나 검색 해보니, 기존에 AWS에서 생성한 Key Pairs는 사용할수 없고 직접 키를 하나 생성해서 여러 Region의 Key Pairs에 등록하라는 내용이 나오더군요.
아무 생각없이 기존 Key Pairs는 삭제하고, 직접 키를 생성해서 Key Pairs에 등록했습니다. 그리고 기존 AMI로 EC2를 만들어서 새로 생성한 키로 접속을 시도해 보니 왠걸 유효하지 않은 키라고 로그인이 되지를 않더군요.
키를 잘못 만들었나 싶어서 다시 계속 생성해서 시도해 봐도 안됐습니다. 혹시나 싶어서 기존 생성된 AMI말고 Market에 있는 CentOS AMI로 시도해보니 잘되내요.
알고보니 기존 AMI를 이용해서 새로운 Key Pairs로 EC2를 생성해도, AMI에 포함된 authorized_keys를 새로운 Key Pairs의 public key로 갱신을 안해주더군요.
어떻게든 authorized_keys에만 접근해서 수정하면 되는 문제라고 생각되서, 기존 AMI에서 Volume만 띠어내서 Market의 CentOS AMI로 만든 EC2에 붙이려고 했습니다.
하지만 “‘vol-xxxxxxxx’ with Marketplace codes may not be attached as a secondary device.”라는 에러가 뜨면서 절대 붙지를 않더군요. 검색 해보니 Market 보안 문제 이슈로 제공을 안하고 있고, AWS Marketplace team은 이를 지원하기 위해서 열심이 노력중이라는군요.
그걸 보고 잠시 멘붕이 왔습니다. 하하;
멘탈을 잠시 회복하고 생각을 해보니, private key를 구글드라이브에도 보관하고 있었으니 휴지통에 남아있을 거라는 생각이 들었습니다. 뒤져보니 다행이 private key가 휴지통에 곱게 모셔저 있더군요!
휴지통에서 건진 private key로 public key를 만들어서 Key Pairs를 등록하니 다행이 기존 AMI에서 만든 EC2에 접속이 가능 해졌습니다.
그때 뭔가 문득 떠올라서 다른 Region에도 똑같은 방식으로 Key Pairs를 등록했더니 다른 Region에서도 잘 사용 되내요.
그냥 자기가 기존에 만들어서 사용하던 Key Pairs의 private key로 public key 만들어서 다른 Region에 등록하면 되는거 였던 겁니다.
이렇게 쉬운걸 지금까지 삽질하고 있었다니… ㅜㅜ
삽질한걸 적다보니 스크롤이 많이 길어 졌내요. 짧게요약하면 아래와 같습니다.
1. 기존 AMI에 새로운 Key Pairs를 사용해서 EC2를 만들어도, AMI가 포함하고 있는 authorized_key는 갱신되지 않는다.
2. 새로운 Region에 기존 사용하던 Key Pairs를 사용하고 싶으면, 기존 Key Pairs의 private key로 publick key만 만들어서 새로운 Region의 Key Pairs에 등록하면 된다.
3. AMI로 생성한 EC2의 Volume은 다른 EC2에 붙일수 없다(이걸 허용하면 AWS Marketplace vendor software의 보안에 문제가 생길수 있어서 현재 막혀있다).