Next.js - Vercel 환경에서 Google Cloud Platform 으로 환경 이동 구축기 - (2)

s2ksh77·2023년 3월 23일
1

devOps

목록 보기
2/3
post-thumbnail

오늘은 지난글에 이어서 간단하게 GCP 에 HTTPS 관련 적용한 글을 포스팅 하려고 한다.

들어가기에 앞서

  • 일반적으로 도메인을 산다면, 도메인과 웹 호스팅( + SSL) 을 같이 제공해주는 서비스들을 이용하게 된다.
    하지만, Vercel을 이용하면 웹 호스팅을 제공해주기 때문에 도메인만 구입을 했었다.
  • 이번엔 따로 SSL 구입하여 GCP에 적용하는 글이다.

SSL 구입

[ SSL 인증서 최저가 구매 ]를 찾게 되면 많은 수의 사이트들이 나오는데.. 사실 어디가 괜찮은지 어떤 인증서를 써야하는지 모르는 나였기 때문에, Single Domain만 붙일 수 있는 것들을 찾게 되었다.

그 중 나는 가격이 제일 저렴한 코리아 SSL을 이용하게 되었다. ( 광고는 아니고... )

-> 코리아 ssl GoGet Domain SSL 도메인 구입

  • 처음엔 가비아에서 도메인을 구입했기 때문에 가비아에 가서 DNS 를 확인해야하나 했는데,
    최근 Name Server를 구글꺼로 변경했기 때문에 구글의 DNS로 들어가야함.

도메인 인증

도메인을 구입하게 되면 인증방식들이 나오게 된다.

  1. Email 인증
  2. 도메인 인증
  3. http / https 인증

이메일은 해당 도메인과 관련된 회사의 이메일 주소 도메인 등록정보에서 확인되는 이메일 추가로 5개의 임의로 지정된 메일주소로 인증메일을 발송하게 되고 그것을 인증해야 한다.
추가로 지정된 이메일 주소는 admin, administrator, hostmaster, postmaster, webmaster 와 같이
총 6개 메일 주소 중에서 적어도 1개는 유효한 메일주소여야 이메일 인증을 문제없이 완료

개인 프로젝트의 사이트이기 때문에 나는 DNS 인증을 하게 되었다.

DNS에 구입한 도메인을 입력하고 여러 정보를 입력하게 되면 5분 이내에 인증화면으로 넘어가게 된다.

해당 그림에서와 같이 파란색 부분을 CNAME , 빨간색 부분을 DNS Recode로 등록해야 한다.

구글의 Cloud DNS에 레코드 추가 > CNAME 과 Record 값으로 위 값을 입력

도메인을 인증하게 되면 도메인을 다운로드 받을 수 있는 화면이 나오게 된다.

이중에서 PEM 형식 인증서와, PRIVATE KEY를 다운 받았다.

인그레스 추가

Kubernetes Engine > 서비스 및 수신에서 서비스 선택 후 [ + 인그레스 만들기 ] 선택

앞서 다운 받은 인증서를 가지고 해당 서비스의 인그레스를 추가

두개를 업로드 한 인증서의 프론트엔드 선택하여 HTTPS 선택하고 인증서 등록하여 생성 -> 아 외부 부하분산기 선택!

부하 분산

생성하고 나면 Cloud DNS > 부하 분산에

HTTPS 부하 분산기 생김

해당 부하 분산기에 들어가서

이렇게 뜨게 되면 해당 IP의 443 에 SSL 인증이 맺어진 것이다.

여기서 제공된 ip 주소를 가지고 기존 DNS에 적어두었던 값들을 변경해주어야 한다.

Cloud DNS -> 도메인 > A 로 생성했었던 레코드들 수정 > 변경된 IP 주소로 할당

확인


해당 url을 통해 ssl이 정상적으로 달리게 되었는지 확인!

PS. 기존에 DNS -> LB -> Service 방식이어서 LB 쪽에 SSL 처리를 해준 것인데, 더 간단한 구조로 변경하고 싶은데.. 일단 운영환경부터 돌려달라는 말씀에.. 일단 이 구조로 되었다.
로드 밸런서까지는 필요하지 않고.. 그냥 Deployment 와 Pod 로 하나만 운영하고 싶은 마음..?
이 부분도 학습해서 곧 글을 써보아야겠다.
일단 다음 글을 쓰게 된다면 Git Action과 같이 수정하고 이미지 말고 배포하고 pod 올렸다 내리는 부분을 적지 않을까 싶음...

profile
오너십을 가지고 끊임없이 더 나은 방향을 고민하는 개발자 입니다. 새로운 기술을 적용하고 배우는 것을 좋아합니다.

0개의 댓글