Route 53

이기태·2024년 4월 21일
0

AWS

목록 보기
17/62
  • DNS(Domain name service)
    URL <-> IP 변환
    • Domain Registrar: 도메인 이름을 등록하는 곳(Route 53, GoDaddy, ...)
    • DNS Records: A, AAAA, CNAME, NS
    • Zone File: 모든 DNS 레코드를 포함하는 파일
      호스트 이름과 IP를 일치시키는 방법
    • Name Server: DNS 쿼리를 실제로 해결하는 서버
    • Top Level Domain(TLD): .com, .kr, .in, .gov, .org, ....
    • Second Level Domain(SLD): google.com, amazon.com, ...

<FQDN(Fully Qualified Domain Name)>

Route 53

  • Route 53: 고가용성, 확장성, 권한을 갖춘 DNS(도메인 레지스트라)
    • 권한이란? DNS 레코드를 사용자가 업데이트 가능.
    • route 53의 리소스 관련 상태를 확인할 수 있다.
    • 100% SLA 가용성을 제공하는 유일한 AWS 서비스
      서비스 수준 계약(SLA): 공급업체가 고객에게 제공하기로 약속한 서비스 수준을 명시하는 아웃소싱 및 기술 공급업체 계약
    • DNS 레코드를 정의하고 정의한 레코드로 특정 도메인으로 라우팅하는 방법을 정의
  • Route 53에서 기록하는 정보
    • 도메인/서브 도메인 정보
    • 레코드 종류
      꼭 알아야하는 것: A, AAAA, CNAME, NS
      고급 레코드: CAA, DS, MX, NAPTR, PTR, SOA, TXT, SPF, SRV
      • A 레코드
        호스트 이름과 IPv4매핑
      • AAAA 레코드
        호스트 이름과 IPv6 매핑
      • CNAME
        호스트 이름을 다른 호스트 이름과 매칭
        대상 호스트가 A나 AAAA레코드가 될 수 있다.
        Route 53에서 DNS 이름 공간이나 Zone Apex의 상위 노드에 대한 CNAMES를 생성할 수 없다.
        -> example.com에 CNAME을 만들 수 없지만 www.example.com에는 CNAME을 만들 수 있다.
      • NS
        호스팅 존의 이름 서버
        서버의 DNS 이름 또는 IP 주소로 호스팅 존에 대한 DNS 쿼리에 응답할 수 있다.
        트래픽이 도메인으로 라우팅 되는 방식을 제어

    • 123.456.789.123
    • 라우팅 정책
      route 53이 쿼리에 응답하는 방식
    • TTL
      DNS 리졸버에서 레코드가 캐싱되는 시간
  • 호스팅 존(레코드의 컨테이너)
    도메인과 서브도메인으로 가는 트래픽의 라우팅 방식을 정의
    • 종류
      • 퍼블릭 호스팅 존
        퍼블릭 도메인 이름을 살 때마다 퍼블릭 호스팅 존을 만들 수 있다.
        퍼블릭 존은 쿼리에 도메인이름의 IP가 무엇인지 알 수 있다.
        ex) application1.mypublicdomain.com
      • 프라이빗 호스팅 존
        공개되지 않는 도메인 이름을 지원
        가상 프라이빗 클라우드(VPC)만 URL을 리졸브 가능.
        ex) application1.compant.internal
  • Record TTL(Time To Live)
    • TTL: 클라이언트에세 결과를 캐시하도록 요청
      즉, 클라이언트가 TTL 시간 내에 재요청을 하거나 같은 호스트 이름으로 접속하면
      클라이언트는 DNS에 쿼리를 보내지 않고 접속할 수 있다.
    • TTL을 높게 설정한 경우(TTL = 24h)
      트래픽은 적어지겠지만 클라이언트가 오래된 레코드를 받을 가능성이 생긴다.
    • TTL을 짧게 설정한 경우(TTL = 60s)
      DNS는 트래픽이 많이 발생해 비용이 많이 들게 될 것 이다.
      레코드 변경이 빨라질 것이다.
    • 즉, TTL 설정은 상황에 따라 적합할지 다르다.
  • CNAME vs Alias
    로드 밸런서나 CloudFront등 AWS의 리소스를 사용하는 경우 호스트 이름이 노출되게 된다.
    또한 보유한 도메인에 호스트 이름을 매핑하려고 할 수 있다.
    그럴때 2가지 옵션을 사용한다.
    • CNAME(도메인 이름)
      • 호스트 이름이 다른 호스트 이름으로 향하도록 한다.(app.example.com -> gogo.domain.com)
        루트 도메인 이름이 아닌 경우에만 가능하기때문에 example.com앞에 무언가 붙어야 한다.
    • Alias(AWS 서비스)
      • 호스트 이름이 특정 AWS 리소스로 향하도록 한다.(app.example.com -> gogo.amazonaws.com)
        Route 53 한정
        루트/비루트 도메인 모두 작동한다.
        도메인 이름을 통해 AWS 리소스로 향하게할 수 있기 때문에 유용하다.
        무료이다.
        자체적으로 상태 확인이 가능하다.
      • AWS의 리소스에만 매핑이 되어 있다.
        DNS의 확장 기능으로 시중의 모든 DNS에서 가능하다.
        만약 ALB에서 IP가 바뀌면 Alias는 이것을 바로 인식할 것이다.
      • CNAME과는 달리, Alias는 Zone Apec라는 DNS 네임스페이스의 상위 노드로 사용될 수 있다.
      • AWS 리소스를 위한 Alias 레코드 타입은 A또는 AAAA이다.
      • Alias를 사용하면 TTL를 따로 설정할 수 없다.
        Route 53이 자동으로 설정해준다.
      • Alias 레코드의 대상
        EC2 DNS 이름에 대해서는 Alias 설정 X
        • ELB
        • CloudFront 배포
        • API Gateway
        • Elastic Beanstalk
        • S3 Websites
          S3 버킷 X
        • VPC 인터페이스 엔드포인트
        • Global Accelerator
        • 동일 호스트 존의 Route 53
      • Alias 사용하기
        만들어 놓은 도메인 -> 레코드 생성 -> Record type(A or AAAA), value옆에 있는 Alias 클릭 후 서비스/지역 선택

라우팅 정책

  • 라우팅 정책
    라우팅 정책은 Route 53이 DNS 쿼리에 응답하는것을 돕는다.
    여기서 라우팅은 인스턴스로 라우팅이아닌 DNS관점
    DNS는 트래픽을 라우팅하지 않음.-> 트래픽은 DNS를 통과하지 않음
    DNS는 DNS 쿼리에만 응답하고 클라이언트들은 이를 통해 HTTP 쿼리를 어떻게 처리해야 하는지 알 수 있게 된다.
    DNS는 호스트 이름들을 클라이언트가 실제 사용가능한 엔드 포인트로 변환하는 것을 돕는다.
    • 지원하는 정책
      • 단순 정책
        • 트래픽을 단일 리소스로 보내는 방식
        • 동일한 레코드에 여러 개의 값을 지정하는 것도 가능하다
          DNS에 의해 다중 값을 받는 경우는 클라이언트 쪽에서 무작위로 고르게 된다.
        • 단순 라우팅 정책에 Alias 레코드를 함께 사용하면 하나의 AWS 리소스만 대상을 지정 가능
        • 상태 확인 X
      • 가중치 기반 정책
        • 가중치를 활용해 요청의 일부 비율을 특정 리소스로 보내게 함.
        • 각 레코드에 가중치를 할당해 설정
          트래픽의 양(%) = 해당 레코드 가중치 / 전체 가중치
          합이 꼭 100일 필요는 없다.
        • DNS 레코드들은 동일한 이름과 유형을 가져야 한다.
        • 상태 확인 가능
        • 가중치 기반 정책 사용처
        1. 서로 다른 지역들에 걸쳐 로드 밸런싱
        2. 적은 양의 트래픽을 보내 새 애플리케이션을 테스트하는 경우
        • 가중치 0의 값을 보내면 특정 리소스에 트래픽 보내기를 중단해 가중치를 바꿀 수 있다.
          만약 모든 가중치 값이 0이면 모든 레코드가 다시 동일한 가중치를 갖게 된다.
      • 장애 조치 정책
        • 상태 확인과 기본 레코드 연결은 필수적이다.
        • 비정상일경우 자동으로 2번째 보조 인스턴스로 장애 조치한다.
      • 지연 시간 기반 정책
        • 지연 시간이 가장 짧은 리소스로 리다이렉팅
          즉, 가장 가까운 리소스로 리다이렉팅
        • 지연 시간에 민감한 웹사이트나 애플리케이션에 유용
          지연 시간은 유저가 레코드로 가장 가까운 AWS 리전에 연결하기까지 걸리는 시간을 측정
          ex) 독일과 미국중 리소스 지연시간이 짧은 리전으로 리다이렉팅
        • 상태 확인과 연결 가능
      • 지리적 정책
        • 지리 위치 라우팅 정책
          지연시간 기반 정책과 다르게 실제 사용자 위치 기반으로 한다.
          가장 정확한 위치로 그 IP로 라우팅
          일치하는 위치가 없는 경우를 대비해 기본 레코드를 생성해야한다.
          • 사용 사례
            콘텐츠 분산을 제한하고 로드 밸런싱 등을 실행하는 웹사이트 현지화
          • 상태 확인과 연결 가능
        • 지리 근접 라우팅 정책
          사용자와 리소스의 지리적 위치를 기반으로 트래픽을 리소스로 라우팅
          이 정책으로 편향값을 사용해 특정 위치를 기반으로 리소스를 더 많은 트래픽을 이동하는 것.
          • 지리적 위치를 변경하려면 편향값을 지정해야 한다.
            특정 리소스에 더 많은 트래픽을 보내려면 편향값을 증가시켜 확장하면 된다.
            리소스에 트래픽을 줄이려면 편향값을 음수로 축소시키면 된다.
          • 리소스
            • AWS 리소스
              특정 리전을 지정하면 목록에서 자동으로 올바른 라우팅을 계산
            • AWS 리소스가 아닌경우(온프레미스 데이터 센터 등)
              위도와 경도를 지정해 AWS가 위치를 파악하도록 해야한다.
            • 기능을 선택하는데 편향 활용을 위해 고급 Route 53트래픽 플로우를 사용한다.
      • IP 기반 정책
        • 클라이언트 IP 주소를 기반으로 라우팅을 정의
          Route 53에서 CIDR 목록을 정의한다.
          그리고 CIDR에 따라 트래픽을 어느 로케이션으로 보내야 하는지 정한다.
          -> IP를 미리 알고 있어 성능을 최적화
          -> IP가 어디에서 오는지 알기 때문에 네트워크 비용 절감할 수 있다.
        • 사용 예
          인터넷 제공업체가 특정 IP주소 셋을 사용하는걸 알면 특정 엔드포인트로 라우팅할 수 있다.
      • 다중 값 응답 정책
        • 트래픽을 다중 리소스로 라우팅할 때 사용
        • Route 53은 다중 값과 리소스를 반환한다.
        • 상태 확인과 연결하면 다중 값 정책에서 반환되는 유일한 리소스는 정상 상태 확인과 관련있다.
        • 각각의 다중 값 쿼리에 최대 8개의 정상 레코드가 반환된다.
        • ELB와 유사해보이지만 ELB를 대체할 수 없다.
          클라이언트 측면의 로드 밸런싱인 것.

        • 단순 라우팅 정책은 상태확인을 허용하지 않기 때문에 비정상을 반환할 수도 있다.
          다중 값 정책은 예를들어 3개의 다중값을 설정했을때 하나가 비정상 상태이면,
          비정상인 레코드를 뺀 2개의 레코드 제공..?
  • 상태 확인
    공용 리소스에 대한 상태를 확인하는 방법이지만 개인 리소스의 상태를 확인하는 방법도 있다.
    • 상태 확인은 DNS 장애 조치를 자동화 하기 위한 작업
    • 체크 목록
      • 공용 엔드 포인트 모니터링
        애플리케이션, 서버, 다른 AWS 리소스
      • 다른 상태 확인을 모니터링
        계산된 상태 확인
      • CloudWatch 경보의 상태를 모니터링
    • 상태 확인들은 각자의 메트릭을 사용하는데 CloudWatch의 지표에서도 확인이 가능하다.
    • 엔드 포인트에서 상태 확인 작동 방식
      전 세계 15개의 상태 확인이 온다.
      루트를 설정한 공용 엔드포인트로 요청을 보낸다
      200 ok를 받으면 정상으로 간주.
      간격 설정 가능
      HTTP, HTTPS, TCP등 많은 프로토콜 지원
      18% 이상의 상태 확인이 엔드 포인트를 정상이라 판단하면 Route 53도 정상이라 간주
      상태 확인에 사용될 위치 지정 가능
      • 상태 확인은 로드 밸런서로부터 2xx나 3xx 코드를 받아야만 통과 가능
      • 텍스트 기반 응답일 경우
        상태 확인은 응답의 처음 5120바이트를 확인
        -> 응답 자체에 해당 텍스트가 있는지 보기 위함
      • 네트워크에서 상태 확인의 작동이 가능하려면
        상태 확인이 ALB나 엔드 포인트에 접근이 가능해야 한다.
        -> Route 53의 상태 확인 IP 주소 범위에서 들어오는 모든 요청을 허용해야 한다.
    • 계산된 상태 확인
      여러 개의 상태 확인 결과를 하나로 합쳐주는 기능
      • 상태 확인들을 합치기 위한 조건
        OR,AND,NOT
      • 하위 상태 확인을 256개까지 모니터링 가능
      • 상위 상태 확인이 통과하기 위해 몇 개의 상태 확인을 통과해야 하는지 지정 가능
      • 사용예
        상태 확인이 실패하는 일 없이 상위 상태 확인이 웹사이트를 관리 유지하도록 하는 경우
    • 개인 리소스 상태 확인
      Route 53의 상태 확인이 VPC 외부에 있어 개인 엔드 포인트에 접근이 불가능
      그래서 CloudWatch 지표를 만들어 CloudWatch 알람을 할당하는 방식으로 해결
      -> CloudWatch 경보를 상태 확인에 할당해서 사용
      -> CloudWatch 메트릭을 이용해 개인 서브넷 안에 있는 인스턴스를 모니터링
      -> 메트릭이 침해되는 경우 CloudWatch 알람을 생성하게 된다.
      -> 알람이 ALARM 상태가 되면 상태 확인은 자동으로 비정상이 된다.

+++

  • Domain Registar VS DNS Service
    도메인 이름 레지스트라를 통해 원하는 도메인을 구매 -> 매년 비용 지불
    Route 53을 통한 아마존 레지스트라 말고 다른 DNS 레지스트라도 있다.(GoDaddy, Google Domain)
    • 레지스트라를 통해 도메인을 등록하면 DNS 레코드 관리를 위한 DNS 서비스를 제공한다.
    • GoDaddy에서 도메인을 등록해도 된다.
      example.com을 구매하고 DNS 레코드는 Route 53으로 관리 가능.
      • 과정
      1. GoDaddy에서 도메인을 등록하면 이름 서버 옵션이 생긴다.
      2. 사용자 정의 이름 서버를 지정할 수 있다.
        -> Route 53에서 원하는 도메인의 공용 호스팅 영역 생성
        -> 호스팅 영역 상세의 오른쪽 부분에서 이름 서버를 찾는다.
        --> 호스팅 영역 상세의 이름 서버는 GoDaddy 웹사이트에서 변경해야한다.
        -> GoDaddy에서 사용할 이름 서버에 관한 쿼리에 응답하면 이름 서버가 Route 53 이름 서버를 가리킨다.
        -> Route 53을 사용해서 해당 콘솔에서 직접 전체 DNS 레코드를 관리 한다.
    • 정리
      • 도메인을 타사 등록 대행사에서 구매해도 DNS 서비스 제공자로 Route 53 사용 가능
      1. 사용하려면 Route 53에서 공용 호스팅 영역을 생성
      2. 도메인을 구매한 타사 웹사이트에서 NS 혹은 이름 서버를 업데이트하면 Route 53 이름 서버를 가리키게 된다.
      • 모든 도메인 이름 레지스트라가 일부 DNS 기능을 제공하더라도 도메인 이름 레지스트라는 모두 비슷해 보이지만 DNS 서비스와는 다르다.

0개의 댓글

관련 채용 정보