사이드 프로젝트에 HTTPS를 붙이고 싶어서 이것저것 찾아보다가, AWS EC2를 사용하는김에 ALB에 Route53을 연결하고, ACM에서 인증서를 발급받아 ALB에 붙이는 방법을 사용하게되었다.
일단 ec2에 HTTPS 적용을 검색해 가장 상단에 뜨는 블로그에서 시키는대로 하니까 어렵지 않게 성공했는데, 적용 도중에 궁금한 점이 있어서 몇가지 설정에 대해 찾아보았다.
1. 도메인을 구입하고 브라우저에 입력하면 어떻게 찾는것일까?
일단 우리가 DNS를 사용하는 이유는 유저가 숫자로 된 ip 주소를 하나하나 기억하기 어렵기 때문에 식별가능한 도메인 이름을 브라우저에 입력하면 DNS 서버에서 domaintest.com -> ip 주소(ex: 3.38.xx.xxx) 로 매핑된 정보를 찾아 접속 가능하도록 하는것이다.
가비아나 Route53으로 도메인을 구매하면 DNS에 어떻게 등록이 되는것인가 궁금해서 자세한 내용을 찾아보게 되었다.
우선 주소창에 domaintest.com 을 입력한다.
1. 재귀 DNS 서버: domaintest.com에 대해 캐싱된 ip주소가 있으면 반환하고, 아니면 루트 네임서버로 요청을 보낸다.
2. 루트 네임서버: TLD 도메인(.com)에 해당하는 TLD 네임서버를 1에 알려준다.
3. TLD 네임서버: domaintest.com에 대한 권한 있는 네임서버를 1에 알려준다.
4. 권한 있는 네임서버: 해당 도메인 주소에 대한 ipv4를 반환한다.
내가 대행 사이트를 통해 구입한 도메인은 권한 있는 네임서버에 등록된다. 권한 있는 네임서버는 가비아, 후이즈, AWS 등의 도메인 판매 업체가 관리한다.
2. A 레코드, NS 는 뭐지?
도메인을 구매하고 나면, Route53에 호스팅 영역을 생성한다. 호스팅 영역이란 DNS 관리를 할 수 있는건데 여기서 레코드란걸 만들 수 있다.
레코드를 만들때 여러가지 유형이 있는데, 각 유형에 대해 정리해보았다. 여기서 주로 사용하게 되는건 A 레코드, cname이다.
1. A: ipv4 주소를 매핑
2. AAAA: ipv6 주소를 매핑
3. cname: 도메인 이름의 별칭을 만듬
4. MX: 이메일 서버
5. NS: 도메인 네임 서버 식별
6. SOA: 도메인 영역을 표시하는 역할
7. SRV: 도메인 서비스 이용 가능여부 식별
8. TXT: 텍스트 매핑
3. 네임서버가 여러개 있는 이유
가비아 같은 호스팅 서비스에서 네임서버를 여러개 제공해주는 이유가 궁금해서 찾아봤는데 이유는 간단했다. 가용성을 위해서인데, 네임서버가 단 하나밖에 없다면 해당 서버가 공격을 받는 경우, 도메인으로 찾아갈 IP로 접속이 안되기 때문에 정책적으로 2개 이상의 네임서버를 운용하도록 되어있다.
4. 라우팅 정책이란?
Route53에서 레코드를 생성할때, 라우팅 정책을 설정할 수 있다.
여기서 위의 3가지만 정리해보았다. 단순 라우팅은 하나의 리소스만 지정하는것이고, 가중치 기반, 지연 시간은 다수의 리소스를 지정할 수 있다.(ex: ALB)
1. 단순 라우팅: 도메인에 대해 특정 리소스를 지정한다.
2. 가중치 기반 라우팅: 도메인에 대해 다수의 리소스를 지정하고 가중치를 설정하고 라우팅을 한다.
3. 지연 시간 기반 라우팅: 지연 시간이 제일 짧은 대상으로 라우팅한다.
5. TTL 설정
TTL은 위에서 언급한 재귀 DNS 서버에 해당 레코드를 캐싱하는 시간인데 TTL이 짧을수록 비용이 덜 들것이고 TTL이 너무 길면 변경사항을 적용하는데 너무 오랜시간이 걸리므로 적당히 설정하는것이 좋다. 권장값은 172,800(2일)이다.
참고
- 따라하며 배우는 AWS 네트워크 입문
- https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-basic.html
Values specific for simple records - Amazon Route 53
If you're creating a record that has the same name as the hosted zone, don't enter a value (for example, an @ symbol) in the Name field.
docs.aws.amazon.com
'인프라' 카테고리의 다른 글
crontab으로 반복되는 task 만들기 (1) | 2024.02.24 |
---|