RDS 파라미터 그룹을 파일로 저장하기 (AWS CLI)
안녕하세요.
이번 블로그에서는 RDS 파라미터 그룹을 AWS CLI로 수집하여 CSV 파일로 저장하는 방법을 소개합니다.
배경
RDS 파라미터 그룹은 콘솔 화면에서 확인할 수는 있지만, 그 내용을 파일로 다운로드하는 기능은 제공되지 않습니다.
파라미터를 파일로 따로 보관하거나 스프레드시트에서 관리하고 싶은 경우가 있어, AWS CLI로 파라미터를 수집한 뒤 CSV로 저장하는 방법을 정리해봤습니다.
이번 글에서는 aurora-mysql8.4 를 예시로 사용했습니다.
1. 파라미터 그룹의 종류
콘솔 화면에서 파라미터 그룹을 확인해보면 파라미터 목록이 표 형태로 표시됩니다.
또한 Aurora의 파라미터 그룹은 DB 인스턴스에 대한 파라미터 그룹과 DB 클러스터에 대한 파라미터 그룹으로 나뉩니다.
두 그룹 모두 필수로 설정하고 관리해야 합니다.
콘솔 화면
DB 인스턴스 파라미터 그룹

DB 클러스터 파라미터 그룹

두 파라미터 그룹의 차이는 다음과 같습니다.
| 구분 | DB 클러스터 파라미터 그룹 | DB 인스턴스 파라미터 그룹 |
|---|---|---|
| 적용 범위 | 클러스터 전체에 공통 적용 | 개별 인스턴스에 적용 |
| 주요 설정 예 | 문자셋, 바이너리 로그 등 클러스터 공통 설정 | 인스턴스 단위의 메모리·연결 관련 설정 |
| CLI 조회 명령 | describe-db-cluster-parameters |
describe-db-parameters |
2. AWS CLI로 파라미터 파일로 저장하기
콘솔에서는 다운로드할 수 없으므로 AWS CLI로 파라미터를 수집합니다.
2.1. 명령어
기본 명령 형태는 다음과 같습니다. 꺾쇠(< >)로 표시한 부분을 파일화하려는 파라미터 그룹 유형에 맞게 채워 넣습니다.
aws rds <조회 명령어> \
--<파라미터 그룹명 옵션> <파라미터 그룹명> \
--query 'Parameters[*].[ParameterName,ParameterValue,ApplyType,DataType,IsModifiable,Source,Description]' \
--output json \
--profile lim-div | python3 -c "
import json, csv, sys
data = json.load(sys.stdin)
with open('<다운로드 파일명>.csv', 'w', newline='') as f:
w = csv.writer(f)
w.writerow(['ParameterName','ParameterValue','ApplyType','DataType','IsModifiable','Source','Description'])
for row in data:
w.writerow(['-' if v is None else v for v in row])
"
채워 넣어야 하는 값은 다음과 같습니다.
<파라미터 그룹명>: 파일로 저장하려는 파라미터 그룹의 이름<다운로드 파일명>: 저장하고 싶은 파일명<조회 명령어>와<파라미터 그룹명 옵션>: 파일로 저장할 파라미터 그룹 유형에 따라 달라집니다.
| 유형 | 조회 명령어 | 파라미터 그룹명 옵션 |
|---|---|---|
| DB 인스턴스 | describe-db-parameters |
--db-parameter-group-name |
| DB 클러스터 | describe-db-cluster-parameters |
--db-cluster-parameter-group-name |
인스턴스 파라미터 그룹을 CSV 파일로 저장 (예시)
aws rds describe-db-parameters \
--db-parameter-group-name mysql84-db-parameter-group \
--query 'Parameters[*].[ParameterName,ParameterValue,ApplyType,DataType,IsModifiable,Source,Description]' \
--output json | python3 -c "
import json, csv, sys
data = json.load(sys.stdin)
with open('rds-aurora-mysql-db-parameter-groups.csv', 'w', newline='') as f:
w = csv.writer(f)
w.writerow(['ParameterName','ParameterValue','ApplyType','DataType','IsModifiable','Source','Description'])
for row in data:
w.writerow(['-' if v is None else v for v in row])
"
결과

클러스터 파라미터 그룹을 CSV 파일로 저장 (예시)
aws rds describe-db-cluster-parameters \
--db-cluster-parameter-group-name mysql84-cluster-parameter-group \
--query 'Parameters[*].[ParameterName,ParameterValue,ApplyType,DataType,IsModifiable,Source,Description]' \
--output json | python3 -c "
import json, csv, sys
data = json.load(sys.stdin)
with open('rds-aurora-mysql-cluster-parameter-groups.csv', 'w', newline='') as f:
w = csv.writer(f)
w.writerow(['ParameterName','ParameterValue','ApplyType','DataType','IsModifiable','Source','Description'])
for row in data:
w.writerow(['-' if v is None else v for v in row])
"
결과

2.2. 수집 항목 설명
위 명령의 --query 로 수집하는 항목은 다음과 같습니다.
| 항목 | 설명 |
|---|---|
| ParameterName | 파라미터 이름 |
| ParameterValue | 현재 설정된 값 |
| ApplyType | dynamic변경하면 즉시 반영 (재부팅 불필요)static변경해도 바로 안 되고 DB 인스턴스를 재부팅해야 적용됨 |
| DataType | 값의 데이터 타입 |
| IsModifiable | 변경 가능 여부 |
| Source | engine-defaultDB 엔진의 기본값 그대로 (아무도 안 바꿈)systemRDS(시스템)가 자동으로 설정한 값user사용자가 직접 변경한 값 |
| Description | 파라미터에 대한 설명 |
마치며
이번 블로그에서는 RDS 파라미터 그룹을 AWS CLI로 수집하여 CSV 파일로 저장하는 방법을 알아봤습니다.









