

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Route 53 모니터링
<a name="monitoring-overview"></a>

모니터링은 AWS 솔루션의 안정성, 가용성 및 성능을 유지하는 데 중요한 부분입니다. 다중 지점 장애가 발생할 경우 보다 쉽게 디버깅할 수 있도록 AWS 솔루션의 모든 부분으로부터 모니터링 데이터를 수집해야 합니다. 하지만 모니터링을 시작하기 전에 다음 질문에 대한 답변을 포함하는 모니터링 계획을 작성해야 합니다.
+ 모니터링의 목표
+ 모니터링할 리소스
+ 이러한 리소스를 모니터링하는 빈도
+ 사용할 모니터링 도구
+ 모니터링 작업을 수행할 사람
+ 문제 발생 시 알려야 할 대상

**Topics**
+ [퍼블릭 DNS 쿼리 로깅](query-logs.md)
+ [Resolver 쿼리 로깅](resolver-query-logs.md)
+ [도메인 등록 모니터링](monitoring-domain-registrations.md)
+ [Amazon Route 53 상태 확인 및 Amazon CloudWatch를 사용하여 리소스 모니터링](monitoring-cloudwatch.md)
+ [Amazon CloudWatch를 사용하여 호스팅 영역 모니터링](monitoring-hosted-zones-with-cloudwatch.md)
+ [Amazon CloudWatch를 사용하여 Route 53 VPC Resolver 엔드포인트 모니터링](monitoring-resolver-with-cloudwatch.md)
+ [Amazon CloudWatch를 사용하여 Resolver DNS 방화벽 규칙 그룹 모니터링](monitoring-resolver-dns-firewall-with-cloudwatch.md)
+ [를 사용하여 Resolver DNS 방화벽 이벤트 관리 Amazon EventBridge](dns-firewall-eventbridge-integration.md)
+ [를 사용하여 Amazon Route 53 API 호출 로깅 AWS CloudTrail](logging-using-cloudtrail.md)

# 퍼블릭 DNS 쿼리 로깅
<a name="query-logs"></a>

다음과 같이 Route 53가 수신하는 퍼블릭 DNS 쿼리에 대한 정보를 로깅하도록 Amazon Route 53를 구성할 수 있습니다.
+ 요청된 도메인 또는 하위 도메인
+ 요청의 날짜 및 시간
+ DNS 레코드 유형(예: A 또는 AAAA)
+ DNS 쿼리에 응답한 Route 53 엣지 로케이션
+ DNS 응답 코드(예: `NoError` 또는 `ServFail`)

쿼리 로깅을 구성하면 Route 53는 CloudWatch Logs에 로그를 전송합니다. CloudWatch Logs 도구를 사용하여 쿼리 로그에 액세스합니다.

쿼리 로그에는 DNS 해석기가 Route 53로 보내는 쿼리만 포함되어 있습니다. DNS 해석기가 쿼리(예: example.com의 로드 밸런서에 대한 IP 주소)에 대한 응답을 이미 캐시한 경우 해석기는 해당 레코드에 대한 TTL이 만료될 때까지 쿼리를 Route 53로 보내지 않고 캐시된 응답을 계속 반환합니다.

도메인 이름(example.com) 또는 하위 도메인 이름(www.example.com)에 대해 제출된 DNS 쿼리 수, 사용자가 사용하고 있는 해석기 및 레코드에 대한 TTL에 따라 쿼리 로그에는 DNS 해석기에 제출된 수천 개의 쿼리 중 한 개의 쿼리에 대한 정보만 포함될 수 있습니다. DNS 작업 방법에 대한 자세한 내용은 [웹 사이트 또는 웹 애플리케이션으로 인터넷 트래픽을 라우팅하는 방식](welcome-dns-service.md)를 참조하세요.

자세한 로깅 정보가 필요하지 않은 경우에는 Amazon CloudWatch 지표를 사용해 호스팅 영역에서 Route 53가 응답하는 DNS 쿼리의 총 수를 확인할 수 있습니다. 자세한 내용은 [퍼블릭 호스팅 영역에서 DNS 쿼리 지표 보기](hosted-zone-public-viewing-query-metrics.md) 섹션을 참조하세요.

**Topics**
+ [DNS 쿼리 로깅 구성](#query-logs-configuring)
+ [Amazon CloudWatch를 사용하여 DNS 쿼리 로그에 액세스](#query-logs-viewing)
+ [로그의 보존 기간 변경 및 Amazon S3에 로그 내보내기](#query-logs-changing-retention-period)
+ [쿼리 로깅 중지](#query-logs-deleting-configuration)
+ [DNS 쿼리 로그에 나타나는 값](#query-logs-format)
+ [쿼리 로그 예](#query-logs-example)

## DNS 쿼리 로깅 구성
<a name="query-logs-configuring"></a>

지정된 호스팅 영역에 대한 DNS 쿼리의 로깅을 시작하려면 Amazon Route 53 콘솔에서 다음 작업을 수행합니다.
+ Route 53가 로그를 게시할 CloudWatch Logs 로그 그룹을 선택하거나 새 로그 그룹을 생성합니다.
**참고**  
로그 그룹은 미국 동부(버지니아 북부) 리전에 있어야 합니다.
+ **Create(생성)**을 선택하여 완료합니다.

**참고**  
사용자가 도메인에 대한 DNS 쿼리를 제출하는 경우 쿼리 로깅 구성을 생성한 후 몇 분 내에 로그에서 쿼리를 볼 수 있어야 합니다.<a name="query-logs-configuring-procedure"></a>

**DNS 쿼리 로깅을 구성하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/) Route 53 콘솔을 엽니다.

1. 탐색 창에서 **호스팅 영역(Hosted zones)**을 선택합니다.

1. 쿼리 로깅을 구성할 호스팅 영역을 선택합니다.

1. [**Hosted zone details**] 창에서 [**Configure query logging**]을 선택합니다.

1. 기존 로그 그룹을 선택하거나 새 로그 그룹을 생성합니다.

1. 권한에 대한 알림이 표시되면(이전에 새 콘솔로 쿼리 로깅을 구성하지 않은 경우 발생) 다음 중 하나를 수행합니다.
   +  이미 10개의 리소스 정책이 있는 경우 더 이상 만들 수 없습니다. 리소스 정책 중 하나를 선택하고 **편집**을 선택합니다. 편집을 통해, 로그 그룹에 로그를 쓸 수 있는 권한을 Route 53에 부여할 것입니다. **저장**을 선택합니다. 알림이 사라지고 다음 단계로 계속 진행할 수 있습니다.
   + 이전에 쿼리 로깅을 구성한 적이 없거나 10개의 리소스 정책을 아직 생성하지 않은 경우 CloudWatch Logs 그룹에 로그를 쓸 수 있는 권한을 Route 53에 부여해야 합니다. **권한 부여**를 선택합니다. 알림이 사라지고 다음 단계로 계속 진행할 수 있습니다.

1. **권한 - 선택 사항**을 선택하여 리소스 정책이 CloudWatch 로그 그룹과 일치하는지 여부와 CloudWatch에 로그를 게시할 권한이 Route 53에 있는지 여부를 보여 주는 테이블을 확인합니다.

1. **생성**을 선택합니다.

## Amazon CloudWatch를 사용하여 DNS 쿼리 로그에 액세스
<a name="query-logs-viewing"></a>

Amazon Route 53는 CloudWatch Logs에 직접 쿼리 로그를 전송하며, 로그는 Route 53를 통해 액세스할 수 없습니다. 대신 CloudWatch Logs를 사용하여 거의 실시간으로 로그를 보고 데이터를 검색 및 필터링하며 로그를 Amazon S3에 내보냅니다.

Route 53는 지정된 호스팅 영역에 대한 DNS 쿼리에 응답하는 각 Route 53 엣지 로케이션에 대해 하나의 CloudWatch Logs 로그 스트림을 생성하고 쿼리 로그를 해당 로그 스트림으로 전송합니다. 각 로그 스트림의 이름에 대한 형식은 *hosted-zone-id*/*edge-location-ID*(예: `Z1D633PJN98FT9/DFW3`)입니다.

각 엣지 로케이션은 3자 코드와 임의 배정된 번호로 식별됩니다(예: DFW3). 3자 코드는 일반적으로 엣지 로케이션 부근의 공항을 나타내는 국제 항공 운송 협회 공항 코드에 상응합니다. (이러한 약어는 향후에 변경될 수 있습니다.) 엣지 로케이션의 목록은 [Route 53 제품 세부 정보](https://aws.amazon.com/route53/details/) 페이지의 ‘Route 53 글로벌 네트워크’를 참조하세요.

**참고**  
위의 규칙을 따르지 않는 접두사 또는 접미사가 있을 수 있습니다. 내부 전용 속성을 인코딩합니다.

자세한 설명은 다음과 같이 해당 문서를 참조하세요.
+ [Amazon CloudWatch Logs 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)
+ [Amazon CloudWatch Logs API 참조](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/)
+ [AWS CLI 명령 참조의 CloudWatch Logs 섹션](https://docs.aws.amazon.com/cli/latest/reference/logs/index.html)
+ [DNS 쿼리 로그에 나타나는 값](#query-logs-format)

## 로그의 보존 기간 변경 및 Amazon S3에 로그 내보내기
<a name="query-logs-changing-retention-period"></a>

기본적으로 CloudWatch Logs는 쿼리 로그를 무기한 저장합니다. CloudWatch Logs가 보존 기간보다 오래된 로그를 삭제하도록 보존 기간을 선택적으로 지정할 수 있습니다. 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [CloudWatch Logs에서 로그 데이터 보존 기간 변경](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SettingLogRetention.html)을 참조하세요.

로그 데이터를 보존하려고 하지만 데이터 조회 및 분석에 CloudWatch Logs 도구가 필요하지 않으면 로그를 Amazon S3에 내보낼 수 있으므로 스토리지 비용을 절감할 수 있습니다. 자세한 내용은 [Amazon S3에 로그 데이터 내보내기](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3Export.html)를 참조하세요.

요금에 대한 자세한 내용은 해당하는 요금 페이지를 참조하세요.
+ [CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing) 페이지의 "Amazon CloudWatch Logs"
+ [Amazon S3 요금](https://aws.amazon.com/s3/pricing)

**참고**  
Route 53에서 DNS 쿼리 로깅 구성 시 Route 53 요금은 발생하지 않습니다.

## 쿼리 로깅 중지
<a name="query-logs-deleting-configuration"></a>

Amazon Route 53가 CloudWatch Logs로의 쿼리 로그 전송을 중지하도록 하려면 다음 절차를 수행하여 쿼리 로깅 구성을 삭제합니다.<a name="query-logs-deleting-configuration-procedure"></a>

**쿼리 로깅 구성을 삭제하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/) Route 53 콘솔을 엽니다.

1. 탐색 창에서 **호스팅 영역(Hosted zones)**을 선택합니다.

1. 쿼리 로깅 구성을 삭제할 호스팅 영역의 이름을 선택합니다.

1. **호스팅 영역 세부 사항** 창에서 **쿼리 로깅 구성 삭제**를 선택합니다.

1. [**삭제**]를 선택하여 확인합니다.

## DNS 쿼리 로그에 나타나는 값
<a name="query-logs-format"></a>

각 로그 파일에는 Amazon Route 53가 해당 엣지 로케이션의 DNS 해석기로부터 수신한 각 DNS 쿼리당 하나의 로그 항목이 포함되어 있습니다. 각 로그 항목에는 다음 값이 포함되어 있습니다.

**로그 형식 버전**  
이 쿼리 로그의 버전 번호입니다. 필드를 로그에 추가하거나 기존 필드의 형식을 변경하는 경우 이 값이 증가합니다.

**쿼리 타임스탬프**  
ISO 8601 형식 및 협정 세계시(UTC)로 Route 53가 요청에 응답한 날짜 및 시간입니다(예: `2017-03-16T19:20:25.177Z`).  
ISO 8601 형식에 대한 자세한 내용은 Wikipedia 도움말 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)을 참조하세요. UTC에 대한 자세한 내용은 Wikipedia 도움말 [협정 세계시](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)를 참조하세요.

**호스팅 영역 ID**  
이 로그의 모든 DNS 쿼리와 연결된 호스팅 영역의 ID입니다.

**쿼리 이름**  
요청에서 지정된 도메인 또는 하위 도메인입니다.

**쿼리 유형**  
요청에서 지정된 DNS 레코드 유형 또는 `ANY`입니다. Route 53가 지원하는 유형에 대한 자세한 내용은 [지원되는 DNS 레코드 유형](ResourceRecordTypes.md)를 참조하세요.

**응답 코드**  
Route 53가 DNS 쿼리에 대한 응답으로 반환한 DNS 응답 코드입니다.

**계층 4 프로토콜**  
쿼리를 제출하는 데 사용된 프로토콜로, `TCP` 또는 `UDP`입니다.

**Route 53 엣지 로케이션**  
쿼리에 응답한 Route 53 엣지 로케이션입니다. 각 엣지 로케이션은 3자 코드와 임의의 숫자로 식별됩니다(예: DFW3). 3자 코드는 일반적으로 엣지 로케이션 부근의 공항을 나타내는 국제 항공 운송 협회 공항 코드에 상응합니다. (이러한 약어는 향후에 변경될 수 있습니다.)  
엣지 로케이션의 목록은 [Route 53 제품 세부 정보](https://aws.amazon.com/route53/details/) 페이지의 “Route 53 글로벌 네트워크”를 참조하세요.

**해석기 IP 주소**  
요청을 Route 53에 제출한 DNS 해석기의 IP 주소입니다.

**EDNS 클라이언트 서브넷**  
DNS 해석기에서 사용 가능한 경우 요청이 시작된 클라이언트의 부분 IP 주소입니다.  
자세한 내용은 IETF 초안인 [DNS 요청의 클라이언트 서브넷](https://tools.ietf.org/html/draft-ietf-dnsop-edns-client-subnet-08)을 참조하세요.

## 쿼리 로그 예
<a name="query-logs-example"></a>

다음은 쿼리 로그의 예입니다(Region은 자리 표시자).

```
1.0 2017-12-13T08:16:02.130Z Z123412341234 example.com A NOERROR UDP Region 192.168.1.1 -
1.0 2017-12-13T08:15:50.235Z Z123412341234 example.com AAAA NOERROR TCP Region 192.168.3.1 192.168.222.0/24
1.0 2017-12-13T08:16:03.983Z Z123412341234 example.com ANY NOERROR UDP Region 2001:db8::1234 2001:db8:abcd::/48
1.0 2017-12-13T08:15:50.342Z Z123412341234 bad.example.com A NXDOMAIN UDP Region 192.168.3.1 192.168.111.0/24
1.0 2017-12-13T08:16:05.744Z Z123412341234 txt.example.com TXT NOERROR UDP Region 192.168.1.2 -
```

# Resolver 쿼리 로깅
<a name="resolver-query-logs"></a>

다음과 같은 DNS 쿼리를 로그할 수 있습니다.
+ 지정한 Amazon Virtual Private Cloud(VPC)에서 시작되는 쿼리와 해당 DNS 쿼리에 대한 응답입니다.
+ 인바운드 해석기 엔드포인트를 사용하는 온프레미스 리소스의 쿼리입니다.
+ 재귀 DNS 해석을 위해 아웃바운드 해석기 엔드포인트를 사용하는 쿼리입니다.
+ Resolver DNS 방화벽 규칙을 사용하여 도메인 목록을 차단, 허용 또는 모니터링하는 쿼리입니다.

VPC Resolver 쿼리 로그에는 다음과 같은 값이 포함됩니다.
+ VPC가 생성된 AWS 리전
+ 쿼리가 시작된 VPC의 ID
+ 쿼리가 시작된 인스턴스의 IP 주소
+ 쿼리가 시작된 리소스의 인스턴스 ID
+ 쿼리가 처음 만들어진 날짜와 시간
+ 요청된 DNS 이름(예: prod.example.com)
+ DNS 레코드 유형(예: A 또는 AAAA)
+ DNS 응답 코드(예: `NoError` 또는 `ServFail`)
+ DNS 쿼리에 대한 응답으로 반환되는 DNS 응답 데이터(예: IP 주소)
+ DNS 방화벽 규칙 작업에 대한 응답

로깅된 모든 값의 자세한 목록과 예제를 보려면 [VPC Resolver 쿼리 로그에 표시되는 값](resolver-query-logs-format.md)을 참조하세요.

**참고**  
DNS 해석기의 표준과 마찬가지로 해석기는 해당 해석기의 유지 시간(TTL)에 따라 결정된 시간 동안 DNS 쿼리를 캐시합니다. Route 53 VPC Resolver는 VPCs에서 시작된 쿼리를 캐싱하고 가능하면 캐시에서 응답하여 응답 속도를 높입니다. VPC Resolver 쿼리 로깅은 고유한 쿼리만 로깅하고 VPC Resolver가 캐시에서 응답할 수 있는 쿼리는 로깅하지 않습니다.  
예를 들어 쿼리 로깅 구성에서 쿼리를 로깅하는 VPC 중 하나에 있는 EC2 인스턴스가 accounting.example.com에 대한 요청을 제출한다고 가정합니다. VPC Resolver는 해당 쿼리에 대한 응답을 캐싱하고 쿼리를 로깅합니다. 동일한 인스턴스의 탄력적 네트워크 인터페이스가 VPC Resolver 캐시의 TTL 내에서 accounting.example.com 쿼리를 생성하는 경우 VPC Resolver는 캐시의 쿼리에 응답합니다. 두 번째 쿼리는 로그되지 않습니다.

다음 AWS 리소스 중 하나로 로그를 전송할 수 있습니다.
+ Amazon CloudWatch Logs(CloudWatch Logs) 로그 그룹
+ Amazon S3(S3) 버킷
+ Firehose 전송 스트림

자세한 내용은 [AWS VPC Resolver 쿼리 로그를 보낼 수 있는 리소스](resolver-query-logs-choosing-target-resource.md) 단원을 참조하십시오.

**Topics**
+ [AWS VPC Resolver 쿼리 로그를 보낼 수 있는 리소스](resolver-query-logs-choosing-target-resource.md)
+ [Resolver 쿼리 로깅 구성 관리](resolver-query-logging-configurations-managing.md)

# AWS VPC Resolver 쿼리 로그를 보낼 수 있는 리소스
<a name="resolver-query-logs-choosing-target-resource"></a>

**참고**  
초당 쿼리 수(QPS)가 많은 워크로드에 대한 쿼리를 로그하려는 경우 Amazon S3를 사용하여 대상에 쿼리 로그가 기록될 때 쿼리 로그가 제한되지 않도록 해야 합니다. Amazon CloudWatch 를 사용하는 경우 `PutLogEvents` 운영에 대한 초당 요청 수 제한을 늘릴 수 있습니다. CloudWatch 제한을 늘리는 방법에 대해 자세히 알아보려면 *Amazon CloudWatch 사용 설명서*의 [CloudWatch Logs 할당량](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html)을 참조하세요.

VPC Resolver 쿼리 로그를 다음 AWS 리소스로 보낼 수 있습니다.

**Amazon CloudWatch Logs(Amazon CloudWatch Logs) 로그 그룹**  
Logs Insights를 사용하여 로그를 분석하고 지표 및 경보를 생성할 수 있습니다.  
자세한 내용은 [Amazon CloudWatch Logs 사용자 안내서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)를 참조하세요.

**Amazon S3(S3) 버킷**  
S3 버킷은 장기 로그 아카이빙 시 경제적입니다. 일반적으로 지연 시간이 더 깁니다.  
모든 S3 서버 측 암호화 옵션은 지원되지 않습니다. 자세한 내용은 *Amazon S3 사용 설명서*의 [서버 측 암호화를 사용하여 데이터 보호](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)를 참조하세요.  
 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS)를 선택하는 경우 로그 전송 계정이 Amazon S3 버킷에 쓸 수 있도록 고객 관리형 키의 키 정책을 업데이트해야 합니다. SSE-KMS와 함께 사용하는 데 필요한 키 정책에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon S3 버킷 서버 측 암호화](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-infrastructure-V2-S3.html#AWS-logs-SSE-KMS-S3-V2)를 참조하세요.  
S3 버킷이 소유한 계정에 있는 경우 필요한 권한이 버킷 정책에 자동으로 추가됩니다. 소유하지 않은 계정의 S3 버킷에 로그를 보내려면 S3 버킷의 소유자가 계정에 대한 권한을 버킷 정책에 추가해야 합니다. 예:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "CrossAccountAccess",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::your_bucket_name/AWSLogs/your_caller_account/*"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::your_bucket_name"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "iam_user_arn_or_account_number_for_root"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::your_bucket_name"
        }
    ]
}
```
 조직의 중앙 S3 버킷에 로그를 저장하려는 경우 중앙 계정에서 (중앙 버킷에 쓰는 데 필요한 권한을 사용하여) 쿼리 로깅 구성을 설정하고 [RAM](query-logging-configurations-managing-sharing.md)을 사용하여 계정 간에 구성을 공유하는 것이 좋습니다.
자세한 내용은 [Amazon Simple Storage Service 사용 설명서](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)를 참조하세요.

**Firehose 전송 스트림**  
Amazon OpenSearch Service, Amazon Redshift 또는 기타 애플리케이션에 실시간으로 로그를 스트리밍할 수 있습니다.  
자세한 내용은 [Amazon Data Firehose 개발자 안내서](https://docs.aws.amazon.com/firehose/latest/dev/)를 참조하세요.

Resolver 쿼리 로깅 요금에 대한 자세한 내용은 [Amazon CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing/) 섹션을 참조하세요.

CloudWatch Vended Logs 요금은 로그가 Amazon S3에 직접 게시되더라도 VPC Resolver 로그를 사용할 때 적용됩니다. 자세한 내용은 [Amazon CloudWatch 요금의 *로그 요금*](https://aws.amazon.com//cloudwatch/pricing/#Vended_Logs)을 참조하세요.

# Resolver 쿼리 로깅 구성 관리
<a name="resolver-query-logging-configurations-managing"></a>

## 구성(VPC Resolver 쿼리 로깅)
<a name="resolver-query-logs-configuring"></a>

다음 두 가지 방법으로 VPC Resolver 쿼리 로깅을 구성할 수 있습니다.
+ **직접 VPC 연결** - VPCs를 쿼리 로깅 구성에 직접 연결합니다.
+ **프로필 연결** - 쿼리 로깅 구성을 Route 53 Profile에 연결합니다.이 프로필은 해당 프로필과 연결된 모든 VPCs에 로깅을 적용합니다. 자세한 내용은 [VPC Resolver 쿼리 로깅 구성을 Route 53 Profile에 연결](profile-associate-query-logging.md) 단원을 참조하십시오.

VPC에서 시작된 DNS 쿼리의 로깅을 시작하려면 Amazon Route 53 콘솔에서 다음 작업을 수행합니다.<a name="resolver-query-logs-configuring-procedure"></a>

**Resolver 쿼리 로깅을 구성하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/) Route 53 콘솔을 엽니다.

1. Route 53 콘솔 메뉴를 확장합니다. 콘솔의 왼쪽 상단 모서리에서 세 개의 가로 막대(![\[Menu icon\]](http://docs.aws.amazon.com/ko_kr/Route53/latest/DeveloperGuide/images/menu-icon.png)) 아이콘을 선택합니다.

1. Resolver 메뉴에서**쿼리 로깅(Query logging)**을 선택합니다.

1. 리전 선택기에서 쿼리 로깅 구성을 생성할 AWS 리전을 선택합니다. 이 리전은 DNS 쿼리를 로그하려는 VPC를 생성한 리전과 동일해야 합니다. 여러 리전에 VPC가 있는 경우 리전별로 쿼리 로깅 구성을 하나 이상 생성해야 합니다.

1. **쿼리 로깅 구성(Configure query logging)**을 선택합니다.

1. 다음 값을 지정하세요.  
**쿼리 로깅 구성 이름**  
쿼리 로깅 구성의 이름을 입력합니다. 이 이름은 쿼리 로깅 구성 목록의 콘솔에 표시됩니다. 나중에 이 구성을 찾는 데 도움이 되는 이름을 입력합니다.  
**쿼리 로그 대상**  
VPC Resolver가 쿼리 로그를 전송할 AWS 리소스 유형을 선택합니다. 옵션(CloudWatch Logs 로그 그룹, S3 버킷, Kinesis Data Firehose 전송 스트림) 중에서 선택하는 방법에 대한 자세한 내용은 [AWS VPC Resolver 쿼리 로그를 보낼 수 있는 리소스](resolver-query-logs-choosing-target-resource.md) 섹션을 참조하세요.  
리소스 유형을 선택한 후 해당 유형의 다른 리소스를 생성하거나 현재 AWS 계정에서 생성한 기존 리소스를 선택할 수 있습니다.  
쿼리 로깅 구성을 만드는 리전, 곧 4단계에서 선택한 AWS 리전에서 생성된 리소스만 선택할 수 있습니다. 새 리소스를 생성하도록 선택하면 해당 리소스가 동일한 리전에서 생성됩니다.  
**쿼리를 로그할 VPC**  
이 쿼리 로깅 구성은 선택한 VPC에서 시작된 DNS 쿼리를 로그합니다. VPC Resolver가 쿼리를 로깅할 현재 리전의 각 VPC에 대한 확인란을 선택한 다음 **선택을** 선택합니다.  
**대안**: VPCs 직접 연결하는 대신이 쿼리 로깅 구성을 Route 53 Profile에 연결할 수 있습니다. 그러면 해당 Profile과 연결된 모든 VPCs에 로깅이 적용됩니다. 자세한 내용은 [VPC Resolver 쿼리 로깅 구성을 Route 53 Profile에 연결](profile-associate-query-logging.md) 단원을 참조하십시오.  
VPC 로그 전송은 특정 대상 유형에 대해 한 번만 활성화할 수 있습니다. 로그는 동일한 유형의 여러 대상으로 전송할 수 없습니다. 예를 들어, VPC 로그는 2개의 Amazon S3 대상으로 전송될 수 없습니다.

1. **쿼리 로깅 구성**을 선택합니다.

**참고**  
쿼리 로깅 구성을 생성한 후 몇 분 내에 VPC의 리소스가 만든 DNS 쿼리를 로그에서 확인할 있어야 합니다.

# VPC Resolver 쿼리 로그에 표시되는 값
<a name="resolver-query-logs-format"></a>

각 로그 파일에는 Amazon Route 53가 해당 엣지 로케이션의 DNS 해석기로부터 수신한 각 DNS 쿼리에 대한 하나의 로그 항목이 포함되어 있습니다. 각 로그 항목에는 다음 값이 포함되어 있습니다.

**버전**  
쿼리 로그 형식의 버전 번호입니다. 현재 버전은 `1.1`입니다.  
버전 값은 **major\$1version.minor\$1version** 형식의 메이저 및 마이너 버전입니다. 예를 들어 `version` 값이 `1.7`일 수 있습니다. 여기서 `1 `은 메이저 버전이고 `7`은 마이너 버전입니다.  
Route 53에서는 이전 버전과 호환되지 않는 로그 구조가 변경되면 메이저 버전이 증가합니다. 여기에는 이미 존재하는 JSON 필드를 제거하거나 필드 내용이 표시되는 방식(예: 날짜 형식)을 변경하는 작업이 포함됩니다.  
 변경 사항이 로그 파일에 새 필드를 추가하는 경우 Route 53는 마이너 버전을 증가시킵니다. VPC 내의 일부 또는 모든 기존 DNS 쿼리에 대해 새 정보를 사용할 수 있는 경우 이런 일이 일어날 수 있습니다.

**account\$1id**  
VPC를 생성한 AWS 계정의 ID입니다.

**리전**  
VPC를 생성한 AWS 리전입니다.

**vpc\$1id**  
쿼리가 시작된 VPC의 ID입니다.

**query\$1timestamp**  
쿼리가 ISO 8601 형식 및 협정 세계시(UTC)로 제출된 날짜 및 시간입니다(예: `2017-03-16T19:20:177Z`).  
ISO 8601 형식에 대한 자세한 내용은 Wikipedia 도움말 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)을 참조하세요. UTC에 대한 자세한 내용은 Wikipedia 도움말 [협정 세계시](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)를 참조하세요.

**query\$1name**  
쿼리에 지정된 도메인 이름(예: example.com) 또는 하위 도메인 이름(예: www.example.com)입니다.

**query\$1type**  
요청에서 지정된 DNS 레코드 유형 또는 `ANY`입니다. Route 53가 지원하는 유형에 대한 자세한 내용은 [지원되는 DNS 레코드 유형](ResourceRecordTypes.md)를 참조하세요.

**query\$1class**  
쿼리의 클래스입니다.

**rcode**  
VPC Resolver가 DNS 쿼리에 대한 응답으로 반환한 DNS 응답 코드입니다. 이 응답 코드는 쿼리가 유효한지 여부를 표시합니다. 가장 일반적인 응답 코드는 `NOERROR`이며, 이는 쿼리가 유효한 상태임을 의미합니다. 응답이 유효하지 않은 경우에는 Resolver가 이유를 설명하는 응답 코드를 반환합니다. 가능한 응답 코드의 목록을 보려면 IANA 웹 사이트에서 [DNS RCODEs](https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6) 섹션을 참조하세요.

**answer\$1type**  
쿼리에 대한 응답으로 VPC Resolver가 반환하는 값의 DNS 레코드 유형(예: A, MX 또는 CNAME)입니다. Route 53가 지원하는 유형에 대한 자세한 내용은 [지원되는 DNS 레코드 유형](ResourceRecordTypes.md)를 참조하세요.

**rdata**  
쿼리에 대한 응답으로 VPC Resolver가 반환한 값입니다. 예를 들어 A 레코드의 경우 이 값은 IPv4 형식의 IP 주소입니다. CNAME 레코드의 경우 이 값은 CNAME 레코드의 도메인 이름입니다.

**answer\$1class**  
쿼리에 대한 VPC Resolver 응답의 클래스입니다.

**srcaddr**  
쿼리가 시작된 호스트의 IP 주소입니다.

**srcport**  
쿼리가 시작된 인스턴스의 포트입니다.

**운송**  
DNS 쿼리를 제출하는 데 사용되는 프로토콜입니다.

**srcids**  
DNS 쿼리가 시작되거나 전달된 `instance`, `resolver_endpoint`, 및 `resolver_network_interface`의 ID입니다.

**인스턴스**  
쿼리가 시작된 인스턴스의 ID입니다.  
 Route 53 VPC Resolver 쿼리 로그에 계정에 표시되지 않는 인스턴스 ID가 표시되는 경우 DNS 쿼리가 사용자가 사용한 AWS CloudShell AWS Lambda Amazon EKS 또는 Fargate 콘솔에서 시작되었기 때문일 수 있습니다.

**resolver\$1endpoint**  
DNS 쿼리를 온프레미스 DNS 서버로 전달하는 해석기 엔드포인트의 ID입니다.  
서로 다른 해석기 엔드포인트를 사용하여 서로 다른 전달 규칙 간을 잇는 CNAME 레코드가 있는 경우 체인에 사용된 마지막 해석기 엔드포인트의 ID만 쿼리 로그에 표시됩니다. 여러 엔드포인트를 거치는 전체 확인 경로를 추적하려면 서로 다른 쿼리 로깅 구성의 로그들을 상호 연관시켜 분석할 수 있습니다.

**firewall\$1rule\$1group\$1id**  
쿼리에 있는 도메인 이름과 일치하는 DNS Firewall 규칙 그룹의 ID입니다. 이는 DNS 방화벽이 알림 또는 차단으로 설정된 작업과 일치하는 규칙을 발견한 경우에만 채워집니다.  
방화벽 규칙에 대한 자세한 내용은 [DNS 방화벽 규칙 그룹 및 규칙](resolver-dns-firewall-rule-groups.md)를 참조하세요.

**firewall\$1rule\$1action**  
쿼리에 있는 도메인 이름과 일치하는 규칙에 의해 지정된 작업입니다. 이는 DNS 방화벽이 알림 또는 차단으로 설정된 작업과 일치하는 규칙을 발견한 경우에만 채워집니다.

**firewall\$1domain\$1list\$1id**  
쿼리에 있는 도메인 이름과 일치하는 규칙에 의해 사용되는 도메인 목록입니다. 이는 DNS 방화벽이 알림 또는 차단으로 설정된 작업과 일치하는 규칙을 발견한 경우에만 채워집니다.

**additional\$1properties**  
로그 전송 이벤트에 대한 추가 정보입니다. **is\$1delay:** 로그 전송이 지연되는 경우입니다.

# Route 53 VPC Resolver 쿼리 로그 예제
<a name="resolver-query-logs-example-json"></a>

다음은 Resolver 쿼리 로그 예제입니다.

```
          
      {
        "srcaddr": "4.5.64.102",
        "vpc_id": "vpc-7example",
        "answers": [
            {
                "Rdata": "203.0.113.9",
                "Type": "PTR",
                "Class": "IN"
            }
        ],
        "firewall_rule_group_id": "rslvr-frg-01234567890abcdef",
        "firewall_rule_action": "BLOCK",
        "query_name": "15.3.4.32.in-addr.arpa.",
        "firewall_domain_list_id": "rslvr-fdl-01234567890abcdef",
        "query_class": "IN",
        "srcids": {
            "instance": "i-0d15cd0d3example"
        },
        "rcode": "NOERROR",
        "query_type": "PTR",
        "transport": "UDP",
        "version": "1.100000",
        "account_id": "111122223333",
        "srcport": "56067",
        "query_timestamp": "2021-02-04T17:51:55Z",
        "region": "us-east-1"
    }
```

# Resolver 쿼리 로깅 구성을 다른 AWS 계정과 공유
<a name="query-logging-configurations-managing-sharing"></a>

한 AWS 계정을 사용하여 생성한 쿼리 로깅 구성을 다른 계정과 공유할 수 AWS 있습니다. 구성을 공유하기 위해 Route 53 VPC Resolver 콘솔은 AWS Resource Access Manager와 통합됩니다. Resource Access Manager에 대한 자세한 내용은 [Resource Access Manager 사용 설명서](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 섹션을 참조하세요.

다음을 참조하세요.

**공유된 쿼리 로깅 구성을 VPC와 연결**  
다른 AWS 계정이 하나 이상의 구성을 계정과 공유한 경우 VPCs를 생성한 구성과 연결하는 것과 동일한 방식으로 VPCs 구성과 연결할 수 있습니다.

**구성 삭제 또는 공유 해제**  
구성을 다른 계정과 공유한 다음 구성을 삭제하거나 공유를 중지하고 하나 이상의 VPCs 구성과 연결된 경우 Route 53 VPC Resolver는 해당 VPCs.

**구성에 연결할 수 있는 쿼리 로깅 구성 및 VPC의 최대 수**  
계정이 구성을 생성하여 하나 이상의 다른 계정과 공유하는 경우 구성에 연결할 수 있는 최대 VPC 수가 계정에 적용됩니다. 예를 들어 조직에 10,000개의 계정이 있는 경우 중앙 계정에서 쿼리 로깅 구성을 생성하고를 통해 공유 AWS RAM 하여 조직 계정과 공유할 수 있습니다. 그러면 조직 계정은 해당 VPC와 구성을 연결하여 AWS 리전 한도인 100개당 해당 계정의 쿼리 로그 구성 VPC 연결에 대해 구성을 계산합니다. 그러나 모든 VPC가 단일 계정에 있는 경우 해당 계정의 서비스 한도를 늘려야 할 수 있습니다.  
현재 VPC Resolver 할당량은 섹션을 참조하세요[Route 53 VPC Resolver의 할당량](DNSLimitations.md#limits-api-entities-resolver).

**권한**  
규칙을 다른 AWS 계정과 공유하려면 [PutResolverQueryLogConfigPolicy](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_PutResolverQueryLogConfigPolicy.html) 작업을 사용할 수 있는 권한이 있어야 합니다.

**규칙이 공유되는 AWS 계정에 대한 제한 사항**  
규칙이 공유되는 계정은 규칙을 변경하거나 삭제할 수 없습니다.

**태그 지정**  
규칙을 생성한 계정만 규칙의 태그를 추가하거나 삭제하거나 볼 수 있습니다.

규칙의 현재 공유 상태를 보고(규칙을 공유한 계정 또는 규칙이 공유되는 계정 포함) 규칙을 다른 계정과 공유하려면 다음 절차를 수행하세요.<a name="resolver-rules-managing-sharing-procedure"></a>

**공유 상태를 보고 쿼리 로깅 구성을 다른 AWS 계정과 공유하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/) Route 53 콘솔을 엽니다.

1. 탐색 창에서 **쿼리 로깅**을 선택합니다.

1. 탐색 모음에서 규칙을 생성한 리전을 선택합니다.

   현재 계정이 생성하거나 현재 계정과 공유되는 규칙의 현재 공유 상태가 **공유 상태** 열에 표시됩니다.
   + **공유되지 않음**: 현재 AWS 계정이 규칙을 생성했으며 규칙이 다른 계정과 공유되지 않습니다.
   + **나와 공유됨**: 현재 계정이 규칙을 생성하고 하나 이상의 계정과 공유했습니다.
   + **나와 공유 상태**: 다른 계정이 규칙을 생성하고 현재 계정과 공유했습니다.

1. 공유 정보를 표시하거나 다른 계정과 공유할 규칙의 이름을 선택합니다.

   **규칙: *규칙 이름*** 페이지에서 **소유자** 아래의 값은 규칙을 생성한 계정의 ID를 나타냅니다. **Sharing status(공유 상태)**의 값이 **나와 공유 상태**가 아닐 경우 현재 계정입니다. 이 경우 **소유자**는 규칙을 생성하고 현재 계정과 공유한 계정입니다.

   공유 상태도 표시됩니다.

1. **구성 공유**를 선택하여 AWS RAM 콘솔을 엽니다.

1. 리소스 공유를 생성하려면 *AWS RAM 사용 설명서*의 [AWS RAM에서 리소스 공유 생성](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html) 단계를 따릅니다.
**참고**  
공유 설정을 업데이트할 수 없습니다. 다음 설정 중 하나로도 변경하려면 규칙을 새로운 설정과 다시 공유한 후 이전 공유 설정을 제거해야 합니다.

# 도메인 등록 모니터링
<a name="monitoring-domain-registrations"></a>

Amazon Route 53 대시보드는 다음을 포함하여 도메인 등록 상태에 대한 세부 정보를 제공합니다.
+ 새 도메인 등록 상태
+ Route 53으로의 도메인 이전 상태
+ 만료 날짜가 다가오고 있는 도메인 목록

특히 새 도메인을 등록하거나 도메인을 Route 53으로 이전한 후에는 Route 53 콘솔에서 대시보드를 주기적으로 확인하여 해결할 문제가 없음을 확인하는 것이 좋습니다.

또한 도메인의 연락처 정보가 최신인지 확인할 것을 권장합니다. 도메인 만료 날짜가 다가오면 도메인의 등록자 연락처에게 도메인이 만료되는 시기와 갱신 방법에 관한 정보가 포함된 이메일이 전송됩니다.

# Amazon Route 53 상태 확인 및 Amazon CloudWatch를 사용하여 리소스 모니터링
<a name="monitoring-cloudwatch"></a>

CloudWatch를 사용하여 원시 데이터를 수집하여 읽기 가능하고 실시간에 가까운 지표로 처리하는 Amazon Route 53 상태 확인을 만들어 리소스를 모니터링할 수 있습니다. 이러한 통계는 2주간 기록되므로 기록 정보를 보고 리소스가 어떻게 실행되고 있는지 전체적으로 더 잘 파악할 수 있습니다. Route 53 상태 확인의 지표 데이터는 기본적으로 1분 간격으로 CloudWatch에 자동 전송됩니다.

Route 53 상태 확인에 대한 자세한 내용은 [CloudWatch를 이용한 상태 확인 모니터링](monitoring-health-checks.md) 섹션을 참조하세요. CloudWatch에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch란 무엇입니까?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)를 참조하세요.

## Route 53 상태 확인 지표 및 차원
<a name="metrics_dimensions_health_checks"></a>

상태 확인이 생성되면 Amazon Route 53는 지정하는 리소스에 대한 지표와 차원을 1분에 한 번씩 CloudWatch에 전송하기 시작합니다. Route 53 콘솔에서 상태 확인의 상태를 확인할 수 있습니다. 다음 절차를 사용하여 CloudWatch 콘솔에서 지표를 보거나 AWS Command Line Interface ()를 사용하여 지표를 볼 수도 있습니다AWS CLI.

**CloudWatch 콘솔을 사용하여 지표를 보려면**

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 CloudWatch 콘솔을 엽니다.

1. 탐색 창에서 **지표**(Metrics)를 선택합니다.

1. [**All Metrics**] 탭에서 [**Route 53**]을 선택합니다.

1. **상태 확인 지표**(Health Check Metrics)를 선택합니다.

**를 사용하여 지표를 보려면 AWS CLI**
+ 명령 프롬프트에서 다음 명령을 사용합니다.

  ```
  1. aws cloudwatch list-metrics --namespace "AWS/Route53"
  ```

**Topics**
+ [Route 53 상태 확인을 위한 CloudWatch 지표](#cloudwatch-metrics)
+ [Route 53 상태 확인 지표를 위한 차원](#cloudwatch-dimensions-route-53-metrics)

### Route 53 상태 확인을 위한 CloudWatch 지표
<a name="cloudwatch-metrics"></a>

`AWS/Route53` 네임스페이스에는 Route 53 상태 확인을 위한 다음 지표가 포함되어 있습니다.

**ChildHealthCheckHealthyCount**  
계산된 상태 확인의 경우, 상태가 정상인 상태 확인의 수입니다.  
유효 통계: 평균(권장), 최소, 최대  
단위: 개

**ConnectionTime**  
Route 53 상태 확인 프로그램이 엔드포인트와의 TCP 연결을 설정하는 데 걸린 평균 시간(ms)입니다. 모든 리전이나 선택한 지리적 리전에 걸친 상태 확인의 `ConnectionTime`를 볼 수 있습니다.  
유효 통계: 평균(권장), 최소, 최대  
단위: 밀리초

**HealthCheckPercentageHealthy**  
선택된 엔드포인트를 정상으로 여기는 Route 53 상태 확인 프로그램의 비율입니다.  
유효 통계: 평균, 최소, 최대  
단위: 백분율

**HealthCheckStatus**  
CloudWatch에서 확인하고 있는 상태 확인 엔드포인트의 상태입니다. **1**은 정상임을 나타내며 **0**은 정상이 아님을 나타냅니다.  
유효한 통계: 최소, 평균, 최대  
단위: 없음

**SSLHandshakeTime**  
Route 53 상태 확인 프로그램이 SSL 핸드셰이크를 완료하는 데 걸린 평균 시간(ms)입니다. 모든 리전이나 선택한 지리적 리전에 걸친 상태 확인의 `SSLHandshakeTime`를 볼 수 있습니다.  
유효 통계: 평균(권장), 최소, 최대  
단위: 밀리초

**TimeToFirstByte**  
Route 53 상태 확인 프로그램이 HTTP 또는 HTTPS 요청에 대한 응답의 첫 번째 바이트를 수신하는 데 걸린 평균 시간(ms)입니다. 모든 리전이나 선택한 지리적 리전에 걸친 상태 확인의 `TimeToFirstByte`를 볼 수 있습니다.  
유효 통계: 평균(권장), 최소, 최대  
단위: 밀리초

### Route 53 상태 확인 지표를 위한 차원
<a name="cloudwatch-dimensions-route-53-metrics"></a>

Route 53 상태 확인 지표는 `AWS/Route53` 네임스페이스를 사용하며 `HealthCheckId`의 지표를 제공합니다. 지표를 검색하려면 `HealthCheckId` 차원을 제공해야 합니다.

또한 `ConnectionTime`, `SSLHandshakeTime` 및 `TimeToFirstByte`의 경우, `Region`을 지정할 수도 있습니다(선택 사항). `Region`을 생략하면 CloudWatch가 모든 리전에 걸친 지표를 반환합니다. `Region`을 포함하면 CloudWatch가 지정된 리전의 지표만 반환합니다.

자세한 내용은 [CloudWatch를 이용한 상태 확인 모니터링](monitoring-health-checks.md) 섹션을 참조하세요.

# Amazon CloudWatch를 사용하여 호스팅 영역 모니터링
<a name="monitoring-hosted-zones-with-cloudwatch"></a>

Amazon CloudWatch를 사용하여 퍼블릭 호스팅 영역을 모니터링하여 원시 데이터를 수집해 읽기 가능하고 실시간에 가까운 지표로 처리할 수 있습니다. 지표는 Route 53가 지표의 기반이 되는 DNS 쿼리를 수신하는 즉시 사용 가능한 상태가 됩니다. Route 53 호스팅 영역에 대한 CloudWatch 지표 데이터는 1분씩 세분화됩니다.

자세한 내용은 다음 설명서를 참조하세요.
+ Amazon CloudWatch 콘솔에서 지표를 확인하는 방법과 AWS Command Line Interface (AWS CLI)를 사용해 지표를 검색하는 방법에 대한 개요 및 정보는 [퍼블릭 호스팅 영역에서 DNS 쿼리 지표 보기](hosted-zone-public-viewing-query-metrics.md) 섹션을 참조하세요.
+ 지표의 보존 기간에 대한 자세한 내용은 *Amazon CloudWatch API 참조*의 [GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)를 참조하세요.
+ CloudWatch에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch란 무엇입니까?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)를 참조하세요.
+ CloudWatch 지표에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch 지표 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)을 참조하세요.

**Topics**
+ [Route 53 퍼블릭 호스팅 영역에 대한 CloudWatch 지표](#cloudwatch-metrics-route-53-hosted-zones)
+ [Route 53 퍼블릭 호스팅 영역 지표의 CloudWatch 차원](#cloudwatch-dimensions-route-53-hosted-zones)

## Route 53 퍼블릭 호스팅 영역에 대한 CloudWatch 지표
<a name="cloudwatch-metrics-route-53-hosted-zones"></a>

`AWS/Route53` 네임스페이스에는 다음과 같은 Route 53 호스팅 영역의 지표가 포함되어 있습니다.

**DNSQueries**  
호스팅 영역에서 지정된 기간 동안 Route 53가 응답하는 DNS 쿼리의 수입니다.  
유효한 통계: Sum, SampleCount  
단위: 개  
리전: Route 53는 글로벌 서비스입니다. 호스팅 영역 지표를 가져오려면 해당 리전을 미국 동부(버지니아 북부)로 지정해야 합니다.

**DNSSECInternalFailure**  
호스팅 영역의 객체가 INTERNAL\$1Failure 상태인 경우 값은 1입니다. 그렇지 않은 경우 값은 0입니다.  
유효 통계: Sum  
단위: 개  
볼륨: 호스팅 영역당 4시간 마다 1개  
리전: Route 53는 글로벌 서비스입니다. 호스팅 영역 지표를 가져오려면 해당 리전을 미국 동부(버지니아 북부)로 지정해야 합니다.

**DNSSECKeySigningKeysNeedingAction**  
(KMS 오류로 인해) ACTION\$1NEEDED 상태인 키 서명 키(KSK)의 수입니다.  
유효한 통계: Sum, SampleCount  
단위: 개  
볼륨: 호스팅 영역당 4시간 마다 1개  
리전: Route 53는 글로벌 서비스입니다. 호스팅 영역 지표를 가져오려면 해당 리전을 미국 동부(버지니아 북부)로 지정해야 합니다.

**DNSSECKeySigningKeyMaxNeedingActionAge**  
키 서명 키(KSK)가 ACTION\$1NEEDED 상태로 설정된 이후 경과된 시간입니다.  
유효 통계: Maximum  
단위: 초  
볼륨: 호스팅 영역당 4시간 마다 1개  
리전: Route 53는 글로벌 서비스입니다. 호스팅 영역 지표를 가져오려면 해당 리전을 미국 동부(버지니아 북부)로 지정해야 합니다.

**DNSSECKeySigningKeyAge**  
키 서명 키(KSK)가 생성된 이후(활성화된 이후가 아님) 경과된 시간입니다.  
유효 통계: Maximum  
단위: 초  
볼륨: 호스팅 영역당 4시간 마다 1개  
리전: Route 53는 글로벌 서비스입니다. 호스팅 영역 지표를 가져오려면 해당 리전을 미국 동부(버지니아 북부)로 지정해야 합니다.

## Route 53 퍼블릭 호스팅 영역 지표의 CloudWatch 차원
<a name="cloudwatch-dimensions-route-53-hosted-zones"></a>

호스팅 영역의 Route 53 지표는 `AWS/Route53` 네임스페이스를 사용하며 `HostedZoneId`의 지표를 제공합니다. DNS 쿼리 수를 얻으려면 `HostedZoneId` 차원에 호스팅 영역의 ID를 지정해야 합니다.

# Amazon CloudWatch를 사용하여 Route 53 VPC Resolver 엔드포인트 모니터링
<a name="monitoring-resolver-with-cloudwatch"></a>

Amazon CloudWatch를 사용하여 Route 53 VPC Resolver 엔드포인트에서 전달하는 DNS 쿼리 수를 모니터링할 수 있습니다. Amazon CloudWatch는 원시 데이터를 수집하여 실시간에 가까운 읽기 가능한 지표로 처리합니다. 이러한 통계는 2주간 기록되므로 기록 정보를 보고 리소스가 어떻게 실행되고 있는지 전체적으로 더 잘 파악할 수 있습니다. 기본적으로 Resolver 엔드포인트의 지표 데이터는 5분 간격으로 CloudWatch에 자동 전송됩니다. 5분 간격은 메트릭 데이터를 전송할 수 있는 가장 작은 시간 간격이기도 합니다.

VPC Resolver에 대한 자세한 내용은 섹션을 참조하세요[Route 53 VPC Resolver란 무엇입니까?](resolver.md). CloudWatch에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch란 무엇입니까?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)를 참조하세요.

## Route 53 VPC Resolver에 대한 지표 및 차원
<a name="metrics-dimensions-resolver"></a>

네트워크로 또는 그 반대로 DNS 쿼리를 전달하도록 VPC Resolver를 구성하면 VPC Resolver는 전달되는 쿼리 수에 대한 [지표](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/monitoring-resolver-with-cloudwatch.html#cloudwatch-metrics-resolver)와 [차원](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/monitoring-resolver-with-cloudwatch.html#cloudwatch-dimensions-resolver)을 5분에 한 번씩 CloudWatch에 보내기 시작합니다. 다음 절차를 사용하여 CloudWatch 콘솔에서 지표를 보거나 AWS Command Line Interface ()를 사용하여 지표를 볼 수 있습니다AWS CLI.

**CloudWatch 콘솔을 사용하여 VPC Resolver 지표를 보려면**

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 CloudWatch 콘솔을 엽니다.

1. 탐색 모음에서 엔드포인트를 생성한 리전을 선택합니다.

1. 탐색 창에서 **지표(Metrics)**를 선택합니다.

1. **모든 지표** 탭에서 **Route 53 Resolver**를 선택합니다.

1. 지정된 엔드포인트의 쿼리 수를 보려면 **By Endpoint(엔드포인트 기준)**를 선택합니다. 그런 다음 쿼리 수를 보려는 엔드포인트를 선택합니다.

   **모든 인바운드 엔드포인트** 또는 현재 AWS 계정에서 생성한 모든 아웃바운드 엔드포인트에 대한 쿼리 수를 보려면 모든 엔드포인트에서를 선택합니다. 그런 다음 **InboundQueryVolume** 또는 **OutboundQueryVolume**을 선택해 원하는 수를 확인합니다.

**를 사용하여 지표를 보려면 AWS CLI**
+ 명령 프롬프트에서 다음 명령을 사용합니다.

  ```
  1. aws cloudwatch list-metrics --namespace "AWS/Route53Resolver"
  ```

**Topics**
+ [Route 53 VPC Resolver에 대한 CloudWatch 기본 지표](#cloudwatch-metrics-resolver)
+ [Route 53 VPC Resolver에 대한 CloudWatch 세부 지표](#cloudwatch-detailed-metrics-resolver)
+ [Route 53 VPC Resolver 지표의 차원](#cloudwatch-dimensions-resolver)

### Route 53 VPC Resolver에 대한 CloudWatch 기본 지표
<a name="cloudwatch-metrics-resolver"></a>

`AWS/Route53Resolver` 네임스페이스에는 Route 53 VPC Resolver 엔드포인트 및 IP 주소에 대한 기본 지표가 무료로 포함되어 있습니다.

**Topics**
+ [Route 53 VPC Resolver 엔드포인트에 대한 지표](#cloudwatch-metrics-resolver-endpoint)
+ [Route 53 VPC Resolver IP 주소에 대한 지표](#cloudwatch-metrics-resolver-ip-address)

#### Route 53 VPC Resolver 엔드포인트에 대한 지표
<a name="cloudwatch-metrics-resolver-endpoint"></a>

`AWS/Route53Resolver` 네임스페이스에는 Route 53 VPC Resolver 엔드포인트에 대한 다음 지표가 포함됩니다.

**EndpointHealthyENICount**  
 `OPERATIONAL` 상태의 탄력적 네트워크 인터페이스의 수입니다. 즉, (`EndpointId`에 의해 지정된) 엔드포인트의 Amazon VPC 네트워크 인터페이스가 올바르게 구성되어 있고 네트워크와 Resolver 사이의 인바운드 또는 아웃바운드 DNS 쿼리를 전달할 수 있습니다.  
유효한 통계: Minimum, Maximum, Average  
단위: 개

**EndpointUnhealthyENICount**  
 `AUTO_RECOVERING` 상태의 탄력적 네트워크 인터페이스의 수입니다.  
즉, 해석기가 (`EndpointId`에 의해 지정된) 엔드포인트에 연결된 Amazon VPC 네트워크 인터페이스 중 하나 이상을 복구하려고 합니다. 복구 프로세스 중 엔드포인트가 제한된 용량으로 작동하며 완전히 복구될 때까지 DNS 쿼리를 처리할 수 없습니다.  
유효한 통계: Minimum, Maximum, Average  
단위: 개

**InboundQueryVolume**  
인바운드 엔드포인트의 경우, `EndpointId`에 의해 지정된 엔드포인트를 통해 네트워크에서 VPC로 전달된 DNS 쿼리의 수입니다.  
유효한 통계: Sum  
단위: 개

**OutboundQueryVolume**  
아웃바운드 엔드포인트의 경우, `EndpointId`에 의해 지정된 엔드포인트를 통해 VPC에서 네트워크로 전달된 DNS 쿼리의 수입니다.  
유효한 통계: Sum  
단위: 개

**OutboundQueryAggregateVolume**  
아웃바운드 엔드포인트의 경우, 다음을 포함하여 Amazon VPC에서 네트워크로 전달된 총 DNS 쿼리 수입니다.  
+ `EndpointId`에 의해 지정된 엔드포인트를 통해 VPC에서 네트워크로 전달된 DNS 쿼리 수.
+ 현재 계정이 Resolver 규칙을 다른 계정과 공유하는 경우, 다른 계정에서 생성되어 `EndpointId`에 의해 지정된 엔드포인트를 통해 네트워크로 전달되는 VPC의 쿼리입니다.
유효한 통계: Sum  
단위: 개

**ResolverEndpointCapacityStatus**  
Resolver 엔드포인트의 용량 상태입니다. 이 지표는 현재 용량 사용률 상태를 나타냅니다. 여기서 0 = 정상(정상적인 작동 용량), 1 = 경고(하나 이상의 탄력적 네트워크 인터페이스가 50% 용량 사용률을 초과함), 2 = 위험(하나 이상의 탄력적 네트워크 인터페이스가 75% 용량 사용률을 초과함)을 나타냅니다.  
용량 상태는 쿼리 볼륨, 쿼리 지연 시간, DNS 프로토콜, DNS 패킷 크기, 연결 추적 상태 등 여러 요인에 의해 결정됩니다.  
유효한 통계: Maximum  
단위: 없음

**VPC Resolver 엔드포인트 용량 관리 모범 사례**  
용량 문제를 해결하려면 일반적으로 Resolver 엔드포인트를 위한 탄력적 네트워크 인터페이스의 수를 늘리는 것이 좋습니다. 그러나 특정 엔드포인트 유형에는 중요한 고려 사항이 있습니다.

**인바운드 엔드포인트**의 경우 트래픽 로드 밸런싱이 고객마다 다릅니다. 따라서 용량 경고 또는 중요 알림은 일부 탄력적 네트워크 인터페이스가 불균형하게 사용되는 “핫 스팟” 현상을 나타낼 수 있습니다.
+ 잠재적인 로드 밸런싱 문제를 식별하려면 각 탄력적 네트워크 인터페이스에 대해 [InboundQueryVolume](#cloudwatch-metrics-resolver-ip-address) 지표를 개별적으로 조사합니다.

**아웃바운드 엔드포인트**의 경우 트래픽이 탄력적 네트워크 인터페이스 전반에서 자동으로 밸런싱됩니다. 용량 문제는 대상 이름 서버의 문제 때문이거나 지연 시간이 긴 제한 시간 쿼리가 Resolver 네트워크 인터페이스를 압도하기 때문일 수 있습니다.
+ 이러한 경우 탄력적 네트워크 인터페이스를 늘리는 것만으로는 효과적이지 않을 수 있으므로 대상 이름 서버를 수정하는 것이 좋습니다.

#### Route 53 VPC Resolver IP 주소에 대한 지표
<a name="cloudwatch-metrics-resolver-ip-address"></a>

`AWS/Route53Resolver` 네임스페이스에는 Resolver 인바운드 또는 아웃바운드 엔드포인트에 연결된 각 IP 주소에 대한 다음 지표가 포함됩니다. (엔드포인트를 지정하면 VPC Resolver가 Amazon VPC [탄력적 네트워크 인터페이스를](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) 생성합니다.)

**InboundQueryVolume**  
인바운드 엔드포인트의 각 IP 주소에 대해 네트워크에서 지정된 IP 주소로 전달된 DNS 쿼리 수입니다. 각 IP 주소는 IP 주소 ID로 식별됩니다. Route 53 콘솔을 사용하여 이 값을 확인할 수 있습니다. 해당 엔드포인트 페이지의 IP 주소 섹션에서 **IP address ID(IP 주소 ID)** 열을 확인합니다. 또한 [ListResolverEndpointIpAddresses](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpointIpAddresses.html)를 사용하여 프로그래밍 방식으로 이 값을 확인할 수도 있습니다.  
유효한 통계: Sum  
단위: 개

**OutboundQueryAggregateVolume**  
아웃바운드 엔드포인트의 각 IP 주소에 대해 다음을 포함하여 Amazon VPC에서 네트워크로 전달된 총 DNS 쿼리 수입니다.  
+ 지정된 IP 주소를 사용하여 VPC에서 네트워크로 전달된 DNS 쿼리 수.
+ 현재 계정이 Resolver 규칙을 다른 계정과 공유하는 경우, 다른 계정에서 생성되어 지정된 IP 주소를 사용하여 네트워크로 전달되는 VPC의 쿼리입니다.
각 IP 주소는 IP 주소 ID로 식별됩니다. Route 53 콘솔을 사용하여 이 값을 확인할 수 있습니다. 해당 엔드포인트 페이지의 IP 주소 섹션에서 **IP address ID(IP 주소 ID)** 열을 확인합니다. 또한 [ListResolverEndpointIpAddresses](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpointIpAddresses.html)를 사용하여 프로그래밍 방식으로 이 값을 확인할 수도 있습니다.  
유효한 통계: Sum  
단위: 개

### Route 53 VPC Resolver에 대한 CloudWatch 세부 지표
<a name="cloudwatch-detailed-metrics-resolver"></a>

Route 53 VPC Resolver는 엔드포인트에 대한 옵트인 기능으로 RNI Enhanced 및 Target Name Server 지표를 제공합니다. 이러한 지표는 1분 간격으로 CloudWatch로 전송됩니다.

**참고**  
세부 지표는 기본적으로 활성화되어 있지 않지만 엔드포인트 수준에서 활성화할 수 있습니다. 이러한 지표는 RniEnhancedMetricsEnabled 및 TargetNameServerMetricsEnabled 플래그를 사용하여 엔드포인트를 생성하거나 업데이트하는 동안 프로그래밍 방식으로 활성화할 수 있습니다. 자세한 내용은 [CreateResolverEndpoint](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html) 및 [UpdateResolverEndpoint](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html)를 참조하세요.
Route 53 Resolver 엔드포인트 세부 지표를 사용하는 경우 표준 CloudWatch 요금 및 요금이 적용됩니다. 자세한 내용은 [Amazon CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing/)을 참조하세요.

**Topics**
+ [RNI 향상된 지표](#cloudwatch-detailed-metrics-resolver-endpoints-ip-addresses)
+ [대상 이름 서버 지표](#cloudwatch-detailed-metrics-resolver-endpoints-target-nameservers)

#### RNI 향상된 지표
<a name="cloudwatch-detailed-metrics-resolver-endpoints-ip-addresses"></a>

Route 53 Resolver는 Resolver 엔드포인트 및 Resolver IP 주소의 성능과 상태를 모니터링하기 위해 Amazon CloudWatch에 RNI 향상된 지표를 게시합니다. `AWS/Route53Resolver` 네임스페이스에는 `EndpointId`, 차원의 Route 53 Resolver 인바운드 및 아웃바운드 엔드포인트에 대한 `RniId` 다음과 같은 RNI 향상된 지표가 포함됩니다.

**P90ResponseTime**  
Resolver 엔드포인트()와 연결된 Resolver IP(`RniId`)에서 수신한 DNS 쿼리의 90번째 백분위수 응답 지연 시간`EndpointId`  
유효한 통계: Maximum  
단위: 마이크로초

**ServFailQueries**  
Resolver 엔드포인트(`RniId`)와 연결된 Resolver IP()로 전송된 DNS 쿼리에 대한 SERVFAIL 응답 수`EndpointId`  
유효한 통계: Sum  
단위: 개

**NxDomainQueries**  
Resolver 엔드포인트(`RniId`)와 연결된 Resolver IP()로 전송된 DNS 쿼리에 대한 NXDOMAIN 응답 수`EndpointId`  
유효한 통계: Sum  
단위: 개

**RefusedQueries**  
Resolver 엔드포인트(`RniId`)와 연결된 Resolver IP()로 전송된 DNS 쿼리에 대한 REFUSED 응답 수`EndpointId`  
유효한 통계: Sum  
단위: 개

**FormErrorQueries**  
Resolver 엔드포인트(`RniId`)와 연결된 Resolver IP()로 전송된 DNS 쿼리에 대한 FORMERR 응답 수`EndpointId`  
유효한 통계: Sum  
단위: 개

**TimeoutQueries**  
Resolver 엔드포인트(`RniId`)와 연결된 Resolver IP(`EndpointId`)로 전송된 DNS 쿼리의 제한 시간 수  
유효한 통계: Sum  
단위: 개

#### 대상 이름 서버 지표
<a name="cloudwatch-detailed-metrics-resolver-endpoints-target-nameservers"></a>

Route 53 Resolver는 Resolver 엔드포인트와 연결된 대상 이름 서버의 성능 및 가용성을 모니터링하기 위해 Amazon CloudWatch에 대상 이름 서버 지표를 게시합니다. `AWS/Route53Resolver` 네임스페이스에는 `EndpointID`, 차원의 Route 53 Resolver 아웃바운드 엔드포인트에 대한 `TargetNameServerIP` 다음과 같은 세부 지표가 포함됩니다.

**P90ResponseTime**  
Resolver 엔드포인트(`TargetNameServerIP`)를 통해 전송된 DNS 쿼리에 대한 대상 이름 서버 IP(`EndpointID`)의 90번째 백분위수 응답 지연 시간  
유효한 통계: Maximum  
단위: 마이크로초

**RequestQueries**  
Resolver 엔드포인트(`TargetNameServerIP`)를 통해 대상 이름 서버 IP()로 전송된 DNS 쿼리 수입니다`EndpointID`.  
유효한 통계: Sum  
단위: 개

**TimeoutQueries**  
대상 이름 서버 IP(`EndpointID`)에서 시간 초과된 Resolver 엔드포인트()를 통해 전송된 DNS 쿼리 수입니다`TargetNameServerIP`.  
유효한 통계: Sum  
단위: 개

**참고**  
경우에 따라 VPC Resolver 지표(ResolverEndpointCapacityStatus) 및 RNI 향상된 지표에서 격차가 관찰될 수 있습니다. 이러한 격차는 네트워크 인터페이스에서 연속으로 예약된 유지 관리 또는 업데이트가 진행되는 경우에 발생할 수 있습니다. 서비스에 네트워크 인터페이스를 반환한 후 서비스가 운영 데이터를 수집하고 이러한 지표를 게시하는 데 최소 1분이 걸립니다. 이러한 격차는 VPC Resolver 엔드포인트에 중단이 발생하고 있음을 나타내지 않습니다. 이러한 지표에 대해 CloudWatch 경보를 구성하는 경우 다음을 권장합니다.  
경보를 “누락된 데이터를 무시로 처리”로 설정하거나
경보 임계값에 대해 5분 이상의 평가 기간을 구성합니다.
이러한 설정은 정상적인 유지 관리 활동 중 거짓 경보의 발생을 줄이는 데 도움이 됩니다.

### Route 53 VPC Resolver 지표의 차원
<a name="cloudwatch-dimensions-resolver"></a>

인바운드 및 아웃바운드 엔드포인트에 대한 Route 53 VPC Resolver 지표는 `AWS/Route53Resolver` 네임스페이스를 사용하고 다음 차원에 대한 지표를 제공합니다.
+ `EndpointId`: `EndpointId`차원 값을 지정하면 CloudWatch는 지정된 엔드포인트에 대한 DNS 쿼리 수를 반환합니다. 를 지정하지 않으면 `EndpointId` CloudWatch는 현재 AWS 계정에서 생성한 모든 엔드포인트에 대한 DNS 쿼리 수를 반환합니다.
+ `RniId` 차원은 `OutboundQueryAggregateVolume` 및 `InboundQueryVolume` 지표에 대해 지원됩니다.
+ `EndpointId`, `RniId`차원은 해석기 엔드포인트와 연결된 해석기 IP 주소에 `TimeoutQueries` 대해 , `P90ResponseTime` `ServFailQueries` `NxDomainQueries``FormErrorQueries`, , `RefusedQueries`, 및에 지원됩니다.
+ `EndpointID`, `TargetNameServerIP`차원은 해석기 엔드포인트와 연결된 대상 이름 서버에 `TimeoutQueries` 대해 `RequestQueries`, 및 `P90ResponseTime`에 지원됩니다.

# Amazon CloudWatch를 사용하여 Resolver DNS 방화벽 규칙 그룹 모니터링
<a name="monitoring-resolver-dns-firewall-with-cloudwatch"></a>

Amazon CloudWatch를 사용하여 Resolver DNS 방화벽 규칙 그룹으로 필터링되는 DNS 쿼리 수를 모니터링할 수 있습니다. Amazon CloudWatch는 원시 데이터를 수집하여 실시간에 가까운 읽기 가능한 지표로 처리합니다. 이러한 통계는 2주간 기록되므로 기록 정보를 보고 리소스가 어떻게 실행되고 있는지 전체적으로 더 잘 파악할 수 있습니다. 기본적으로 DNS 방화벽 규칙 그룹의 지표 데이터는 5분 간격으로 CloudWatch에 자동 전송됩니다.

DNS 방화벽에 대한 자세한 내용은 [DNS 방화벽을 사용하여 아웃바운드 DNS 트래픽 필터링](resolver-dns-firewall.md) 섹션을 참조하세요. CloudWatch에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch란 무엇입니까?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)를 참조하세요.

## Resolver DNS 방화벽에 대한 지표 및 차원
<a name="metrics-dimensions-resolver-dns-firewall"></a>

Resolver DNS 방화벽 규칙 그룹을 VPC와 연결하여 DNS 쿼리를 필터링하면 DNS 방화벽은 필터링하는 쿼리에 대해 5분마다 한 번씩 CloudWatch에 지표와 차원을 보내기 시작합니다. DNS 방화벽의 지표 및 차원에 대한 자세한 내용은 [Resolver DNS 방화벽에 대한 CloudWatch 지표](#cloudwatch-metrics-resolver-dns-firewall) 섹션을 참조하세요.

다음 절차를 사용하여 CloudWatch 콘솔에서 지표를 보거나 AWS Command Line Interface ()를 사용하여 지표를 볼 수 있습니다AWS CLI.

**CloudWatch 콘솔을 사용하여 DNS 방화벽 지표를 확인하려면**

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 CloudWatch 콘솔을 엽니다.

1. 탐색 모음에서 확인하려는 리전을 선택합니다.

1. 탐색 창에서 **지표(Metrics)**를 선택합니다.

1. **모든 지표** 탭에서 **Route 53 VPC Resolver**를 선택합니다.

1. 관심 있는 지표를 선택합니다.

**를 사용하여 지표를 보려면 AWS CLI**
+ 명령 프롬프트에서 다음 명령을 사용합니다.

  ```
  1. aws cloudwatch list-metrics --namespace "AWS/Route53Resolver"
  ```

**Topics**
+ [Resolver DNS 방화벽에 대한 CloudWatch 지표](#cloudwatch-metrics-resolver-dns-firewall)

### Resolver DNS 방화벽에 대한 CloudWatch 지표
<a name="cloudwatch-metrics-resolver-dns-firewall"></a>

`AWS/Route53Resolver` 네임스페이스에는 Resolver DNS 방화벽 규칙 그룹에 대한 지표가 포함됩니다.

**Topics**
+ [Resolver DNS 방화벽 규칙 그룹에 대한 지표](#cloudwatch-metrics-resolver-dns-firewall-rule-group)
+ [VPC에 대한 지표](#cloudwatch-metrics-resolver-vpc)
+ [방화벽 규칙 그룹 및 VPC 연결에 대한 지표](#cloudwatch-metrics-resolver-firewall-vpc)
+ [방화벽 규칙 그룹의 도메인 목록에 대한 지표](#cloudwatch-metrics-domain-list-firewall)

#### Resolver DNS 방화벽 규칙 그룹에 대한 지표
<a name="cloudwatch-metrics-resolver-dns-firewall-rule-group"></a>

**FirewallRuleGroupQueryVolume**  
(`FirewallRuleGroupId`에 의해 지정된) 방화벽 규칙 그룹과 일치하는 DNS 방화벽 쿼리 수입니다.  
차원: `FirewallRuleGroupId`  
유효 통계: Sum  
단위: 개

#### VPC에 대한 지표
<a name="cloudwatch-metrics-resolver-vpc"></a>

**VpcFirewallQueryVolume**  
(`VpcId`에 의해 지정된) VPC의 DNS 방화벽 쿼리 수입니다.  
차원: `VpcId`  
유효 통계: Sum  
단위: 개

#### 방화벽 규칙 그룹 및 VPC 연결에 대한 지표
<a name="cloudwatch-metrics-resolver-firewall-vpc"></a>

**FirewallRuleGroupVpcQueryVolume**  
(`FirewallRuleGroupId`에 의해 지정된) 방화벽 규칙 그룹과 일치하는 (`VpcId`에 의해 지정된) VPC의 DNS 방화벽 쿼리 수입니다.  
차원: `FirewallRuleGroupId, VpcId`  
유효 통계: Sum  
단위: 개

#### 방화벽 규칙 그룹의 도메인 목록에 대한 지표
<a name="cloudwatch-metrics-domain-list-firewall"></a>

**FirewallRuleQueryVolume**  
(`FirewallRuleGroupId`에 의해 지정된) 방화벽 규칙 그룹 내에서 (`FirewallDomainListId`에 의해 지정된) 방화벽 도메인 목록과 일치하는 DNS 방화벽 쿼리 수입니다.  
차원: `FirewallRuleGroupId, FirewallDomainListId`  
유효 통계: Sum  
단위: 개

# 를 사용하여 Resolver DNS 방화벽 이벤트 관리 Amazon EventBridge
<a name="dns-firewall-eventbridge-integration"></a>

Amazon EventBridge 는 이벤트를 사용하여 애플리케이션 구성 요소를 함께 연결하는 서버리스 서비스이므로 확장 가능한 이벤트 기반 애플리케이션을 더 쉽게 구축할 수 있습니다. 이벤트 기반 아키텍처는 이벤트를 내보내고 이에 응답하여 함께 작동하는 느슨하게 결합된 소프트웨어 시스템을 구축하는 스타일입니다. 이벤트는 리소스나 환경의 변화를 나타냅니다.

많은 AWS 서비스와 마찬가지로 DNS 방화벽은 이벤트를 생성하고 기본 이벤트 버스로 EventBridge 전송합니다. (모든 AWS 계정에서 기본 이벤트 버스는 자동으로 프로비저닝됩니다.) 이벤트 버스는 이벤트를 수신하여 0개 이상의 목적지 또는 **대상에 전달하는 라우터입니다. 이벤트 버스에 대해 지정한 규칙은 이벤트가 도착할 때 이벤트를 평가합니다. 각 규칙은 이벤트가 규칙의 **이벤트 패턴과 일치하는지 여부를 확인합니다. 이벤트가 일치하면 이벤트 버스는 이벤트를 지정된 대상에게 전송합니다.

![\[AWS 서비스는 EventBridge 기본 이벤트 버스로 이벤트를 전송합니다. 이벤트가 규칙의 이벤트 패턴과 일치하는 경우는 해당 규칙에 지정된 대상으로 이벤트를 EventBridge 보냅니다.\]](http://docs.aws.amazon.com/ko_kr/Route53/latest/DeveloperGuide/images/eventbridge-integration-how-it-works.png)


**Topics**
+ [해석기 DNS 방화벽 이벤트](#supported-events)
+ [EventBridge 규칙을 사용하여 Resolver DNS 방화벽 이벤트 전송](#eventbridge-using-events-rules)
+ [Amazon EventBridge 권한](#eventbridge-permissions)
+ [추가 EventBridge 리소스](#eventbridge-additonal-resources)
+ [해석기 DNS 방화벽 이벤트 세부 정보 참조](events-detail-reference.md)

## 해석기 DNS 방화벽 이벤트
<a name="supported-events"></a>

VPC Resolver는 DNS 방화벽 이벤트를 기본 EventBridge 이벤트 버스로 자동으로 전송합니다. 이벤트 버스에 규칙을 생성할 수 있습니다. 각 규칙에는 이벤트 패턴과 하나 이상의 대상이 포함됩니다. 규칙의 이벤트 패턴과 일치하는 이벤트는 [최대한](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level) 지정된 대상으로 전달됩니다. 이벤트는 비순차적으로 전달될 수 있습니다.

다음 이벤트는 DNS 방화벽에서 생성됩니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)를 참조하세요.


| 이벤트 세부 정보 유형 | 설명 | 
| --- | --- | 
|  [DNS 방화벽 블록](events-detail-reference.md#dns-firewall-alert)  |  도메인에서 수행되는 모든 블록 작업입니다. | 
|  [DNS 방화벽 알림](events-detail-reference.md#dns-firewall-block)  |  도메인에서 수행되는 모든 알림 작업입니다. | 

## EventBridge 규칙을 사용하여 Resolver DNS 방화벽 이벤트 전송
<a name="eventbridge-using-events-rules"></a>

 EventBridge 기본 이벤트 버스가 대상으로 DNS 방화벽 이벤트를 보내도록 하려면 원하는 DNS 방화벽 이벤트의 데이터와 일치하는 이벤트 패턴이 포함된 규칙을 생성해야 합니다.

규칙의 생성은 다음과 같은 일반적인 단계로 구성됩니다.

1. 다음을 지정하는 규칙에 대한 이벤트 패턴 생성: 
   + VPC Resolver는 규칙에 의해 평가되는 이벤트의 소스입니다.
   + (선택 사항): 일치하는지 확인할 기타 모든 이벤트 데이터.

   자세한 내용은 [Resolver DNS 방화벽 이벤트에 대한 이벤트 패턴 생성](#eventbridge-using-events-rules-patterns) 섹션을 참조하세요.

1. (선택 사항):가 정보를 규칙의 대상으로 EventBridge 전달하기 전에 이벤트의 데이터를 사용자 지정하는 *입력 변환기*를 생성합니다.

   자세한 내용은 **EventBridge 사용 설명서의 [입력 변환](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html)을 참조하세요.

1. 이벤트 패턴과 일치하는 이벤트를 전달 EventBridge 하려는 대상(들)을 지정합니다.

   대상은 다른 AWS 서비스, software-as-a-service(SaaS) 애플리케이션, API 대상 또는 기타 사용자 지정 엔드포인트일 수 있습니다. 자세한 내용은 **EventBridge 사용 설명서의 [대상](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)을 참조하세요.

이벤트 버스 규칙 생성에 대해 자세히 알아보려면 **EventBridge 사용 설명서의 [이벤트에 대응하는 규칙 생성](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)을 참조하세요.

### Resolver DNS 방화벽 이벤트에 대한 이벤트 패턴 생성
<a name="eventbridge-using-events-rules-patterns"></a>

DNS 방화벽이 이벤트를 기본 이벤트 버스로 전송할 때는 각 규칙에 정의된 이벤트 패턴을 EventBridge 사용하여 이벤트를 규칙의 대상(들)에 전달해야 하는지 여부를 결정합니다. 이벤트 패턴이 원하는 DNS 방화벽 이벤트의 데이터와 일치합니다. 각 이벤트 패턴은 다음을 포함하는 JSON 객체입니다.
+ 이벤트를 전송하는 서비스를 식별하는 `source` 속성입니다. DNS 방화벽 이벤트의 경우 소스는 `aws.route53resolver`입니다.
+ (선택 사항): 일치시킬 이벤트 유형의 배열을 포함하는 `detail-type` 속성입니다.
+ (선택 사항): 일치시킬 다른 이벤트 데이터를 포함하는 `detail` 속성입니다.

예를 들어 다음 이벤트 패턴은 DNS 방화벽의 알림 및 차단 이벤트와 일치합니다.

```
{
  "source": ["aws.route53resolver"],
  "detail-type": ["DNS Firewall Block", "DNS Firewall Alert"]
}
```

다음 이벤트 패턴이 BLOCK 작업과 일치하는 동안:

```
{
  "source": ["aws.route53resolver"],
  "detail-type": ["DNS Firewall Block"]
}
```

DNS 방화벽은 6시간 내에 동일한 도메인에 대해 동일한 이벤트를 한 번만 전송합니다. 예제: 

1. 인스턴스 i-123은 T1 시점에 DNS 쿼리 exampledomain.com을 전송했습니다. 처음 발생하므로 DNS 방화벽이 알림 또는 차단 이벤트를 보냅니다.

1. 인스턴스 i-123은 T1\$130분 시점에 DNSquery exampledomain.com을 전송했습니다. 6시간 기간 내에 반복 발생하므로 DNS 방화벽이 경고 또는 차단 이벤트를 보내지 않습니다.

1. 인스턴스 i-123은 T1\$17 시간에 DNS 쿼리 exampledomain.com을 전송했습니다. 6시간 기간 외에 발생하므로 DNS 방화벽이 알림 또는 차단 이벤트를 전송합니다.

자세한 내용은 **EventBridge 사용 설명서의 [이벤트 패턴](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)을 참조하세요.

### 에서 DNS 방화벽 이벤트에 대한 이벤트 패턴 테스트 EventBridge
<a name="eventbridge-using-events-testing"></a>

더 큰 규칙 생성 또는 편집 프로세스를 완료하지 않고도 EventBridge 샌드박스를 사용하여 이벤트 패턴을 빠르게 정의하고 테스트할 수 있습니다. 샌드박스를 사용하여 이벤트 패턴을 정의하고 샘플 이벤트를 사용하여 패턴이 원하는 이벤트와 일치하는지 확인할 수 있습니다. 샌드박스에서 직접 해당 이벤트 패턴을 사용하여 새 규칙을 생성할 수 있는 옵션을 EventBridge 제공합니다.

자세한 내용은 *EventBridge 사용 설명서*[의 EventBridge 샌드박스를 사용하여 이벤트 패턴 테스트를](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-pattern-sandbox.html) 참조하세요.

### DNS 방화벽의 EventBridge 규칙 및 대상 생성
<a name="dns-firewall-rule-to-lambda-example"></a>

다음 절차에서는 EventBridge가 모든 DNS 방화벽 알림 및 차단 작업에 대한 이벤트를 보내고 AWS Lambda 함수를 규칙의 대상으로 추가할 수 있도록 하는 규칙을 생성하는 방법을 보여줍니다.

1.  AWS CLI 를 사용하여 EventBridge 규칙을 생성합니다.

   ```
   aws events put-rule \
   --event-pattern "{\"source\":
   [\"aws.route53resolver\"],\"detail-type\":
   [\"DNS Firewall Block\", \"DNS Firewall Alert\"]}" \
   --name dns-firewall-rule
   ```

1. Lambda 함수를 규칙의 대상으로 연결:

   `AWS events put-targets --rule dns-firewall-rule --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:<your_function>`

1. 대상을 호출하는 데 필요한 권한을 추가하려면 다음 Lambda AWS CLI 명령을 실행합니다.

   `AWS lambda add-permission --function-name <your_function> --statement-id 1 --action 'lambda:InvokeFunction' --principal events.amazonaws.com`

## Amazon EventBridge 권한
<a name="eventbridge-permissions"></a>

DNS 방화벽에는 이벤트를 Amazon EventBridge로 전송하는 데 추가 권한이 필요하지 않습니다.

지정하는 대상에는 특정 권한이나 구성이 필요할 수 있습니다. 대상에 특정 서비스를 사용하는 방법에 대한 자세한 내용은 **Amazon EventBridge 사용 설명서의 [Amazon EventBridge 대상](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)을 참조하세요.

## 추가 EventBridge 리소스
<a name="eventbridge-additonal-resources"></a>

를 사용하여 이벤트를 처리하고 관리하는 방법에 대한 자세한 내용은 [https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)의 다음 주제를 참조 EventBridge 하세요.
+ 이벤트 버스의 작동 방식에 대한 자세한 내용은 [Amazon EventBridge 이벤트 버스](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-bus.html)를 참조하세요.
+ 이벤트 구조에 대해 자세히 알아보려면 [이벤트](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)를 참조하세요.
+ 가 이벤트를 규칙과 일치 EventBridge 시킬 때 사용할 이벤트 패턴을 구성하는 방법에 대한 자세한 내용은 [이벤트 패턴을](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) 참조하세요.
+  EventBridge 에서 처리하는 이벤트를 지정하는 규칙을 생성하는 방법에 대한 자세한 내용은 [규칙](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)을 참조하세요.
+ 일치하는 이벤트를 EventBridge 보내는 서비스 또는 기타 대상을 지정하는 방법에 대한 자세한 내용은 [대상을 참조하세요](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html).

# 해석기 DNS 방화벽 이벤트 세부 정보 참조
<a name="events-detail-reference"></a>

 AWS 서비스의 모든 이벤트에는 이벤트의 소스인 AWS 서비스, 이벤트가 생성된 시간, 이벤트가 발생한 계정 및 리전 등 이벤트에 대한 메타데이터가 포함된 공통 필드 세트가 있습니다. 이러한 일반 필드에 대한 정의는 **Amazon EventBridge 사용 설명서의 [이벤트 구조 참조](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html)를 참조하세요.

또한 각 이벤트에는 해당 특정 이벤트와 관련된 데이터를 포함하는 `detail` 필드가 있습니다. 다음 참조는 다양한 DNS 방화벽 이벤트에 대한 세부 정보 필드를 정의합니다.

 EventBridge 를 사용하여 DNS 방화벽 이벤트를 선택하고 관리할 때는 다음 사항에 유의하는 것이 좋습니다.
+ DNS 방화벽의 모든 이벤트에 대한 `source` 필드는 `aws.route53resolver`로 설정됩니다.
+ `detail-type` 필드는 이벤트 유형을 지정합니다.

  예: `DNS Firewall Block` 또는 `DNS Firewall Alert`.
+ `detail` 필드는 해당 특정 이벤트와 관련된 데이터를 포함합니다.

DNS 방화벽 이벤트와 일치하는 규칙을 활성화하는 이벤트 패턴을 구성하는 방법에 대한 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [이벤트 패턴](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)을 참조하세요.

이벤트 및 이벤트 EventBridge 처리 방법에 대한 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 이벤트를](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) 참조하세요.

**Topics**
+ [DNS 방화벽 알림 이벤트 세부 정보](#dns-firewall-alert)
+ [DNS 방화벽 차단 이벤트 세부 정보](#dns-firewall-block)

## DNS 방화벽 알림 이벤트 세부 정보
<a name="dns-firewall-alert"></a>

다음은 Alert 상태 이벤트의 세부 정보 필드입니다.

`source` 및 `detail-type` 필드는 Route 53 이벤트에 대한 특정 값을 포함하므로 여기에 포함됩니다.

```
{...,
 "detail-type": "DNS Firewall Alert",
  "source": "aws.route53resolver",
 ...,
 "detail": {
      "account-id": "string",
      "last-observed-at": "string",
      "query-name": "string",
      "query-type": "string",
      "query-class": "string",
      "transport": "string",
      "firewall-rule-action": "string",
      "firewall-rule-group-id": "string",
      "firewall-domain-list-id": "string",
      "firewall-protection": "string",
      "resources": [{
         "resource-type": "string",
         "instance-details": {
             "id": "string",
       }
     },
     { 
         "resource-type": "string",
         "resolver-endpoint-details": {
         "id": "string"
       }
     }
 ]
```

`detail-type`  
이벤트의 유형을 식별합니다.  
이 이벤트의 경우 이 값은 `DNS Firewall Alert`입니다.

`source`  
이벤트를 생성한 서비스를 식별합니다. DNS 방화벽 이벤트의 경우 이 값은 `aws.route53resolver`입니다.

`detail`  
이벤트에 대한 정보를 포함하는 JSON 객체입니다. 이벤트를 생성하는 서비스에 따라 이 필드의 내용이 결정됩니다.  
이 이벤트의 경우 이 데이터에는 다음이 포함됩니다.    
`account-id`  
VPC를 AWS 계정 생성한의 ID입니다.  
`last-observed-at`  
VPC에서 Alert/Block 쿼리가 수행된 시점의 타임스탬프입니다.  
`query-name`  
쿼리에 지정된 도메인 이름(예: example.com) 또는 하위 도메인 이름(예: www.example.com)입니다.  
`query-type`  
요청에서 지정된 DNS 레코드 유형 또는 ANY입니다. Route 53가 지원하는 유형에 대한 자세한 내용은 [지원되는 DNS 레코드 유형](ResourceRecordTypes.md)를 참조하세요.  
`query-class`  
쿼리의 클래스입니다.  
`transport`  
DNS 쿼리를 제출하는 데 사용되는 프로토콜입니다.  
`firewall-rule-action`  
쿼리에 있는 도메인 이름과 일치하는 규칙에 의해 지정된 작업입니다. `ALERT` 또는 `BLOCK`입니다.  
`firewall-rule-group-id`  
쿼리에 있는 도메인 이름과 일치하는 DNS Firewall 규칙 그룹의 ID입니다. 방화벽 규칙 그룹에 대한 자세한 내용은 DNS 방화벽 [DNS 방화벽 규칙 그룹 및 규칙](resolver-dns-firewall-rule-groups.md)를 참조하세요.  
`firewall-domain-list-id`  
쿼리에 있는 도메인 이름과 일치하는 규칙에 의해 사용되는 도메인 목록입니다.  
`firewall-protection`  
DNS 방화벽 고급 보호: DGA, DICTIONARY\$1DGA 또는 DNS\$1TUNNELING. 자세한 내용은 DNS 방화벽 [해석기 DNS 방화벽 고급](firewall-advanced.md) 섹션을 참조하세요.  
`resourcese`  
리소스 유형과 이에 대한 추가 세부 정보를 포함합니다.  
`resource-type`  
Resolver 엔드포인트 또는 VPC 인스턴스와 같은 리소스 유형을 지정합니다.  
`resource-type-detail`  
요청에 대한 추가 세부 정보입니다.

**Example DNS 방화벽 알림 이벤트**  <a name="dns-firewall-alert.example"></a>
다음은 알림 이벤트 예제입니다.  

```
{
 "version": "1.0",
 "id": "8e5622f9-d81c-4d81-612a-9319e7ee2506",
 "detail-type": "DNS Firewall Alert",
 "source": "aws.route53resolver",
 "account": "123456789012",
 "time": "2023-05-30T21:52:17Z",
 "region": "us-west-2",
 "resources": [],
 "detail": {
 "account-id": "123456789012",
 "last-observed-at": "2023-05-30T20:15:15.900Z",
 "query-name": "15.3.4.32.in-addr.arpa.",
 "query-type": "A",
 "query-class": "IN",
 "transport": "UDP",
 "firewall-rule-action": "ALERT",
 "firewall-rule-group-id": "rslvr-frg-01234567890abcdef",
 "firewall-domain-list-id": "rslvr-fdl-01234567890abcdef",
 "firewall-protection": "DGA",
 "resources": [{
      "resource-type": "instance",
      "instance-details": {
         "id": "i-05746eb48123455e0",
       }
     },
     { 
      "resource-type": "resolver-endpoint",
      "resolver-endpoint-details": {
         "id": "i-05746eb48123455e0"
       }
     }
 ],
"src-addr": "4.5.64.102",
"src-port": "56067",
"vpc-id": "vpc-7example"
 }
}
```

## DNS 방화벽 차단 이벤트 세부 정보
<a name="dns-firewall-block"></a>

다음은 *이벤트 이름*에 대한 세부 정보 필드입니다.

`source` 및 `detail-type` 필드는 Route 53 이벤트에 대한 특정 값을 포함하므로 여기에 포함됩니다.

```
{...,
 "detail-type": "DNS Firewall Block",
  "source": "aws.route53resolver",
 ...,
 "detail": {
      "account-id": "string",
      "last-observed-at": "string",
      "query-name": "string",
      "query-type": "string",
      "query-class": "string",
      "transport": "string",
      "firewall-rule-action": "string",
      "firewall-rule-group-id": "string",
      "firewall-domain-list-id": "string",
      "firewall-protection": "string",
      "resources": [{
         "resource-type": "string",
         "instance-details": {
             "id": "string",
       }
     },
     { 
         "resource-type": "string",
         "resolver-endpoint-details": {
         "id": "string"
       }
     }
 ]
```

`detail-type`  
이벤트의 유형을 식별합니다.  
이 이벤트의 경우 이 값은 `DNS Firewall Alert`입니다.

`source`  
이벤트를 생성한 서비스를 식별합니다. DNS 방화벽 이벤트의 경우 이 값은 `aws.route53resolver`입니다.

`detail`  
이벤트에 대한 정보를 포함하는 JSON 객체입니다. 이벤트를 생성하는 서비스에 따라 이 필드의 내용이 결정됩니다.  
이 이벤트의 경우 이 데이터에는 다음이 포함됩니다.    
`account-id`  
VPC를 AWS 계정 생성한의 ID입니다.  
`last-observed-at`  
VPC에서 Alert/Block 쿼리가 수행된 시점의 타임스탬프입니다.  
`query-name`  
쿼리에 지정된 도메인 이름(예: example.com) 또는 하위 도메인 이름(예: www.example.com)입니다.  
`query-type`  
요청에서 지정된 DNS 레코드 유형 또는 ANY입니다. Route 53가 지원하는 유형에 대한 자세한 내용은 [지원되는 DNS 레코드 유형](ResourceRecordTypes.md)를 참조하세요.  
`query-class`  
쿼리의 클래스입니다.  
`transport`  
DNS 쿼리를 제출하는 데 사용되는 프로토콜입니다.  
`firewall-rule-action`  
쿼리에 있는 도메인 이름과 일치하는 규칙에 의해 지정된 작업입니다. `ALERT` 또는 `BLOCK`입니다.  
`firewall-rule-group-id`  
쿼리에 있는 도메인 이름과 일치하는 DNS Firewall 규칙 그룹의 ID입니다. 방화벽 규칙 그룹에 대한 자세한 내용은 DNS 방화벽 [DNS 방화벽 규칙 그룹 및 규칙](resolver-dns-firewall-rule-groups.md)를 참조하세요.  
`firewall-domain-list-id`  
쿼리에 있는 도메인 이름과 일치하는 규칙에 의해 사용되는 도메인 목록입니다.  
`firewall-protection`  
DNS 방화벽 고급 보호: DGA, DICTIONARY\$1DGA 또는 DNS\$1TUNNELING. 자세한 내용은 DNS 방화벽 [해석기 DNS 방화벽 고급](firewall-advanced.md) 섹션을 참조하세요.  
`resourcese`  
리소스 유형과 이에 대한 추가 세부 정보를 포함합니다.  
`resource-type`  
Resolver 엔드포인트 또는 VPC 인스턴스와 같은 리소스 유형을 지정합니다.  
`resource-type-detail`  
요청에 대한 추가 세부 정보입니다.

**Example 예제 이벤트**  <a name="dns-firewall-block.example"></a>
다음은 차단 이벤트 예제입니다.  

```
{
 "version": "1.0",
 "id": "8e5622f9-d81c-4d81-612a-9319e7ee2506",
 "detail-type": "DNS Firewall Block",
 "source": "aws.route53resolver",
 "account": "123456789012",
 "time": "2023-05-30T21:52:17Z",
 "region": "us-west-2",
 "resources": [],
 "detail": {
 "account-id": "123456789012",
 "last-observed-at": "2023-05-30T20:15:15.900Z",
 "query-name": "15.3.4.32.in-addr.arpa.",
 "query-type": "A",
 "query-class": "IN",
 "transport": "UDP",
 "firewall-rule-action": "BLOCK",
 "firewall-rule-group-id": "rslvr-frg-01234567890abcdef",
 "firewall-domain-list-id": "rslvr-fdl-01234567890abcdef",
 "firewall-protection": "DNS_TUNNELING",
 "resources": [{
      "resource-type": "instance",
      "instance-details": {
         "id": "i-05746eb48123455e0"
       }
     },
     { 
      "resource-type": "resolver-endpoint",
      "resolver-endpoint-details": {
         "id": "i-05746eb48123455e0",
       }
     }
 ],
"src-addr": "4.5.64.102",
"src-port": "56067",
"vpc-id": "vpc-7example"
 }
}
```

# 를 사용하여 Amazon Route 53 API 호출 로깅 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

Route 53는 Route 53에서 사용자 AWS CloudTrail, 역할 또는 서비스가 수행한 작업에 대한 레코드를 제공하는 AWS 서비스와 통합됩니다. CloudTrail은 Route 53 콘솔의 호출 및 Route 53 API에 대한 코드 호출을 포함하여 Route 53에 대한 모든 API 호출을 이벤트로 캡처합니다. 추적을 생성하면 Route 53 이벤트를 포함한 CloudTrail 이벤트를 지속적으로 Amazon S3 버킷에 전달할 수 있습니다. 추적을 구성하지 않은 경우에도 **이벤트 기록**에서 CloudTrail 콘솔의 최신 이벤트를 볼 수 있습니다. CloudTrail이 수집한 정보를 사용하여 Route 53에 수행된 요청, 요청이 수행된 IP 주소, 요청을 수행한 사람, 요청이 수행된 시간 및 추가 세부 정보를 확인할 수 있습니다.

**Topics**
+ [CloudTrail의 Route 53 정보](#route-53-info-in-cloudtrail)
+ [이벤트 기록에서 Route 53 이벤트 확인하기](#route-53-events-in-cloudtrail-event-history)
+ [Route 53 로그 파일 항목 이해](#understanding-route-53-entries-in-cloudtrail)

## CloudTrail의 Route 53 정보
<a name="route-53-info-in-cloudtrail"></a>

 AWS 계정을 생성할 때 계정에서 CloudTrail이 활성화됩니다. Route 53에서 활동이 발생하면 해당 활동이 **이벤트 기록**의 다른 AWS 서비스 이벤트와 함께 CloudTrail 이벤트에 기록됩니다. AWS 계정에서 최근 이벤트를 보고 검색하고 다운로드할 수 있습니다. 자세한 내용은 [CloudTrail 이벤트 기록을 사용하여 이벤트 보기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)를 참조하세요.

Route 53에 대한 이벤트를 포함하여 AWS 계정에 이벤트를 지속적으로 기록하려면 추적을 생성합니다. CloudTrail은 추적을 사용하여 Amazon S3 버킷으로 로그 파일을 전송할 수 있습니다. 콘솔에서 트레일을 생성하면 기본적으로 모든 리전에 트레일이 적용됩니다. 추적은 AWS 파티션의 모든 리전에서 이벤트를 로깅하고 지정한 Amazon S3 버킷으로 로그 파일을 전송합니다. 또한 CloudTrail 로그에서 수집된 이벤트 데이터를 추가로 분석하고 조치를 취하도록 다른 AWS 서비스를 구성할 수 있습니다. 자세한 내용은 다음을 참조하세요.
+ [추적 생성 개요](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 지원 서비스 및 통합](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [CloudTrail에 대한 Amazon SNS 알림 구성](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [여러 리전에서 CloudTrail 로그 파일 수신](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) 및 [여러 계정에서 CloudTrail 로그 파일 수신](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

모든 Route 53 작업은 CloudTrail에서 로깅되며 [Amazon Route 53 API 참조](https://docs.aws.amazon.com/Route53/latest/APIReference/)에 설명되어 있습니다. 예를 들어 `CreateHostedZone`, `CreateHealthCheck` 및 `RegisterDomain` 작업을 직접적으로 호출하면 CloudTrail 로그 파일에 항목이 생성됩니다.

모든 이벤트 또는 로그 항목에는 요청을 생성했던 사용자에 관한 정보가 포함됩니다. ID 정보를 이용하면 다음을 쉽게 판단할 수 있습니다.
+ 요청을 루트로 했는지 아니면 IAM 사용자 자격 증명 정보로 했는지 여부.
+ 역할 또는 페더레이션 사용자의 임시 자격 증명을 사용하여 요청이 생성되었는지 여부.
+ 요청이 다른 AWS 서비스에서 이루어졌는지 여부입니다.

자세한 내용은 [CloudTrail userIdentity 요소](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)를 참조하세요.

## 이벤트 기록에서 Route 53 이벤트 확인하기
<a name="route-53-events-in-cloudtrail-event-history"></a>

CloudTrail에서는 **이벤트 기록**에서 최근 이벤트를 확인할 수 있습니다. Route 53 API 요청에 대한 이벤트를 확인하려면 콘솔 상단의 리전 선택기에서 **미국 동부(버지니아 북부)**를 선택해야 합니다. 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [CloudTrail 이벤트 기록으로 이벤트 보기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)를 참조하세요.

## Route 53 로그 파일 항목 이해
<a name="understanding-route-53-entries-in-cloudtrail"></a>

트레일이란 지정한 S3 버킷에 이벤트를 로그 파일로 입력할 수 있게 하는 구성입니다. CloudTrail 로그 파일에는 하나 이상의 로그 항목이 포함될 수 있습니다. 이벤트는 모든 소스의 단일 요청을 나타내며 요청된 작업, 작업 날짜와 시간, 요청 파라미터 등에 대한 정보를 포함하고 있습니다. CloudTrail 로그 파일은 퍼블릭 API 직접 호출에 대한 순서 지정된 스택 추적이 아니기 때문에 특정 순서로 표시되지 않습니다.

`eventName` 요소는 발생한 작업을 식별합니다. (CloudTrail 로그에서 첫 번째 문자는 비록 작업 이름에는 대문자로 되어 있더라도 도메인 등록 작업의 경우 소문자입니다(예: `UpdateDomainContact`는 로그에서 `updateDomainContact`로 표시됩니다). CloudTrail에서는 모든 Route 53 API 작업을 지원합니다. 다음 예제는 다음 작업을 보여주는 CloudTrail 로그 항목입니다.
+  AWS 계정과 연결된 호스팅 영역 나열
+ 상태 확인 생성
+ 레코드 2개 생성
+ 호스팅 영역 삭제
+ 등록된 도메인에 대한 정보 업데이트
+ Route 53 VPC Resolver 아웃바운드 엔드포인트 생성

```
{
    "Records": [
        {
            "apiVersion": "2013-04-01",
            "awsRegion": "us-east-1",
            "eventID": "1cdbea14-e162-43bb-8853-f9f86d4739ca",
            "eventName": "ListHostedZones",
            "eventSource": "route53.amazonaws.com",
            "eventTime": "2015-01-16T00:41:48Z",
            "eventType": "AwsApiCall",
            "eventVersion": "1.02",
            "recipientAccountId": "444455556666",
            "requestID": "741e0df7-9d18-11e4-b752-f9c6311f3510",
            "requestParameters": null,
            "responseElements": null,
            "sourceIPAddress": "192.0.2.92",
            "userAgent": "Apache-HttpClient/4.3 (java 1.5)",
            "userIdentity": {
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "accountId": "111122223333",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "type": "IAMUser",
                "userName": "smithj"
            }
        },
        {
            "apiVersion": "2013-04-01",
            "awsRegion": "us-east-1",
            "eventID": "45ec906a-1325-4f61-b133-3ef1012b0cbc",
            "eventName": "CreateHealthCheck",
            "eventSource": "route53.amazonaws.com",
            "eventTime": "2018-01-16T00:41:57Z",
            "eventType": "AwsApiCall",
            "eventVersion": "1.02",
            "recipientAccountId": "444455556666",
            "requestID": "79915168-9d18-11e4-b752-f9c6311f3510",
            "requestParameters": {
                "callerReference": "2014-05-06 64832",
                "healthCheckConfig": {
                    "iPAddress": "192.0.2.249",
                    "port": 80,
                    "type": "TCP"
                }
            },
            "responseElements": {
                "healthCheck": {
                    "callerReference": "2014-05-06 64847",
                    "healthCheckConfig": {
                        "failureThreshold": 3,
                        "iPAddress": "192.0.2.249",
                        "port": 80,
                        "requestInterval": 30,
                        "type": "TCP"
                    },
                    "healthCheckVersion": 1,
                    "id": "b3c9cbc6-cd18-43bc-93f8-9e557example"
                },
                "location": "https://route53.amazonaws.com/2013-04-01/healthcheck/b3c9cbc6-cd18-43bc-93f8-9e557example"
            },
            "sourceIPAddress": "192.0.2.92",
            "userAgent": "Apache-HttpClient/4.3 (java 1.5)",
            "userIdentity": {
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "accountId": "111122223333",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "type": "IAMUser",
                "userName": "smithj"
            }
        },
        {
            "additionalEventData": {
                "Note": "Do not use to reconstruct hosted zone"
            },
            "apiVersion": "2013-04-01",
            "awsRegion": "us-east-1",
            "eventID": "883b14d9-2f84-4005-8bc5-c7bf0cebc116",
            "eventName": "ChangeResourceRecordSets",
            "eventSource": "route53.amazonaws.com",
            "eventTime": "2018-01-16T00:41:43Z",
            "eventType": "AwsApiCall",
            "eventVersion": "1.02",
            "recipientAccountId": "444455556666",
            "requestID": "7081d4c6-9d18-11e4-b752-f9c6311f3510",
            "requestParameters": {
                "changeBatch": {
                    "changes": [
                        {
                            "action": "CREATE",
                            "resourceRecordSet": {
                                "name": "prod.example.com.",
                                "resourceRecords": [
                                    {
                                        "value": "192.0.1.1"
                                    },
                                    {
                                        "value": "192.0.1.2"
                                    },
                                    {
                                        "value": "192.0.1.3"
                                    },
                                    {
                                        "value": "192.0.1.4"
                                    }
                                ],
                                "tTL": 300,
                                "type": "A"
                            }
                        },
                        {
                            "action": "CREATE",
                            "resourceRecordSet": {
                                "name": "test.example.com.",
                                "resourceRecords": [
                                    {
                                        "value": "192.0.1.1"
                                    },
                                    {
                                        "value": "192.0.1.2"
                                    },
                                    {
                                        "value": "192.0.1.3"
                                    },
                                    {
                                        "value": "192.0.1.4"
                                    }
                                ],
                                "tTL": 300,
                                "type": "A"
                            }
                        }
                    ],
                    "comment": "Adding subdomains"
                },
                "hostedZoneId": "Z1PA6795UKMFR9"
            },
            "responseElements": {
                "changeInfo": {
                    "comment": "Adding subdomains",
                    "id": "/change/C156SRE0X2ZB10",
                    "status": "PENDING",
                    "submittedAt": "Jan 16, 2018 12:41:43 AM"
                }
            },
            "sourceIPAddress": "192.0.2.92",
            "userAgent": "Apache-HttpClient/4.3 (java 1.5)",
            "userIdentity": {
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "accountId": "111122223333",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "type": "IAMUser",
                "userName": "smithj"
            }
        },
        {
            "apiVersion": "2013-04-01",
            "awsRegion": "us-east-1",
            "eventID": "0cb87544-ebee-40a9-9812-e9dda1962cb2",
            "eventName": "DeleteHostedZone",
            "eventSource": "route53.amazonaws.com",
            "eventTime": "2018-01-16T00:41:37Z",
            "eventType": "AwsApiCall",
            "eventVersion": "1.02",
            "recipientAccountId": "444455556666",
            "requestID": "6d5d149f-9d18-11e4-b752-f9c6311f3510",
            "requestParameters": {
                "id": "Z1PA6795UKMFR9"
            },
            "responseElements": {
                "changeInfo": {
                    "id": "/change/C1SIJYUYIKVJWP",
                    "status": "PENDING",
                    "submittedAt": "Jan 16, 2018 12:41:36 AM"
                }
            },
            "sourceIPAddress": "192.0.2.92",
            "userAgent": "Apache-HttpClient/4.3 (java 1.5)",
            "userIdentity": {
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "accountId": "111122223333",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "type": "IAMUser",
                "userName": "smithj"
            }
        },
        {
            "eventVersion": "1.05",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "accountId": "111122223333",
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "userName": "smithj",
                "sessionContext": {
                    "attributes": {
                        "mfaAuthenticated": "false",
                        "creationDate": "2018-11-01T19:43:59Z"
                    }
                },
                "invokedBy": "test"
            },
            "eventTime": "2018-11-01T19:49:36Z",
            "eventSource": "route53domains.amazonaws.com",
            "eventName": "updateDomainContact",
            "awsRegion": "us-west-2",
            "sourceIPAddress": "192.0.2.92",
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0",
            "requestParameters": {
                "domainName": {
                    "name": "example.com"
                }
            },
            "responseElements": {
                "requestId": "034e222b-a3d5-4bec-8ff9-35877ff02187"
            },
            "additionalEventData": "Personally-identifying contact information is not logged in the request",
            "requestID": "015b7313-bf3d-11e7-af12-cf75409087f6",
            "eventID": "f34f3338-aaf4-446f-bf0e-f72323bac94d",
            "eventType": "AwsApiCall",
            "recipientAccountId": "444455556666"
        },
        {
            "eventVersion": "1.05",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "accountId": "111122223333",
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "sessionContext": {
                    "attributes": {
                        "mfaAuthenticated": "false",
                        "creationDate": "2018-11-01T14:33:09Z"
                    },
                    "sessionIssuer": {
                        "type": "Role",
                        "principalId": "AROAIUZEZLWWZOEXAMPLE",
                        "arn": "arn:aws:iam::123456789012:role/Admin",
                        "accountId": "123456789012",
                        "userName": "Admin"
                    }
                }
            },
            "eventTime": "2018-11-01T14:37:19Z",
            "eventSource": "route53resolver.amazonaws.com",
            "eventName": "CreateResolverEndpoint",
            "awsRegion": "us-west-2",
            "sourceIPAddress": "192.0.2.176",
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0",
            "requestParameters": {
                "creatorRequestId": "123456789012",
                "name": "OutboundEndpointDemo",
                "securityGroupIds": [
                    "sg-05618b249example"
                ],
                "direction": "OUTBOUND",
                "ipAddresses": [
                    {
                        "subnetId": "subnet-01cb0c4676example"
                    },
                    {
                        "subnetId": "subnet-0534819b32example"
                    }
                ],
                "tags": []
            },
            "responseElements": {
                "resolverEndpoint": {
                    "id": "rslvr-out-1f4031f1f5example",
                    "creatorRequestId": "123456789012",
                    "arn": "arn:aws:route53resolver:us-west-2:123456789012:resolver-endpoint/rslvr-out-1f4031f1f5example",
                    "name": "OutboundEndpointDemo",
                    "securityGroupIds": [
                        "sg-05618b249example"
                    ],
                    "direction": "OUTBOUND",
                    "ipAddressCount": 2,
                    "hostVPCId": "vpc-0de29124example",
                    "status": "CREATING",
                    "statusMessage": "[Trace id: 1-5bd1d51e-f2f3032eb75649f71example] Creating the Resolver Endpoint",
                    "creationTime": "2018-11-01T14:37:19.045Z",
                    "modificationTime": "2018-11-01T14:37:19.045Z"
                }
            },
            "requestID": "3f066d98-773f-4628-9cba-4ba6eexample",
            "eventID": "cb05b4f9-9411-4507-813b-33cb0example",
            "eventType": "AwsApiCall",
            "recipientAccountId": "123456789012"
        }
    ]
}
```