RDS가 다운되었다.

사유

  1. 기존에는 부트캠프 계정에서 RDS를 포함한 모든 인스턴스들을 굴리고 있었음
  2. 부트캠프 과정이 끝나면서 회사 계정(내 계정)으로 migration을 수행
  3. 마이그레이션 자체는 전부 완료 되었으나, 미처 파악하지 못한 문제 발생
    1. RDS스냅샷을 공유하는 방식으로 migration하였으나, 해당 RDS 스냅샷을 암호화하는 KMS 키가 소마계정이 보유한 KMS 키임
    2. 부트캠프 계정이 보유한 KMS 키를 통해 암호화 된 RDS를 퍼블리쉬 중이었는데 계정이 삭제됨에 따라 KMS 키 또한 소실
    3. 회사 계정에서 RDS를 접근할 수 없는 문제 발생
  4. RDS를 암호화한 key 자체가 사라진 상황이기 때문에 기존 계정을 복구하지 않으면 아무것도 할 수가 없음
  5. AWS support에 빠르게 문의해서 해지했던 계정의 복구를 요청
  6. 일단 빠르게 임시 로컬DB 띄우고 며칠전에 만들어뒀던 sql 백업 기준으로 올려놓음. alembic으로 쭉 버전 올리고 sql scp로 던져서 바로 입혀놨음.
    1. 대기업들이 foreign key 제약조건 잘 안쓴다는 이유를 이제알겠다. 이런 백업 할때 정합성 엄청 깨져나가서 잘 안됨…
  7. 답변이 올때까지 대기중 4. 이 과정에서 시스템 담당 측에 연락을 해서 해결하려 했으나, AWS에 그냥 연락하라고.. 뭐 도와준다고 했는데 딱히 도움이 되지는 않았음 5. 한글로 문의 넣으니까 계속 문의 대기 상태고 아무 진전이 없음. 6. 서버가 다운된지 10시간정도가 지나고, 도저히 안되겠다 싶어서 모든 방법을 다 시도함. 7. 영어로 문의하고 전화번호를 제출하자마자 1분내에 전화가 왔고, 텍사스에서 전화가 걸려왔음 8. 전화하면서 얘기좀 나누니까 1분만에 계정이 복구됨.. 진작에 영어로 문의 넣을걸 9. 복구 되자마자는 KMS가 복구되지 않았는데, 10분정도 기다리니 권한이 복원되고 key에 접근 가능해짐
  8. KMS 키가 복구되자마자 스냅샷 새로 따고 타겟 계정의 key로 재 암호화 시킴
  9. 타겟 계정의 key로 암호화된 스냅샷 복원
  10. (6~7) 과정이 진행되는 동안 소실됐던 데이터들을 전부 밀어넣음 10. 그와중에 새로 들어오신 유저분들도 계셔서 전부 로컬 DB 기반으로 처리
  11. 복구 완료

정말 힘든 사투였다. 교훈

  • 할수있는건 다 시도하자. 다 시도했다고 생각할때쯤 또 더 시도하자