1. 개요
cli53은 AWS Route 53의 호스팅 영역과 레코드를 명령줄에서 관리할 수 있게 해주는 유틸리티이다. AWS 콘솔에서 반복적으로 처리해야 하는 작업을 스크립트로 자동화하거나, DNS 레코드를 BIND 형식으로 내보내 백업할 때 유용하다.
특히 여러 도메인을 운영하는 환경에서는 호스팅 영역 목록을 조회하고, 각 영역의 레코드를 파일로 export하는 작업을 한 번에 처리할 수 있다.
2. 다운로드
프로젝트 저장소는 아래 주소에서 확인할 수 있다.
https://github.com/barnybug/cli53
사용 전에는 AWS 자격 증명이 설정되어 있어야 한다. 예를 들어 AWS CLI의 profile을 사용한다면 아래 예시처럼 --profile 옵션으로 대상 프로파일을 지정할 수 있다.
3. Usage
3-1. Export
아래 예시는 지정한 AWS profile에서 Route 53 호스팅 영역 목록을 가져온 뒤, 각 도메인의 레코드를 BIND 형식 파일로 export한다.
for domain in $(cli53 list --profile [프로파일명] | grep -v Name | awk '{print $1}'); do DNS_NAME=$(cli53 list --profile [프로파일명] | grep ${domain} | awk '{print $2}' | sed s'/.$//'); cli53 export --profile [프로파일명] --full ${domain} >> ${DNS_NAME}_${domain}.bind; done
실행 결과로 도메인명_호스팅영역ID.bind 형태의 파일이 생성된다. 생성된 파일은 텍스트 편집기로 열어 레코드가 정상적으로 export되었는지 확인할 수 있다.
운영 환경에서 바로 실행하기 전에, 테스트용 profile이나 일부 도메인만 대상으로 먼저 실행해 보는 것이 좋다. 또한 같은 파일명으로 여러 번 실행하면 >> 리다이렉션 때문에 기존 파일 뒤에 내용이 누적될 수 있으므로, 필요하다면 실행 전 기존 export 파일을 정리한다.