Route53
AWS가 제공하는 DNS 서비스
DNS의 포트 = 53번이기때문
DNS 기능은 물론, AWS내에 존재하는 다양한 서버나 엔드포인트들(ALB, Cloudfront, S3 등..)로의 라우팅도 제공한다.
# 가비아에서 구입한 도메인 이름으로 호스팅 영역의 이름을 정한다.
# 내 영역에 대한 정보를 알고 있는 네임서버들.
# 이 서버 목록을 가비아의 내 도메인에 입력을 해야한다.
# 현재 내 영역에 대한 정보를 알고있는 서버는 위 네임서버고, 실제 도메인을 소유한 사람은 가비아이기때문. 두개를 매칭시키려면 가비아에게 해당 정보를 알려줘야한다.
# 기존 네임서버를 삭제후. AWS의 네임서버들을 4개 등록해준다
# 네임서버 영문주소 끝에 점(.) 지우세요!
# 소유자 인증하시고!
# 이렇게 네임서버를 등록시키면, 가비아가 상위 네임서버에 이 정보를 등록하는데 시간이 걸릴 수 있다. 30분이상?
# 웹서버를 만들고, 이 웹서버에 접속할 레코드를 생성해보자.
root@ip-10-10-1-44:~# apt-get install -y nginx
root@ip-10-10-1-44:~# systemctl enable --now nginx
root@ip-10-10-1-44:~# echo record test > /var/www/html/index.html
# 위 서버로 연결시켜줄 레코드 생성
# 당연히 퍼블릭주소로는 접속 가능하고
# 가비아에 등록한 aws의 네임서버들이 활성화 된다면 www.chanman.store 로 접속이 가능할것이다
S3(Simple Storage Service)를 통한 정적 웹사이트 호스팅
S3에 간단한 웹페이지를 올려두면 마치 웹서버처럼 페이지 배포가 가능. 일반적으로 가장 널리 쓰이는 방식.
# 버킷 = 글로벌하게 유효한 내 스토리지. 트리구조.
# index.html의 파일내용은 위와같이.
# 현재 접근 권한이 없는 상태 => 접근 정책을 만들어줘야함.
# 내가 직접 정책을 만들 순 없기때문에 정책생성기를 통해 생성.
# 잘되는걸 확인
버킷 삭제
# 버킷을 지우려면 내용물이 전부 삭제가 되어있어야 한다.
# 버킷 삭제
이번에는 위에서 만든 S3 정적 웹사이트를 Route53을 통해 레코드를 만들어줄 예정.
이런 경우 반드시 S3의 버킷명과 레코드가 일치해야합니다.
www.chanman.store 라는 영문주소를 내 버킷으로 연결하고 싶다면.
버킷이름을 www.chanman.store로 만들어야한다.
실습)
www.본인도메인 을 이름으로 버킷을 만든 후 프리템플릿(고양이)을 배포해보세요.
# 기존 레코드는 삭제
# 레코드주소로 접속시 잘 되는지 확인.
실습)
ELB도 레코드 구성이 가능하다. 간단한 웹페이지를 배포하는 서버에 ALB를 붙여서 lb.<본인도메인>으로 접속되게 만들어보세요.
# aws의 다양한 서비스들은 보통은 vpc외부에 존재한다. 때에 따라서는 외부와 통신(outbound)이 되어야 aws의 서비스를 받을 수 있다. (NAT-GW, vpc엔드포인트)
TLS인증서를 ALB에 붙여서 https 통신을 하는 흐름.
# web서버는 80번으로만 통신을 하고, 누군가 ALB의 443번 https 포트로 접근하면, 인증서를 붙여서 80번 리스너로 리다이렉션 해준다고 보면 된다.
검증방법
# 검증의 대상은 chanman.store라는 도메인. 이 도메인이 유효한지 검증하고 싶어서 레코드를 한개 만든 후 해당 레코드로 접속되는지 여부를 확인하여, 접속이 되면 인증서를 발급. 접속이 안되면 유효하지 않은 도메인으로 간주하여 인증서가 발급 안될것이다.
# route53의 내 호스팅 영역을 보면 acm검증을 위한 레코드가 있는걸 확인 가능하다
# 발급이 잘 됐다. 1분안에 안되면 문제가 있음.
# 보안그룹에 가서 미리 443 포트를 열어주자
# 이 로드밸런서에 붙여준 인증서는 *.chanman.store를 위한 인증서기때문에, alb의 dns이름(주소)으로 https요청은 불가능하다.
# 따라서 acm.chanman.store같은 도메인을 통해 접근할 수 있도록 레코드를 생성해주자.
# 80번(http)은 안된다.
# 그냥 리스너를 하나 추가해서 http(80) 요청도 web서버에 연결해줘도 되지만, 그것보다 http요청을 했을때 어차피 인증서가있으니까 https로 연결되도록 해보자(리다이렉션)
- 리스너 추가
# 일반적으로 ACM에서 인증서를 만들면 같은 리전내에서만 유효하다.
# 만약에 모든 리전에서 사용 가능한 인증서를 만들고 싶다면. 버지니아 북부리전(us-east-1)에서 만들면 된다. (cloudfront를 사용하고 싶은 경우)
로드밸런서 및 ACM 삭제
# Edge Location이라고 부르는 캐싱서버를 통해 미리 메인리전(서울)의 컨텐츠들을 복사해두고 멀리 떨어진 사용자에게 빠른 서비스를 제공.
cloundfront를 위해서 tls 인증서를 발급받을텐데, 반드시 버지니아북부에서 만들어야 한다.
# 기존 서울 리전의 인증서는 삭제
# ACM - 버지니아 북부
리스너가 80인 ALB 생성
# 배포도메인이름으로 접속시 잘 된다. 우리는 이 배포도메인의 대체도메인에 대한 레코드를 route53가서 생성해주면 된다.
실습)
S3 버킷을 통해 index.html을 배포해보세요. 단, 전세계에서 cloudfront를 통해 front.<여러분도메인> 으로 접속 가능해야한다.
'AWS Cloud School 8기 > AWS' 카테고리의 다른 글
67일차) 2025-04-04(ECR, ECS, Github, CICD-codebuild) (0) | 2025.04.04 |
---|---|
66일차) 2025-04-03(ECR, ECS) (0) | 2025.04.03 |
37일차) 2025-02-20(Auto-scaling, CloudWatch, 시작 템플릿) (0) | 2025.02.20 |
36일차) 2025-02-19(AWS-was/nginx, 커스텀AMI, ELB) (0) | 2025.02.19 |
35일차) 2025-02-18(AWS-NATGW, WAS) (0) | 2025.02.18 |