기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS CloudFormation을 사용하여 Amazon Route 53 및 Amazon Route 53 Resolver 리소스 생성
Amazon Route 53 및 Amazon Route 53 Resolver은 리소스 및 인프라를 생성하고 관리하는 데 소요되는 시간을 줄일 수 있도록 AWS 리소스를 모델링하고 설정하는 데 도움이 되는 서비스인 AWS CloudFormation과 통합됩니다. 필요한 모든 AWS 리소스를 설명하는 템플릿을 생성하면 CloudFormation에서 이러한 리소스를 프로비저닝하고 구성합니다.
CloudFormation을 사용하는 경우 템플릿을 재사용하여 Route 53 및 Route 53 Resolver 리소스를 일관되고 반복적으로 설정할 수 있습니다. 리소스를 한 번 설명한 후 여러 AWS 계정 및 리전에서 동일한 리소스를 반복적으로 프로비저닝할 수 있습니다.
Route 53, Route 53 Resolver 및CloudFormation 템플릿
Route 53, Route 53 Resolver 및 관련 서비스에 대한 리소스를 프로비저닝하고 구성하려면 CloudFormation 템플릿을 이해해야 합니다. 템플릿은 JSON 또는 YAML로 서식 지정된 텍스트 파일입니다. 이 템플릿은 CloudFormation 스택에서 프로비저닝할 리소스에 대해 설명합니다. JSON 또는 YAML에 익숙하지 않은 경우, CloudFormation Designer를 사용하면 CloudFormation 템플릿을 시작하는 데 도움이 됩니다. 자세한 내용은 AWS CloudFormation 사용 설명서에서 CloudFormation Designer이란 무엇인가요?를 참조하세요.
Route 53에서는 CloudFormation에서 다음과 같은 리소스 유형을 생성하는 것을 지원합니다.
-
AWS::Route53::DNSSEC -
AWS::Route53::HealthCheck -
AWS::Route53::HostedZone -
AWS::Route53::KeySigningKey -
AWS::Route53::RecordSet -
AWS::Route53::RecordSetGroup
Route 53 리소스에 대한 JSON 및 YAML 템플릿의 예를 비롯한 자세한 내용은 AWS CloudFormation 사용 설명서의 Amazon Route 53 리소스 유형 참조를 참조하십시오.
Route 53 Resolver에서는 CloudFormation에서 다음과 같은 리소스 유형을 생성하는 것을 지원합니다.
-
AWS::Route53Resolver::FirewallDomainList -
AWS::Route53Resolver::FirewallDomainList -
AWS::Route53Resolver::FirewallRuleGroupAssociation -
AWS::Route53Resolver::ResolverDNSSECConfig -
AWS::Route53Resolver::ResolverEndpoint -
AWS::Route53Resolver::ResolverQueryLoggingConfig -
AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation -
AWS::Route53Resolver::ResolverRule -
AWS::Route53Resolver::ResolverRuleAssociation
Route 53 Resolver 리소스에 대한 JSON 및 YAML 템플릿의 예를 비롯한 자세한 내용은 AWS CloudFormation 사용 설명서의 Amazon Route 53 Resolver 리소스 유형 참조를 참조하십시오.
Amazon Route 53 및 CloudFormation 모범 사례
CloudFormation을 사용하여 Route 53 리소스를 관리할 때는 일반적인 문제를 방지하고 안정적인 배포를 보장하려면 다음 모범 사례를 따릅니다.
최종 일관성 이해
Route 53는 DNS 변경에 최종적으로 일관된 모델을 사용합니다. 이는 CloudFormation 작업, 그 중에서도 특히 롤백 및 빠른 연속 변경 중에 영향을 미칠 수 있습니다.
중요
CloudFormation이 DNS 레코드 변경을 롤백하려고 시도할 때 Route 53 최종 일관성 모델로 인해 롤백이 실패할 수 있습니다. 최근에 삭제했지만 최종 일관성으로 인해 여전히 존재하는 것으로 보이는 레코드를 CloudFormation이 다시 생성하려고 하면 DNS가 손상된 상태로 유지되는 InvalidChangeBatch 오류가 발생할 수 있습니다.
최종 일관성과 관련된 문제를 최소화하기 위한 권장 사항:
-
변경을 신중히 계획 - 동일한 DNS 레코드를 빠르게 연속적으로 변경하지 않도록 합니다.
-
먼저 비프로덕션 환경에서 테스트 - 프로덕션에 적용하기 전에 항상 개발 환경에서 DNS 변경을 테스트합니다.
-
배포 모니터링 - DNS 관련 배포 동안 CloudFormation 스택 이벤트를 면밀히 감시합니다. 모니터링 지침은 Amazon Route 53 모니터링 섹션을 참조하세요.
-
롤백 절차 준비 - 자동 롤백이 실패할 경우에 대비해 수동 복구 절차를 준비합니다.
DNS 레코드 순서 및 논리적 ID
CloudFormation에서 여러 DNS 레코드를 생성할 때는 레코드 순서 및 논리적 ID 할당에 주의해야 합니다.
주의
CloudFormation 템플릿 내에 DNS 레코드를 배열 또는 목록으로 정의한 상태에서 목록 중간에 새 레코드를 삽입하면 CloudFormation이 기존 레코드에 논리적 ID를 재할당할 수 있습니다. 이는 레코드 교체를 트리거하여 서비스 중단 및 롤백 실패로 이어질 수 있습니다.
DNS 레코드 관리 모범 사례:
-
명시적 논리적 ID 사용 - 배열 인덱스에 의존하는 대신 항상 DNS 레코드에 명시적이고 의미 있는 논리적 ID를 할당합니다. CloudFormation 논리적 ID에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 리소스 섹션 구조를 참조하세요.
-
새 레코드 추가 - 기존 목록에 새 DNS 레코드를 추가할 때 중간에 삽입하지 않고 끝에 추가합니다.
-
그룹 관련 레코드 -
AWS::Route53::RecordSetGroup을 사용하여 관련 레코드를 함께 관리하는 것이 좋습니다. 자세한 내용은 AWS CloudFormation 사용 설명서의 AWS::Route53::RecordSetGroup을 참조하세요. -
변경 세트 검토 - 예상치 못한 레코드 교체를 식별하기 위해 배포 전에 항상 CloudFormation 변경 세트를 검토합니다. 자세한 내용은 AWS CloudFormation 사용 설명서의 변경 집합을 사용하여 스택 업데이트를 참조하세요.
롤백 실패 처리
DNS 관련 문제로 인해 CloudFormation 롤백이 실패한 경우 수동 복구를 수행해야 할 수 있습니다.
실패한 DNS 롤백에서 수동 복구 수행
-
CloudFormation 스택 이벤트 및 Route 53 호스팅 영역 레코드를 검토하여 실패한 DNS 레코드를 식별합니다.
-
Route 53 콘솔 또는 API를 통해 누락된 DNS 레코드를 수동으로 생성하거나 업데이트합니다. 레코드 생성에 대한 자세한 내용은 레코드 작업 섹션을 참조하세요.
-
DNS가 복원되면 현재 상태와 일치하도록 CloudFormation 템플릿을 업데이트합니다.
-
수정된 템플릿을 배포하여 CloudFormation이 실제 리소스와 다시 동기화되도록 합니다.
롤백 실패 방지를 위한 권장 사항:
-
트래픽이 높은 기간 동안에는 DNS 레코드 교체를 트리거할 수 있는 변경을 피합니다.
-
상태 확인 및 모니터링을 구현하여 DNS 문제를 빠르게 감지합니다. 상태 확인에 대한 자세한 내용은 상태 확인의 생성 및 업데이트 섹션을 참조하세요.
-
중요한 DNS 변경에는 블루/그린 배포 전략을 사용하는 것이 좋습니다. 배포 모범 사례에 대한 자세한 내용은 Amazon Route 53 모범 사례 섹션을 참조하세요.
-
수동 DNS 복구를 위한 긴급 절차를 문서화합니다.
CloudFormation에 대해 자세히 알아보기
CloudFormation에 대한 자세한 내용은 다음 리소스를 참조하세요.