DevOps/AWS

[AWS] Route53을 통한 도메인 연결 및 HTTPS 설정하기

발달중인 망고 2024. 3. 7. 22:49

[AWS] Route53을 통한 도메인 연결 및 HTTPS 설정하기

안녕하세요~ 인테리어 업체 '올림' 의 홈페이지를 만들게 되었는데요. 그 과정에서 AWS의 다양한 서비스를 활용하여 구축하게 되어 포스팅을 남기려 합니다. 이 프로젝트의 구조는 AWS S3와 CloudFront를 사용하여 이미지 관리를 최적화하고, EC2 인스턴스를 통해 서버를 배포하게 되는 구조입니다. 본 가이드는 AWS Route 53을 사용하여 도메인을 연결하고, HTTPS를 설정하는 과정을 단계별로 설명합니다. (나중에 또 분명 할것이기 때문에...)😥

 

필요한 AWS 서비스 및 설정

  1. 💡 ACM(AWS Certificate Manager) 인증서 생성: 안전한 웹사이트 구축을 위한 SSL/TLS 인증서를 발급받습니다.
  2. 💡 Route 53 호스팅 영역 설정: 웹사이트의 도메인을 관리하고, DNS 설정을 구성합니다.
  3. 💡 외부 도메인 네임 서버 설정: 가비아 또는 네이버 등 외부 도메인 등록 기관에서 Route 53의 네임 서버로 설정을 변경합니다. 이부분은 가비아에 직접 제가 일정금액을 지불하고 구매한 도메인을 사용하겠습니다.
  4. 💡 타겟 그룹 생성: 애플리케이션 로드 밸런서(ALB)에 연결할 EC2 인스턴스 그룹을 정의합니다.
  5. 💡 ALB 보안 그룹 생성: 로드 밸런서가 올바르게 통신할 수 있도록 필요한 포트와 프로토콜을 설정합니다.
  6. 💡 로드 밸런서 생성 및 EC2 인스턴스 연결: 트래픽 분산을 위한 ALB를 생성하고, EC2 인스턴스를 연결하여 마무리합니다.

진행 과정

1. ACM 인증서 생성

  • AWS 관리 콘솔에서 ACM 서비스로 이동하여 "인증서 요청" 을 선택합니다.
  • 도메인 이름을 입력하고 검증 방법으로 DNS 검증을 선택한 후 인증서를 요청합니다.

Backend 배포와 Front 배포를 따로 하시는 경우 api.도메인, www.도메인 으로 나누기 때문에 인증서도 *.도메인으로 설정해 줍니다.

 

✅ 생성된 인증서로 이동하여 Route 53에서 레코드 생성 버튼을 클릭해줍니다!

✅ 버튼을 클릭해주시고 아래와 같이 레코드를 생성해줍니다.

✅ 조금 기다리시면 인증서 상태가 발급됨 으로 바뀌게 됩니다🙄

 

2. Route 53 호스팅 영역 설정

  • Route 53 서비스로 이동하여 "호스팅 영역 생성"을 선택합니다.
  • 도메인 이름을 입력하고 호스팅 영역을 생성합니다.

✅ 호스팅 영역이 구성되면 다음과 같이 레코드가 생성됩니다. 여기서 NS에 해당하는 유형 4개의 값은 뒤의 . 을 제거한뒤 가비아로 이동해서 1~4줄을 1~4차 구분으로 정확히 맞춰서 설정해주시면 됩니다

 

가비아 도메인 네임 서버 설정

  • Route 53에서 제공하는 네임 서버(NS 레코드) 정보를 복사합니다.
  • 도메인 등록 기관의 도메인 관리 페이지에서 네임 서버 정보를 Route 53의 것으로 변경합니다.

 

✅ 위의 NS 유형의 값을 1개씩 끝의 .을 제거한뒤 설정해 줍니다.

 

4. 타겟 그룹 및 ALB 보안 그룹 생성

  • EC2 서비스 내에서 "대상 그룹"을 선택하여 새 타겟 그룹을 생성합니다.
  • "Security Groups"에서 새 보안 그룹을 생성하고, ALB가 사용할 포트(예: 80, 443)를 열어줍니다.

✅ 대상그룹 생성을 클릭하여 ALB 대상그룹을 설정해 줍시다!

✅ ALB에서 인스턴스로 바로 접근할것이기 때문에 8080 포트를 누르시고 아래에 보류 중인 것으로 포함 을 누르시면 추가가 됩니다.

 

✅ 이후에 ALB에 따른 보안그룹도 하나 만들어줍니다. 인바운드 규칙HTTPS 443 포트를 열어주시면 됩니다.

여기서 VPC는 모두 같은 VPC를 사용해야합니다.

✅ 자 이제 로드 밸런서를 만들 준비가 됐습니다.

 

5. 로드 밸런서 생성 및 EC2 인스턴스 연결

  • "Load Balancers"에서 "Create Load Balancer"를 선택하고, ALB를 생성합니다.
  • 생성한 타겟 그룹을 ALB에 연결하고, ACM에서 발급받은 SSL/TLS 인증서를 설정합니다.

✅ 여기서 가용영역 매핑은 EC2가 포함되어있는 곳 을 꼭 체크하시기 바랍니다❗❗

✅ 로드 밸런서 생성이 완료됐다면 마지막으로 Route 53으로 돌아와서 사용할 도메인에 생성한 로드 밸런서를 연결해줍니다!

  • 레코드 유형 A
  • 별칭이라는 토글을 활성화 해줍니다
  • Application Load Balancer로 설정
  • 레코드 생성을 눌러줍니다!

✅ 자 이러면 마무리가 됐습니다. 리소스 맵을 확인해 보겠습니다!

 

마무리

✅ 이후에 GitHub Actions를 사용하여 배포를 진행하니 https에 대한 health check도 통과하며 성공적으로 배포가 완료되었습니다ㅎ

 

긴 글 읽어주셔서 감사합니다. 😊

궁금하신 사항이 있으시다면 댓글 남겨주세요!!