AWS - 11 [Route 53]

_Block·2022년 9월 12일
0

AWS

목록 보기
12/27
post-thumbnail
post-custom-banner

🍊 DNS

쉽게 말해서 이름을 정해주는 것과 같습니다.

컴퓨터의 주소 = IP를 사람에게 친숙한 호스트 이름으로 번역해 주는 것을 말합니다.

  • DNS가 어떻게 동작하는지는 중요한 부분이 아니며 굳이 필요한 부분이 아니라고 판단했기 때문에 바로 넘어가도록 하겠습니다.

🍊 Route 53

고가용성, 확정성을 갖추며 완전히 관리되는 DNS입니다.

🔨 레코드 타입

1. A 레코드

호스트 잉름과 IPv4 Ip를 매핑합니다.

2. AAAA 레코드

호스트 이름을 IPv6주소에 매핑합니다.

3. CNAME

호스트 이름을 다른 호스트 이름과 매핑합니다.

4. NS 

호스팅 존의 이름 서버로 서버의 DNS 이름 또는 IP주소로 호스팅 존에 대한 DNS쿼리에 응답 가능합니다.

Route 53는 무료 실습이 불가능합니다. 도메인을 생성하는 것 만으로도 1년에 12달라는 비용이 부과되기 떄문에 따로 실습은 진행하지 않았습니다.

  • 이론적으로만 알아보겠습니다.

🍊 라우팅 정책

만들어진 DNS에서 호스팅존으로 이동을 한뒤에 Create record를 선택합니다.

들어가게 되면 다양한 옵션들이 있고, 이러한 옵션들에 대해서는 천천히 다루어 보겠습니다.

  • DNS이름을 test.com으로 설정하였다고 가정하겠습니다.

🔨 A 레코드, AAAA 레코드

기본적으로 만들어 지는 DNS에서 RecoreName을 선택합니다.

만약 A라는 이름을 입력하면 해당 레코드는 A.test.com으로 잡히게 될 것입니다.

그러면 URL에 해당 레코드를 입력하면 설정한 IP로 이동하게 될 것입니다.

IP설정은 Value에 입력한 IP주소로 연결이 됩니다.

🔨 TTL

이전에 알아봤던 것과 같은 내용입니다.

Time To Live의 약자로 얼마만큼의 시간을 머무를지를 설정합니다.

즉 만약 300초를 설정을 한다면 300초 기간동안 머무른다는 것을 의미하며 이를 캐시에 저장해 두고 DNS서버에 다시 쿼리를 요청하지 않습니다.

  • 이러한 개념이 필요한 이유는 DNS서버에 요청할때마다 더 많은 비용을 지출해야 하기 떄문입니다.

사실상 기존에 설정된 레코드는 바뀌는 경우가 별로 없습니다.

그러기 떄문에 애초에 TTL설정을 길게 하는 경우도 많습니다.

하지만 만약 24시간으로 설정을 한다면 후에 레코드가 바뀌게 되었을떄 모든 사용자들의 컴퓨터에 저장된 캐시값 = 24시간 을 기다려야 하기 떄문에 이러한 부분에서는 불리하게 작용할 수 있습니다.

🔨 CNAME vs Alias

만약 ALB를 사용한다면 해당 사항에 대해서 고려해보면 좋습니다.

둘은 모두 같은 역할을 수행하지만 차이점은 명확합니다.

CNAME는 호스트 이름이 다른 호스트이름을 향하도록 할 수 있습니다.

  • DNS 이름이 A가 B를 향하게 할 수 있다는 의미 입니다.

하지만 문제는 A라는 DNS이름의 루트 값에서는 활용이 불가능 하다는 점이 있습니다.

  • A -> B는 불가능 합니다. aaa.A -> B는 가능합니다.

Alias는 호스트 이름이 특정 AWS리소스를 향하도록 할 수 있습니다.

  • 대표적으로 ALB의 DNS이름을 향하게 할떄 활용합니다.
  • 또한 CNAME와 다루게 루트 값에서도 활용이 가능합니다.

🔨 단순 레코드

일반적인 A, AAAA레코드 입니다.

🔨 가중치 기반 라우팅

쉽게 말해서 하나의 레코드에 3개의 EC2인스턴스를 연결한 뒤에 가중치에 따라서 다른 EC2인스턴스로 연결을 하는 것을 말합니다.

A : 20, B : 30, C : 70

이라는 가중치와 인스턴스가 있다면

라우팅 될떄에 해당 가중치를 고려하여 선택된 인스턴스로 연결을 시도 합니다.
- 어떤 인스턴스가 선택되었는지는 클라이언트 측에서 판단을 하게 됩니다.

설정하는 방법은 레코드를 만들 때 Routing policy 에서 Weighted를 설정하면 됩니다.

  • 중요한 점은 RecordName을 동일하게 구성을 해야 한다는 점 입니다.

🔨 지연시간 기반 라우팅

말 그대로의 라우팅 입니다.

가장 가까운 리소스로 연결되는 방법으로 지연 시간에 민감한 사이트나 애플리케이션에서 사용이 됩니다.

예를들어 유저가 미국에 있다면 미국 리전으로 연결이 되고, 독일에 있으면 독일 리전으로 연결이 되는 것과 같습니다.

이 또한 가중치 기반 라우팅과 같이 같은 Record Name을 설정 해 준뒤에 Routing policyLatency로 설정을 해주어야 합니다.

이후 가까운 알맞은 Region을 설정해 줍니다.

  • 이떄 따로 Region을 설정하는 이유는 해당 IP가 어떠한 지역에서 왔는지 EC2입장에서는 알 수 없기 떄문에 설정을 해주는 것 입니다.

🔨 지리적 위치 기반 라우팅

사용자의 실제 위치를 기반으로 라우팅 하는 것을 말합니다.

  • 즉 가장 가까운 리전으로 접속됩니다.

별반 어렵지 없게 Routing policyGeolocation으로 선택 후 Location을 설정하면 해당 Location에 속하는 사용자들은 value에 적힌 IP로 접속 됩니다.

🔨 지리적 근접성 기반 라우팅

편향 값을 통해서 리전에 연결되는 것을 말합니다.

Routing policyGeoproximity를 설정하여 리전을 선택합니다.

  • 편향값을 사용하기 떄문에 사용하고자 한다면 최소 2개의 라우팅을 만들어 주어야 합니다.

이후 설정한 편향 수치를 통해서 계산되어 설정된 value = IP로 접속 됩니다.

🔨 다중 값

말 그대로 트래픽을 다중 리소스로 라우팅 할떄 사용이 됩니다.

일반적으로 ALB와 유사하게 동작을 하지만 ALB가 다중 값 라우팅을 대체할 수는 없습니다.

  • 왜냐하면 이것은 클라이언트 측면의 로드 밸런싱이기 떄문입니다.

하지만 동작하는 것은 ALB와 동일하게 동작하기 떄문에 넘어가도록 하겠습니다.

  • Routing policyMultivalue answer로 설정하면 됩니다.

해당 과정은 후에 좀더 익숙해지면 배운 이론을 사비를 들여 실습을 진행해보고 가능하다면 Youtube에 업로드 하겠습니다.

profile
Block_Chain 개발자 입니다. 해당 블로그는 네트워크에 관한 내용을 다루고 있습니다.
post-custom-banner

0개의 댓글