Skip to content

서비스 장애 보고서 (191212~191226)

Sunghyun Cho edited this page Dec 26, 2019 · 1 revision
최초 장애 보고 해결 날짜 장애 종류 해결책
2019년 12월 12일 오전 11:04 2019 12월 26일 오후 8:19 Domain Expired Cafe24에서 도메인 1년 연장

사건 경위

  • 2019년 12월 9일 kmlaonline.net 도메인이 만료됨.
  • 2019년 12월 12일 KMLA Online에 접속할 수 없게 됨. kmlaonline.net 도메인이 결제 실패한 것이라고 판단함.
  • 2019년 12월 13일 kmla.online 도메인을 GoDaddy에서 구매하여 임시로 연결함. 하지만 KMLA Online의 Nginx 서버 Certbot은 kmlaonline.net에 해당하는 인증서만 가지고 있었으며, 서버의 nginx.conf 또한 kmlaonline.net/fullchain.pem을 참조하고 있어 접속 시 Unsecure Website 경고가 발생함. 이는 인증서의 도메인과 접속하는 서버의 도메인이 일치하지 않아 HTTPS Certificate가 유효하지 않아 발생한 현상임.
  • 2019년 12월 14일~15일 이를 해결하기 위해 Certbot에 kmla.online 주소를 발급 받아 추가하고 nginx.confkmlaonline.net/fullchain.pem 등의 값들을 수정함. Arch Linux의 Certbot이 2019년 12월 4일 버전이 업그레이드되면서 Certbot 버전이 맞지 않는 문제가 발생한 듯 보였는데, pip에서 Certbot을 설치함으로써 해결함.
  • 하지만 Nginx 설정이 꼬이는 바람에 kmla.online 인증서는 동작하지 않았음. 다음과 같은 에러 메시지가 발생하며 404 Not Found가 지속적으로 발생함. 아마 nginx.conf가 참조하던 인증서 값이 유효하지 않았던 것으로 판단됨.
nginx: [emerg] BIO_new_file(“/etc/letsencrypt/live/kmla.online/fullchain.pem”) failed
  • 12월 23일부터 도메인을 결제하기 위한 방법을 찾아봄.
  • 12월 26일 도메인 주인 계정이 결제하지 않아도 도메인을 연장할 수 있다는 사실을 확인함. Cafe24는 로그인을 하지 않을 시 도메인 직접 입력해서 연장이라는 기능을 제공함. 이를 이용하면 kmlaonline.net 도메인을 결제할 수 있음.
  • 반면 도메인 주인 계정으로 추정되는 계정을 찾았는데, "로그인하실 수 없습니다. 자세한 사항은 고객센터로 문의해 주십시오."라는 경고 메시지가 발생하며 계정에 접근할 수 없었음. 우선 도메인을 수동으로 1년 연장하였으니 다음 단계로 넘어감.
  • 본래 계획은 nginx.conf를 수정하기 이전의 Linode Backup으로 Roll Back하는 것이었는데, 시간이 3주가 흐르는 바람에 Backup이 만료됨.
  • 때문에 기존에 개설해두었던 테스트 서버를 백업 서버처럼 활용하여 기존의 nginx.conf를 복구함. (kmla.online → kmlaonline.net으로 변경 및 인증서 폴더 주소 변경)
  • 하지만 이미 도메인 인증서가 만료되어 메인 서버와 테스트 서버 모두 404 Error가 발생하는 상황이 발생함. (이 때 kmlaonline.net은 연결이 되어있었기 때문에 서버에 접속은 가능했으나 Internal Server Error가 발생한 것)
  • Certbot을 재설치하여 Webroot 폴더에 새로운 kmlaonline.net-0002을 발급함.
  • nginx.conf가 잘못 참조하고 있던 인증서 값을 모두 kmlaonline.net-0002로 변경함.
  • nginx -t로 nginx가 정상 동작하고 있음을 확인함.
  • 서버를 재부팅함.
  • 서비스가 정상 복구됨.

비슷한 문제가 발생하였을 시 대처법

  • 도메인이 만료되면 웹사이트 접속 시 Cannot Resolve Host라는 오류가 발생함.
  • 콘솔에서 whois kmlaonline.net을 입력할 시 Domain Expired Date를 확인할 수 있음.
  • 만약 도메인이 만료되었다면 Nginx 설정을 임의로 수정하기 앞서 Cafe24에서 수동으로 도메인을 연장해볼 것.