DNS 장애 조치에 Route 53 상태 확인을 사용하려면 어떻게 해야 하나요?
최종 업데이트 날짜: 2020년 10월 8일
Amazon Route 53 상태 확인을 사용해서 DNS 장애 조치를 구성하려면 어떻게 해야 하나요?
간략한 설명
Route 53으로 리소스의 상태를 확인하고, DNS 쿼리에 대한 응답으로 정상 리소스만 반환되게 할 수 있습니다. DNS 장애 조치 구성에는 세 가지 유형이 있습니다.
- 액티브 – 패시브: Route 53가 기본 리소스를 능동적으로 반환합니다. 장애가 발생하면 Route 53은 백업 리소스를 반환합니다. 이 방법은 장애 조치 정책을 사용하여 구성됩니다.
- 액티브 – 액티브: Route 53가 둘 이상의 리소스를 능동적으로 반환합니다. 장애가 발생하면 Route 53은 정상 리소스로 돌아갑니다. 이 방법은 장애 조치 이외의 라우팅 정책을 사용하여 구성됩니다.
- 장애: 복수의 라우팅 정책(예: 지연 시간 기반, 가중치 등)을 트리로 조합하여 더 복잡한 DNS 장애 조치를 구성할 수 있습니다.
해결 방법
참고: Amazon CloudFront가 기본 대상인 경우에는 다음 해결 방법이 적용되지 않습니다.
액티브-패시브 장애 조치
액티브-패시브 DNS 장애 조치는 기본 리소스 하나와 보조 리소스 하나를 사용하는 가장 간단한 방법입니다.
참고: 계속하기 전에 기본 리소스에 대한 Route 53 상태 확인을 생성해야 합니다.
장애 조치 별칭 레코드의 값을 사용하여 기본 및 보조 리소스의 리소스 레코드 두 개를 생성합니다. 각 레코드에 대해 다음을 수행합니다.
- 리소스의 이름을 입력합니다(예: resource.example.com).
참고: 두 리소스에 동일한 이름을 사용하세요. - [Type]에서 [A - IPv4 address]를 선택합니다.
- [Alias]에서 [Yes]를 선택합니다.
- [Alias Target]에 기본 리소스의 DNS 이름을 입력합니다. 그러면 [Alias Hosted Zone ID]가 표시됩니다.
- [Routing Policy(라우팅 정책)]에서 [Failover(장애 조치)]를 선택합니다.
- 기본 레코드의[Failover Record Type]으로 Primary를 선택합니다. [Set ID]에 고유한 이름을 입력합니다(예: elb-Primary).
- 보조 레코드의[Failover Record Type]으로 [Secondary]를 선택합니다. [Set ID]에 고유한 이름을 입력합니다(예: elb-Secondary).
- [Evaluate Target Health]에서 기본 레코드에 대해 [Yes]를 선택합니다. 보조 레코드에 대해 [No]를 선택합니다.
- 기본 레코드에 대해 [Associate with Health Check]에서 [Yes]를 선택합니다. [Health Check to Associate]에서 기본 리소스에 대해 생성한 상태 확인을 선택합니다.
- [Create]를 선택해 레코드를 생성합니다.
이제 이 레코드는 해당 도메인을 기본 리소스로 가리키거나 보조 리소스로 장애 조치합니다.
액티브-액티브 장애 조치
액티브-액티브 DNS 장애 조치는 DNS 쿼리에 대해 복수의 리소스를 반환합니다. 리소스 하나에 이상이 있으면 Route 53은 장애 조치로 다른 리소스를 사용합니다.
참고: 계속하기 전에, 두 리소스에 대한 Route 53 상태 확인을 생성해야 합니다.
장애 조치 별칭 레코드의 값을 사용하여 각 리소스의레코드를 생성합니다. 각 레코드에 대해 다음을 수행합니다.
- 리소스의 이름을 입력합니다(예: resource.example.com).
참고: 각 레코드에 동일한이름을 사용해야 합니다. - 레코드 [Type](예: A – IPv4 주소)을 선택합니다.
참고: 리소스에 대한 모든 레코드는 동일한 유형이어야 합니다. - [Alias]에서 [Yes]를 선택합니다.
- [Alias Target]에 리소스의 DNS 이름을 입력합니다. 그러면 [Alias Hosted Zone ID]가 표시됩니다.
- [Routing Policy]를 선택하고 해당 정책에 적절한 값을 입력합니다(예: Weighted policy에 대해 Weight 선택). [Set ID]에 이 리소스의 고유한 이름을 입력합니다(예: Resource 1).
참고: 가중치 기반 라우팅 정책의 경우 모든 레코드를 동일한 가중치(예: 10) 로 설정합니다. 또는 모든 레코드를 서로 다른 가중치로 설정합니다(예: 특정 레코드가 두 배 많은 트래픽을 수신하는 경우 20 및 10으로 설정). - [Evaluate Target Health]에서 [Yes]를 선택합니다.
- [Associate with Health Check]에서 [Yes]를 선택합니다.
- [Health Check to Associate]에서 이 리소스에 대해 생성한 상태 확인을 선택합니다.
- [Create]를 선택해 레코드를 생성합니다.
조합 장애 조치
여러 라우팅 정책과 상태 확인을 결합하여 정교한 장애 조치 메커니즘을 만들 수 있습니다. 이러한 메커니즘을 통해 Route 53은 적절한 레코드를 반환하기 전에 여러 계층의 레코드를 통과합니다.
예를 들어, 세 개의 엔드포인트가 있다고 가정합니다. 엔드포인트 A와 B 간의 트래픽을 로드 밸런싱하고 이 두 개가 상태 확인에 실패하면 엔드포인트 C로 폴백할 수 있습니다. 이 구성에는 라우팅 티어가 2개 있습니다. 하위 라우팅 계층에서 Route 53은 레코드 상태 확인을 사용하여 엔드포인트 A와 B가 정상인지 확인합니다. 그런 다음 두 기본 리소스 간에 트래픽이 균등하게 라우팅됩니다. 엔드포인트 A와 B가 상태 확인에 실패하는 경우 장애 조치를 통해 상위 라우팅 티어로 트래픽을 보냅니다. 상위 라우팅 계층에서 Route 53는 보조 대체 리소스인 엔드포인트 C로 트래픽을 라우팅합니다. 다음과 같이 이 구성을 생성합니다.
- 3개의 엔드포인트 전부에 대해 Route 53 상태 확인을 생성한 다음, 이를 상태 확인 레코드와 연결합니다.
- 하위 라우팅 티어의 경우 엔드포인트 A와 B의 도메인 이름에 대해 동일한 가중치를 갖는 2개의 가중치 레코드를 만듭니다.
중요: 엔드포인트 A와 엔드포인트 B의 상태 확인을 가중치 기반 레코드와 연결해야 합니다. 이 단계를 통해 Route 53은 각 레코드의 상태 확인 상황을 파악하고 그에 따라 레코드 간에 트래픽을 로드 밸런싱합니다. - 상위 라우팅 티어에서는 엔드포인트 C에 대해 도메인 이름(예: domain.example.com)의 장애 조치 레코드를 생성합니다.
중요: 기본 레코드는 2단계에서 생성한 resource.example.com에 대한 레코드를 가리키는 별칭 레코드여야 합니다. 보조 레코드가 장애 조치 리소스로 엔드포인트 C를 가리키는지도 확인합니다. - 기본 장애 조치 레코드의 상태를 파악하도록 Route 53을 구성합니다. 사용자 지정 상태 확인을 생성하여 2개의 가중치 기반 레코드의 상태를 확인합니다(예: 계산된 상태 확인). 또는 레코드 옵션을 사용하여 대상 상태 평가를 진행 합니다.
이 장애 조치 구성은 다음과 같이 작동합니다.
- 클라이언트가 domain.example.com을 요청합니다.
- 기본 레코드가 상태 확인을 통과하면 Route 53은 로드 밸런싱된 기본 리소스 레코드(resource.example.com)로 트래픽을 보내고, 이 레코드는 클라이언트에게 엔드포인트 A 또는 엔드포인트 B를 가리킵니다.
- 기본 레코드가 상태 확인에 실패하면(엔드포인트 A와 B가 상태 확인에 실패) 기본 레코드가 비정상으로 표시됩니다. 기본 레코드가 보조 레코드로 장애 조치됩니다. 그런 다음 Route 53은 클라이언트의 요청을 엔드포인트 C(대체 리소스)로 보냅니다.
- 기본 레코드가 상태 확인을 다시 통과하면 Route 53은 자동으로 기본 리소스 레코드(엔드포인트 A 및 B)로 돌아갑니다.