가비아 도메인으로 Full-Stack 서비스 배포 및 HTTPS 보안 적용하기

Seoyeon·2026년 1월 22일

배포

목록 보기
11/11

협업 프로젝트를 하며 프론트와 협업하며 경험한 HTTPS하는법 정리본!
딱 한번 해보면 어렵지 않음.


Full-Stack HTTPS 인프라 구축 완벽 정리

1. 인프라 구조 설계

  • Front-end: Vercel (자동 HTTPS 적용됨) → www.example.com
  • Back-end: AWS EC2 + ALB (수동 설정 필요) → api.example.com
  • 핵심: 하나의 도메인을 사서 서브도메인으로 앞뒤를 나눠서 관리함.

2. 도메인 구매 및 Route 53 연결

  1. 도메인 구매: 가비아 등에서 맘에 드는 거 삼.
  2. 호스팅 영역 생성: AWS Route 53 가서 구매한 도메인으로 '퍼블릭 호스팅 영역' 만듦.
  3. 네임서버(NS) 교체:
  • Route 53에서 생성된 NS 레코드 값 4개 복사함.
  • 가비아 관리 페이지 가서 기존 네임서버 지우고 복사한 값 넣음. (맨 끝 마침표 . 빼고)
    전파되는데 시간 좀 걸림

3. SSL 인증서 발급 (ACM)

  1. 인증서 요청: AWS ACM 가서 *.example.com , example.com 형태로 2개 포함해 신청
  2. DNS 검증: 검증 방식은 'DNS 검증' 선택
  3. 레코드 생성: "Route 53에서 레코드 생성" 버튼 누르면 알아서 CNAME 생성
  4. 상태 확인: '발급됨' 뜰 때까지 대기 ( 시간소요)

4. 로드밸런서(ALB) 및 타겟 그룹 세팅

  1. 대상 그룹(Target Group) 생성:
  • 유형은 '인스턴스', 포트는 스프링 부트 포트(8080)로 설정
  • 내 EC2 인스턴스 체크해서 타겟에 포함시키기
  1. ALB 생성:
  • Application Load Balancer 선택
  • 가용 영역(AZ)은 최소 2개 이상의 퍼블릭 서브넷 선택해야함 (나는 a,c선택함)
  • 보안 그룹: 80(HTTP), 443(HTTPS) 둘 다 열려 있어야 함.
  1. 리스너 설정:
  • HTTPS:443: 아까 ACM에서 만든 인증서 걸어주고, 대상 그룹으로 넘기기
  • HTTP:80: 호스트 헤드 = 도메인 , URL로 리디랙션
    -> 모든 요청을 HTTPS로 리디렉션 (상태 코드 301) -> 1순위

5. Route 53 - A 레코드 연결

  1. Route 53 호스팅 영역 다시 들어감.
    1-1. 서브도메인(백엔드용)
    1-2. 레코드 생성: www 혹은 api 등 서브도메인 입력
    1-3. 별칭(Alias): 스위치 켜고, 'ALB에 대한 별칭' 선택해서 만든 로드밸런서 주소랑 연결
    1-1. 도메인(프론트용)
    1-2. 레코드 생성: 아무런 이름 입력 X
    1-3. 별칭(Alias) 끄기: ALB에 대한 별칭 해제하고 프론트의 vercel 배포 주소를 넣기

6. CORS 및 헬스 체크 이슈 해결 (중요함!)

  • CORS 에러: 프론트(www)랑 백(api) 도메인이 다르기 때문에 스프링 부트에서 허용해줘야 함. allowedOrigins에 프론트 주소 정확히 작성하기
  • Health Check: ALB는 주기적으로 서버가 살아있는지 체크해줌 (/ 경로가 404 뜨면 서버 죽은 줄 알고 트래픽 끊음)
    * 스프링 부트에 간단하게 200 OK 뱉는 /health 컨트롤러 만들고, 대상 그룹 설정에서 헬스 체크 경로를 /health로 바꿔서 테스트하기

0개의 댓글