Route53

AWS가 제공하는 DNS 서비스

DNS의 포트 = 53번이기때문

DNS 기능은 물론, AWS내에 존재하는 다양한 서버나 엔드포인트들(ALB, Cloudfront, S3 등..)로의 라우팅도 제공한다.

 

# 내 Zone 생성

# 가비아에서 구입한 도메인 이름으로 호스팅 영역의 이름을 정한다.



 

# 내 영역에 대한 정보를 알고 있는 네임서버들.

# 이 서버 목록을 가비아의 내 도메인에 입력을 해야한다.

# 현재 내 영역에 대한 정보를 알고있는 서버는 위 네임서버고, 실제 도메인을 소유한 사람은 가비아이기때문. 두개를 매칭시키려면 가비아에게 해당 정보를 알려줘야한다.

 

 

# 기존 네임서버를 삭제후. 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로 연결되도록 해보자(리다이렉션)


  • 리스너 추가

# http로 요청하지만 https로 리다이렉션된다.

# 일반적으로 ACM에서 인증서를 만들면 같은 리전내에서만 유효하다.

# 만약에 모든 리전에서 사용 가능한 인증서를 만들고 싶다면. 버지니아 북부리전(us-east-1)에서 만들면 된다. (cloudfront를 사용하고 싶은 경우)

 

로드밸런서 및 ACM 삭제



# Edge Location이라고 부르는 캐싱서버를 통해 미리 메인리전(서울)의 컨텐츠들을 복사해두고 멀리 떨어진 사용자에게 빠른 서비스를 제공.

cloundfront를 위해서 tls 인증서를 발급받을텐데, 반드시 버지니아북부에서 만들어야 한다.



# 기존 서울 리전의 인증서는 삭제

# ACM - 버지니아 북부

 

 

 

 

리스너가 80인 ALB 생성

 

 

 

 

 

 

 

 

 




 

 

 

# 배포도메인이름으로 접속시 잘 된다. 우리는 이 배포도메인의 대체도메인에 대한 레코드를 route53가서 생성해주면 된다.



 

 

# 최종적으로 대체도메인주소로 접속했을때 잘 되는걸 확인


# 최종 흐름


실습)

S3 버킷을 통해 index.html을 배포해보세요. 단, 전세계에서 cloudfront를 통해 front.<여러분도메인> 으로 접속 가능해야한다.