Vercel 커스텀 도메인에 HTTPS 인증서가 안 붙을 때: 도메인을 DNS보다 먼저 추가한 경우
고객사 업무 시스템을 고객사 도메인의 서브도메인(shop.고객사도메인)에 붙이는 일이었습니다. 기존 홈페이지를 맡은 호스팅 업체에 CNAME 한 줄을 부탁했고, 이틀 뒤 「넣었다」는 답이 왔습니다. 그런데 주소를 열면 연결이 안 된다는 연락이 이어서 왔습니다.
서비스를 배포하고 안정적으로 운영하기 위한 구성을 다룹니다. 도메인·네트워크부터 캐시·모니터링·복구까지 살펴봅니다.
우리 서비스에 적용할 계획이 있으신가요?
클라우드 구축·배포 운영 살펴보기 →고객사 업무 시스템을 고객사 도메인의 서브도메인(shop.고객사도메인)에 붙이는 일이었습니다. 기존 홈페이지를 맡은 호스팅 업체에 CNAME 한 줄을 부탁했고, 이틀 뒤 「넣었다」는 답이 왔습니다. 그런데 주소를 열면 연결이 안 된다는 연락이 이어서 왔습니다.
Vultr 인스턴스와 다른 ISP 회선에 있는 서버 사이에서 패킷이 하루에 몇 번씩 사라졌습니다. 한 번 시작되면 1분에서 15분 동안 4080%가 손실됐고, 손대지 않아도 다시 멀쩡해졌습니다. 원인은 두 회사 망이 만나는 중간 구간에 있었고, 그 구간은 제 손이 닿지 않는 곳이었습니다.
배포 버튼을 누르고 얼마 뒤 모니터링에 502 가 몇 개 찍힙니다. 새 버전은 헬스체크를 통과했고, 옛 버전은 로드밸런서에서 뺐습니다. 순서대로 했는데 요청이 끊겼습니다. 같은 시각 브라우저 콘솔에는 ChunkLoadError 가 뜹니다. 방금 받은 페이지가 존재하지 않는 자바스크립트 파일을 달라고 한 것입니다.
오후에 사내에서 서비스가 통째로 안 열린다는 이야기를 들었습니다. 한 곳이 아니라 여러 곳이었습니다. 업무 시스템 데모도, 웹 데스크톱도, 파일 전송망도 전부 응답이 없었습니다. 그런데 같은 주소가 바깥에서는 멀쩡히 열렸습니다.
백업 현황 페이지에 칸을 하나 더 그려 올렸는데, 새 탭에서는 새 화면이 뜨고 랜딩 페이지의 데모 모달 안에서는 전날 화면이 떴습니다. 같은 주소, 같은 서버, 같은 파일인데 화면이 둘이었습니다. 원인은 응답 헤더 하나가 처음부터 빠져 있던 데 있었고, 그 헤더를 찾다가 같은 자리에서 빠져 있던 보안 헤더들도 같이 찾았…
매일 밤 서버에서 이런 명령이 돈다고 해 보겠습니다.
Better Stack 첫 화면에는 표가 하나 있습니다. 한 달에 트레이스·로그·지표를 각각 1TB씩 보낼 때 Datadog은 약 $55,574, Better Stack은 $687이라고 적혀 있습니다. 표 아래 각주는 이 숫자가 추정치이며 연 결제, 유럽 데이터 위치, 응답자 1명, Tera 번들, 평균 이벤트 크기 1…
글을 두 편 발행하고 사이트맵을 열어 봤습니다. 둘 다 없었습니다.
회선을 두 배로 넓혀도 TTFB 는 거의 그대로입니다. 서버를 한 대 더 붙여도 마찬가지입니다. 그런데 같은 서버를 사용자와 가까운 리전으로 옮기면 절반으로 떨어집니다.
역방향 SSH 터널로 오리진을 내보내는 구성에서, 터널 너머의 서비스들이 한꺼번에 「응답 없음」이 된 날의 기록입니다. 프로세스도 소켓도 살아 있다고 말하는데 서비스만 죽어 있었고, 원인은 제가 「죽은 연결은 90초 안에 정리된다」고 믿고 있던 설정에 있었습니다.
운영에 올릴 새 커밋은 없었습니다. main 과 develop 이 같은 커밋이었고, 마지막 운영 배포는 그 커밋이 올라간 지 4분 뒤에 만들어져 있었습니다. 그래도 한 번 다시 올려 두자고 해서 vercel redeploy 로 같은 배포를 다시 만들었습니다. 2분 만에 Ready 가 떴고 도메인에 붙었습니다.
이미지가 하나도 안 나온다는 말을 듣고 열어 봤습니다. 이미지 원본을 서빙하는 호스트 세 개가 DNS 에서 통째로 사라져 있었습니다. dig 가 아무것도 돌려주지 않았습니다.
하루에 관리형 Postgres 두 개를 배포에 붙였습니다. 하나는 비밀번호를 재설정하고 연결 문자열을 손으로 옮겨 적었고, 다른 하나는 비밀번호를 끝내 보지 않았습니다. 후자가 더 빨랐고, 무엇보다 틀릴 자리가 없었습니다.
한 서비스의 개발 배포를 다른 호스트로 옮기는 중이었습니다. 러너를 새로 붙이고, 환경변수 출처를 바꾸고, 이제 워크플로를 켜기만 하면 되는 참이었습니다. 그런데 배포 스크립트 마지막에 있는 한 줄에서 멈췄습니다.
새 맥에 개발 환경을 세우면서 brew install node 를 쳤습니다. 그때 깔린 것이 26 이었습니다. Next 앱 두 개는 잘 떴고, 세 번째 프로젝트에서 npm install 이 이렇게 멈췄습니다.
블로그 목록에는 글 297편이 그대로 나왔습니다. 그중 하나를 누르면 500이었습니다. 문서 사이트도 똑같이 목록은 정상이고 문서 본문만 죽었습니다. 두 서비스 모두 마지막 커밋이 일주일 전이었고, 그 사이 코드를 건드린 사람은 없었습니다.
값을 바꿔도 화면에 반영되지 않았습니다. 새로고침하면 보였습니다.
Fedora 41부터 배포판 저장소에서 Redis 자리를 Valkey가 대신합니다.
응답 시간을 재려고 헤더를 열었더니 이런 줄이 보였습니다.
Workers 설정 파일에는 정적 자산 디렉터리를 가리키는 항목이 있습니다.