피드로 돌아가기
Three Projects, Two Reverts, One Day
Dev.toDev.to
DevOps

Three Projects, Two Reverts, One Day

도메인 마이그레이션 실패로 2회 Revert를 거친 후 Firebase Hosting의 다중 도메인 설정 메커니즘을 이해하여 단일 호스팅 타겟 + 301 리다이렉트 구조로 재설계

Jeremy Longshore2026년 3월 25일8intermediate

Context

claudecodeplugins.io에서 tonsofskills.com으로 도메인 마이그레이션 중 Firebase Hosting이 두 도메인을 단일 호스팅 타겟에 설정할 때 301 리다이렉트가 아닌 동일 콘텐츠 제공으로 인해 검색 순위 경쟁 및 SSL 인증서 미설정 오류 발생했다. DNS 전파 지연까지 겹쳐 약 15분간 두 도메인 모두 불안정한 상태가 지속되었다.

Technical Solution

  • Firebase Hosting의 firebase.json에서 도메인 순서가 정규 도메인 결정: 초기 설정에서 tonsofskills.com을 우선 배치했으나 claudecodeplugins.io에서 리다이렉트가 작동하지 않음
  • 경로 레벨 리다이렉트(redirect rules)와 도메인 레벨 리다이렉트(custom domain configuration)를 별도 시스템으로 분리: firebase.json의 redirect rules는 경로 기반 리다이렉트만 담당
  • 다중 도메인 구조 제거: 단일 호스팅 타겟당 1개 도메인 원칙 적용
  • 전용 리다이렉트 타겟 구성: 구 도메인(claudecodeplugins.io)용 독립 호스팅 타겟에서 301 리다이렉트를 신 도메인(tonsofskills.com)으로 설정
  • 신 도메인을 유일한 주요 호스팅 타겟으로 구성: tonsofskills.com을 단독 프라이머리 도메인으로 설정

Impact

도메인 마이그레이션 완료까지 총 6개 커밋 소요(초기 2개 + Revert 2개 + 수정 2개). SSL 인증서 프로비저닝 지연으로 인한 약 15분의 서비스 불안정 기간 발생. 재설계 후 단일 호스팅 타겟 구조로 DNS 전파 대기 중 도메인 혼동 상황 해결.

Key Takeaway

Firebase Hosting에서 다중 도메인 설정 시 호스팅 타겟 수준의 구성(도메인 순서, canonical 설정)과 리다이렉트 규칙이 독립적으로 작동하므로, 명확한 canonical 신호와 301 리다이렉트를 위해 도메인당 1개 호스팅 타겟 원칙을 준수해야 한다.


Firebase Hosting을 사용하는 팀에서 도메인 마이그레이션을 수행할 때 firebase.json의 redirect rules만으로는 도메인 레벨 301 리다이렉트를 구현할 수 없으므로, 구 도메인용 별도 호스팅 타겟을 생성하고 그 호스팅 타겟을 신 도메인으로 리다이렉트하는 구조로 구성하면 DNS 전파 지연 시에도 검색 엔진 신호 손실과 SSL 오류를 방지할 수 있다.

원문 읽기