name server 는 dns를 풀어주는 것이다.(dns server 로 보내주는 것)
실제로 . 을 기준으로 ns가 존재하며, depth 별로 있다.
depth는 . 으로 나눌 수 있다.
라우팅은 DNS의 관점에서 본다
DNS는 응답을 한다거나 경로를 설정해주는 역할이 아니다.
DNS는 DNS 쿼리에만 응답한다. 즉 도메인을 전달해주기만 한다는 것이다.
ROUTE53이 어떤식으로 라우팅 어떻게 해줄것인지 정하는 정책을 담당한다.
라우팅에 필요한 기본개념 및 DNS
root dns server 가 있고
TLD DNS Server 가 있고
SLD DNS Server 가 있다.
- . → root
- com. →TLD
- example.com → SLD
- www.example.com → sub domain
- api.www.example.com → fqdn(fully qualified domain name)
- http://api.www.example.com → url
record는 정보를 갖고있다
- A sms ipv4
- AAAA → ipv6
- CNAME → hostname 에서 다른 hostname 으로 맵핑
- 타겟 도메인 은 A 혹은 AAAA 레코드를 갖는다
도메인 route53에 연결
- route53에서 호스팅영역 을 생성한다
- 도메인이름을 입력 및 유형을 선택한다.
- 일반적으로 퍼블릭 호스팅영역을 지정하지만, 별도의 라우팅 아키텍쳐를 쓸 계획이라면 프라이빗 호스팅 영역으로 사용한다.
- 도메인이름을 입력 및 유형을 선택한다.
- A레코드를 생성한다.
- 사용하고자 하는 도메인을 레코드 이름과 일치시켜야한다.
- 값(value)에 ip를 연결할 것이라면 ip 혹은 그 외 인스턴스 정보(ex: lb의 dns)를 입력하면 그곳으로 라우팅 된다.
- HTTPS 사용을 위한 준비
- HTTPS는 443포트를 사용하며 SSL 등의 인증서가 필요하다.
- AWS에서 제공하는 ACM 을 사용하는 것이 편하다.
- ACM 인증서 발급
- 도메인 구매한 사이트에서 NS를 등록
- 이 때 등록하는 NS는 ROUTE53의 NS(4개)를 등록한다
- ACM 발급시 NS 여부를 체크하기 때문에 등록해야 검증이 완료됨
- 발급 신청 후 ACM 인증서에 들어가서 ROUTE53에 레코드 생성
- CNAME이 생성된다.
- 시간이 오래걸리는 경우도 있지만 NS가 잘 등록되어있다면 몇 분이내로 완료됨.
- 만약 너무 오래걸린다 싶으면 NS 등록을 확인하자.
- NS를 도메인 판매업체에서 제대로 등록했다고 생각했는데 안되길래, 다시 했더니 잘 되더라.(오타도 없었는데)
- 도메인 구매한 사이트에서 NS를 등록
- HTTPS 연결(443)
- EC2 혹은 LB 에서 리스너 설정에 들어가서 인증서 선택
- 여기서 보이지 않는다면 ACM 인증서가 제대로 발급되지 않은 것
- EC2 혹은 LB 에서 리스너 설정에 들어가서 인증서 선택
라우팅 정책
- SIMPLE 일반적인 라우팅을 한다
- 하나의 A레코드를 갖고, 여러개의 value를 설정할 수 있으며 등록된 ip를 무작위로 보낸다.
- weighted
- 여러개의 A레코드를 가지는 것으로 weight 즉 가중치를 설정하여, 이 가중치에 따라 확률적으로 value가 정해진다.원하는 비율로 ip에 보낼 것 인지 설정하는 것.
- traffic% = 특정레코드의 가중치 / 전체 레코드의 가중치 합
- latency
- region 의 개념이 필요하다. user가 접근하는 곳에 따라 가장 가까운 region으로 등록되어있는 레코드로 보낸다.
- failover
- health check의 개념이 필요한데, 적어도 2개 이상의 인스턴스가 필요하다.
- 정책의 개념 자체가 한 인스턴스(ex: primary)가 문제가 생겼을 경우 다른 인스턴스(ex: secondary)로 보내주는 정책(기능)이기 때문이다.
- geolocation
- latency 와 다르다.
- default가 존재하며, user는 접속한 ip 에 걸맞는 지리적위치(ex: asia)로 보내진다. 여기서 실패하게 되면 defualt로 보내진다.
- geoproximity
- geoproximity map 을 gui로 볼수있게 제공한다.
- 이것을 어디에 쓰냐하면 지역별로 bias 즉 편향을 지정할 수 있게하여, 어떤 지역에 더 많은 트래픽을 당겨올 것인지 정할 수 있다.
- 쉽게말해 트래픽 분산기준이 지역이지만 그 지역을 넓힐 수 있게 하는 것 이다.
'Develop' 카테고리의 다른 글
[Django] data 순서 필드(row number)를 위한 ORM(Window expression),admin에서 cached queryset 구현 (0) | 2023.08.20 |
---|---|
[Django] Admin에서 JS를 활용해 동적으로 연관 필드 업데이트하기(데이터 동적 변경) (2) | 2023.08.19 |
데이터베이스 샤딩 : Django[DRF]로 Shard_DB에 create, read 구현하기 (0) | 2023.05.14 |
Pycurl Error : Celery와 SQS 구축 시 OpenSSL 이해하고 설정하기 [Celery, AWS SQS] (0) | 2023.04.23 |
Python 배포 : Python Image 경량화로 배포 속도 향상시키기(Docker Image) (0) | 2023.04.04 |