[AWS] Route53을 통한 도메인 연결 및 HTTPS 설정하기
안녕하세요~ 인테리어 업체 '올림'
의 홈페이지를 만들게 되었는데요. 그 과정에서 AWS의 다양한 서비스를 활용하여 구축하게 되어 포스팅을 남기려 합니다. 이 프로젝트의 구조는 AWS S3와 CloudFront를 사용하여 이미지 관리를 최적화하고, EC2 인스턴스를 통해 서버를 배포하게 되는 구조입니다. 본 가이드는 AWS Route 53
을 사용하여 도메인을 연결하고, HTTPS
를 설정하는 과정을 단계별로 설명합니다. (나중에 또 분명 할것이기 때문에...)😥
필요한 AWS 서비스 및 설정
- 💡 ACM(AWS Certificate Manager) 인증서 생성: 안전한 웹사이트 구축을 위한 SSL/TLS 인증서를 발급받습니다.
- 💡 Route 53 호스팅 영역 설정: 웹사이트의 도메인을 관리하고, DNS 설정을 구성합니다.
- 💡 외부 도메인 네임 서버 설정: 가비아 또는 네이버 등 외부 도메인 등록 기관에서 Route 53의 네임 서버로 설정을 변경합니다. 이부분은 가비아에 직접 제가 일정금액을 지불하고 구매한 도메인을 사용하겠습니다.
- 💡 타겟 그룹 생성: 애플리케이션 로드 밸런서(ALB)에 연결할 EC2 인스턴스 그룹을 정의합니다.
- 💡 ALB 보안 그룹 생성: 로드 밸런서가 올바르게 통신할 수 있도록 필요한 포트와 프로토콜을 설정합니다.
- 💡 로드 밸런서 생성 및 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도 통과하며 성공적으로 배포가 완료되었습니다ㅎ
긴 글 읽어주셔서 감사합니다. 😊
궁금하신 사항이 있으시다면 댓글 남겨주세요!!
'DevOps > AWS' 카테고리의 다른 글
[AWS] AWS Network의 이해 (이론 모음) (0) | 2024.03.11 |
---|---|
[AWS/Error] NginX 502 BadGateway 트러블 슈팅 (0) | 2024.03.06 |
[AWS] EC2에서 내 컴퓨터로 파일 가져오기 (0) | 2023.11.15 |
[AWS] 기본적인 배포 스크립트 (1) | 2023.11.14 |