AWS Solutions Architect · 강의

라우팅 정책: 단순, 가중치 기반 및 지연 시간 기반

단일 리소스에는 단순 라우팅을, A/B 트래픽 분할에는 가중치 기반 라우팅을, 가장 가까운 리전에서 사용자에게 서비스를 제공할 때는 지연 시간 기반 라우팅을 사용합니다.

레슨 2/413개 단계

라우팅 정책: 단순, 가중치 기반 및 지연 시간 기반은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

Route 53 라우팅 정책 개요

Route 53 라우팅 정책은 동일한 DNS 이름을 공유하는 여러 리소스 레코드 세트가 있을 때 DNS 쿼리에 응답하는 방식을 결정합니다. 정책은 Route 53이 어떤 IP 또는 DNS 이름을 어떤 조건에서 반환할지 지정합니다. 적절한 라우팅 정책을 선택하는 것은 SAA-C03 시험에서 가장 자주 출제되는 주제 중 하나입니다.

사용할 수 있는 라우팅 정책은 Simple, Weighted, Latency-based, Failover, Geolocation, Geoproximity 및 Multivalue Answer입니다. 각각 용도가 다르며, 대부분 상태 확인과 결합하여 자동 장애 조치를 구현할 수 있습니다.

단순 라우팅 정책

단순 라우팅은 DNS 이름을 하나 이상의 IP 주소(A 레코드의 경우) 또는 다른 호스트 이름(CNAME/ALIAS의 경우)에 매핑합니다. 단일 값이 구성되면 Route 53은 항상 해당 값을 반환합니다. 여러 값이 구성되면 Route 53은 모든 값을 임의의 순서로 반환하고 클라이언트가 하나를 선택합니다.

단순 라우팅은 기본 정책이며 상태 확인, 트래픽 분할 또는 지역별 구분이 필요하지 않은 단일 리소스 구성에 적합합니다. 상태 확인은 지원하지 않으므로 리소스에 문제가 있어도 Route 53은 해당 주소를 계속 반환합니다.

# Create a simple routing record
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "api.example.com",
        "Type": "A",
        "TTL": 60,
        "ResourceRecords": [
          {"Value": "10.0.0.1"},
          {"Value": "10.0.0.2"}
        ]
      }
    }]
  }'

가중치 기반 라우팅 정책

가중치 기반 라우팅은 할당한 가중치에 따라 여러 리소스에 DNS 쿼리를 분산합니다. 각 레코드에는 0에서 255 사이의 숫자 가중치가 부여됩니다. Route 53은 각 레코드의 가중치를 모든 가중치의 합으로 나눈 비율에 따라 해당 레코드를 반환합니다.

예를 들어 가중치가 70, 20, 10인 세 레코드는 각각 약 70%, 20%, 10%의 트래픽을 받습니다. 가중치 0은 해당 레코드를 라우팅에서 제외하지만 삭제하지는 않는다는 뜻입니다. 따라서 레코드를 제거하지 않고 일시적으로 트래픽을 중지할 때 유용합니다. 가중치 기반 라우팅은 일반적으로 A/B 테스트, 카나리 배포 및 블루-그린 전환에 사용됩니다.

# Create two weighted records: 90% to v1, 10% to v2
# Record 1 (v1)
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "A",
        "SetIdentifier": "v1",
        "Weight": 90,
        "TTL": 60,
        "ResourceRecords": [{"Value": "1.2.3.4"}]
      }
    }]
  }'

가중치 기반 라우팅 사용 사례

가중치 기반 라우팅은 배포 및 테스트 시나리오에서 특히 유용합니다.

  • 카나리 릴리스: 트래픽의 5%를 새 버전(가중치 5)에 보내고 95%를 안정 버전(가중치 95)에 보냅니다. 확신이 높아짐에 따라 가중치를 점진적으로 변경합니다.
  • 블루-그린 배포: 100/0(모두 그린)에서 시작해 50/50으로 천천히 전환한 다음 0/100(모두 블루)으로 전환하고 그린 레코드를 삭제합니다.
  • 부하 테스트: 실제 부하에서 성능을 검증하기 위해 프로덕션 트래픽의 일부를 테스트 환경으로 보냅니다.

가중치 기반 라우팅은 상태 확인과 함께 사용할 수 있습니다. 가중치가 적용된 레코드의 상태 확인에 실패하면 Route 53은 응답에서 해당 레코드를 제외하고 정상 레코드에 그 가중치를 재분배합니다.

지연 시간 기반 라우팅 정책

지연 시간 기반 라우팅은 최종 사용자에게 네트워크 지연 시간이 가장 짧은 AWS Region으로 각 DNS 쿼리를 전달합니다. Route 53은 전 세계 DNS 확인자와 AWS Region 간의 지연 시간을 측정하고 측정된 지연 시간이 가장 좋은 Region으로 쿼리를 라우팅합니다.

리소스가 있는 각 Region마다 하나의 레코드를 생성하고 각 레코드의 유형을 LATENCY로 설정한 뒤 Region을 지정합니다. Route 53은 실제 리소스를 비교하지 않고 각 쿼리에 대해 지연 시간이 가장 짧은 옵션을 선택합니다. 사용자의 위치에서 실시간으로 측정한 값이 아니라 AWS의 지연 시간 측정값을 사용합니다.

# Create latency records for us-east-1 and eu-west-1
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "api.example.com",
        "Type": "A",
        "SetIdentifier": "us-east-1",
        "Region": "us-east-1",
        "TTL": 60,
        "ResourceRecords": [{"Value": "54.100.1.1"}]
      }
    }]
  }'

지연 시간 기반 라우팅과 지리적 위치 기반 라우팅

지연 시간 기반 라우팅과 지리적 위치 기반 라우팅은 시험에서 자주 혼동됩니다.

  • 지연 시간 기반 라우팅: 왕복 시간을 최소화하기 위해 네트워크 성능을 기준으로 라우팅합니다. 예를 들어 일본의 사용자는 해당 시점에 ap-northeast-1보다 지연 시간이 낮다면 us-west-2로 라우팅될 수 있습니다.
  • 지리적 위치 기반 라우팅: DNS 쿼리의 지리적 출처를 기준으로 라우팅합니다. 일본의 사용자는 지연 시간과 관계없이 항상 일본 레코드로 라우팅됩니다.

성능 최적화에는 지연 시간 기반 라우팅을 사용하고, 콘텐츠 개인화, 규정 준수 또는 언어별 콘텐츠에는 지리적 위치 기반 라우팅을 사용합니다.

다중 값 응답 라우팅

다중 값 응답 라우팅은 각 DNS 쿼리에 대해 정상 상태인 레코드를 최대 8개까지 반환하므로 클라이언트가 그중 하나를 무작위로 선택할 수 있습니다. 비정상 IP도 반환할 수 있는 단순 라우팅과 달리, 다중 값 라우팅은 상태 확인과 연동되어 정상 상태인 리소스의 IP 주소만 반환합니다.

다중 값 응답은 로드 밸런서를 대체하지 않습니다. DNS 로드 밸런싱은 기능이 더 제한적이며 클라이언트 수준에서 레코드를 캐시하기 때문입니다. 하지만 여러 엔드포인트의 성능이 동일한 경우 트래픽을 분산하고 복원력을 향상하는 간단하고 비용 효율적인 방법을 제공합니다.

라우팅 정책과 상태 확인

대부분의 라우팅 정책(Simple 제외)은 상태 확인과 연결할 수 있습니다. 상태 확인에 실패하면 Route 53은 DNS 응답에서 해당 레코드를 더 이상 반환하지 않습니다. 가중치 기반 라우팅에서는 제외된 레코드의 트래픽이 정상 상태인 가중치 레코드로 재분배됩니다. 지연 시간 기반 라우팅에서는 지연 시간이 가장 낮은 다음 정상 상태 리전을 사용합니다.

상태 확인은 라우팅 정책과 독립적으로 평가되며 HTTP, HTTPS 및 TCP 엔드포인트에 대해 구성할 수 있습니다. 계산된 상태 확인은 여러 상태 확인의 결과를 결합하여(AND/OR 논리) 종합적인 상태를 평가합니다.

# Associate a health check with a weighted record
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "A",
        "SetIdentifier": "primary-us",
        "Weight": 100,
        "TTL": 60,
        "ResourceRecords": [{"Value": "54.100.1.1"}],
        "HealthCheckId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      }
    }]
  }'

올바른 정책 선택하기: 시험 대비 요령

라우팅 정책을 빠르게 선택하는 시험 대비 안내입니다.

  • 'A/B 테스트', '카나리', '블루-그린' → 가중치 기반 라우팅
  • '가장 낮은 지연 시간', '가장 가까운 리전', '최고의 성능' → 지연 시간 기반 라우팅
  • '단일 리소스', '간단한 설정' → 단순 라우팅
  • '모든 IP가 정상 상태인 여러 IP' → 다중 값 응답 라우팅
  • '활성-수동 장애 조치' → 장애 조치 라우팅
  • '국가별 콘텐츠', '규제 제한' → 지리적 위치 기반 라우팅
  • '리소스와의 근접성에 따른 라우팅' → 지리적 근접성 기반 라우팅

점진적 마이그레이션을 위한 가중치 기반 라우팅

가중치 기반 라우팅은 마이그레이션 중 트래픽을 점진적으로 전환할 때 권장되는 전략입니다. 일반적인 진행 과정은 다음과 같습니다.

  1. 시작: 기존 인프라의 가중치는 100, 새 인프라의 가중치는 0으로 설정합니다.
  2. 새 인프라 활성화: 95/5로 전환하고 오류율과 지연 시간을 모니터링합니다.
  3. 점진적 확대: 몇 시간 또는 며칠에 걸쳐 80/20 → 50/50 → 20/80 → 5/95로 확대합니다.
  4. 완료: 0/100으로 설정하고 기존 인프라를 폐기합니다.
  5. 롤백: 문제가 발생하면 새 인프라의 가중치를 즉시 0으로 설정하여 트래픽을 중지합니다.

이 패턴은 즉시 전환하는 것보다 위험을 최소화하며, 다시 배포하지 않고 DNS 가중치를 조정하여 신속하게 롤백할 수 있습니다.

지연 시간 기반 정책과 가중치 기반 정책 결합하기

Route 53에서는 정책을 논리적으로 결합하여 정교한 라우팅을 구성할 수 있습니다. 예를 들어 지연 시간 기반 라우팅으로 가장 가까운 리전을 선택한 다음, 해당 리전 내에서 가중치 기반 라우팅을 사용하여 여러 엔드포인트로 트래픽을 분할할 수 있습니다. 이를 위해 동일한 리전에 특정 SetIdentifier가 지정된 가중치 레코드를 생성하면 지연 시간 정책이 해당 레코드를 선택합니다.

단, 하나의 레코드에는 하나의 라우팅 정책만 적용할 수 있습니다. 정책을 결합하려면 한 계층에는 지연 시간 기반 레코드를 사용하고, 각 리전 내부에는 서로 다른 ALB 또는 Elastic IP를 가리키는 가중치 기반 레코드로 별도의 레코드 집합을 구성합니다.

빠른 확인

이 단원에서 다룬 AWS Solutions Architect (SAA-C03) 개념을 얼마나 이해했는지 확인해 보세요.

단원 요약

이 단원에서는 다음을 배웠습니다. 단순 라우팅은 상태 확인 없이 하나 이상의 값을 반환하고, 가중치 기반 라우팅은 A/B 테스트와 점진적 마이그레이션을 위해 백분율에 따라 트래픽을 분할하며, 지연 시간 기반 라우팅은 성능 최적화를 위해 사용자를 지연 시간이 가장 낮은 리전으로 연결합니다. 대부분의 정책은 상태 확인과 연동되어 자동 장애 조치를 지원합니다. 다음 단원에서는 장애 조치 및 지리적 위치 기반 라우팅 정책을 살펴봅니다.

무료로 시작

AI 튜터와 함께 AWS Solutions Architect을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
30
레슨
120

자주 묻는 질문

“라우팅 정책: 단순, 가중치 기반 및 지연 시간 기반” 강의는 무료인가요?

네 — “라우팅 정책: 단순, 가중치 기반 및 지연 시간 기반” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

“라우팅 정책: 단순, 가중치 기반 및 지연 시간 기반”에서 뭘 배우나요?

단일 리소스에는 단순 라우팅을, A/B 트래픽 분할에는 가중치 기반 라우팅을, 가장 가까운 리전에서 사용자에게 서비스를 제공할 때는 지연 시간 기반 라우팅을 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“라우팅 정책: 단순, 가중치 기반 및 지연 시간 기반” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 호스팅 영역 및 DNS 레코드 유형
  2. 라우팅 정책: 단순, 가중치 기반 및 지연 시간 기반
  3. 장애 조치 및 지리적 위치 라우팅
  4. 상태 확인 및 DNS 장애 조치
← AWS Solutions Architect(으)로 돌아가기