라벨이 RDS인 게시물 표시

[AWS] CLI 를 활용한 RDS Cluster snapshot Restore

이미지
AWS 에서 제공되는 관리형 DB 서비스인 Aurora DB 를 활용하면
아래 림과 같이 자동으로 클러스터 스냅샷이 생성 되게 됩니다.




이때  콘솔을 통해서 Restore Snapshot 을 진행하게 되면 클러스터와  RDS 인스턴스가 자동으로 생성되게 됩니다.




동일한 작업을 AWS CLI로 진행하고자
아래  명령어를 통해 RDS 를 생성해 보았습니다. 


 restore-db-cluster-from-snapshot [--availability-zones <value>] --db-cluster-identifier <value> --snapshot-identifier <value> --engine <value> [--engine-version <value>] [--port <value>] [--db-subnet-group-name <value>] [--database-name <value>] [--option-group-name <value>] [--vpc-security-group-ids <value>] [--tags <value>] [--kms-key-id <value>] [--enable-iam-database-authentication | --no-enable-iam-database-authentication] [--cli-input-json <value>] [--generate-cli-skeleton <value>] Colored by Color Scripter cs


Snapshot을 통해 DB가 정상적으로 만들어진 것 처럼 표출 되지만
아래와 같이 빈 클러스터만 생성되고 instance 가 생성되지 않습니다.


아무리 찾아봐도 Cluster를 동시에 생성할수 가 없어서 검색을 하다보니
CLI를 통해 Cluster Snapshot 을 복원하게 되면 추가적으로 인스턴스 생성작업을 다시 진행해 주어야 했습니다…

AWS RDS parameter group을 이용하여 Function 생성하기

이미지
지난 포스팅에서 AWS RDS를 이용해 MySQL DB를 생성해보았습니다.

이후에 MySQL DB에서 Fucntion을 생성하고 사용해야하는 경우가 생기게 됩니다.

예를 들어,

DROPFUNCTION IF EXISTS hello_world; DELIMITER $$ CREATEFUNCTIONhello_world(addressee TEXT) RETURNS TEXT DETERMINISTIC READS SQL DATA BEGIN RETURN CONCAT('Hello ', addressee); END; $$ DELIMITER ; SELECT hello_world('Earth');
위와 같은 FUNCTION을 생성하려고 SQL문을 작성하고 실행해보면 AWS RDS는

Error Code: 1419. You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

이런 에러가 발생하게 됩니다. 에러를 확인해보면 log_bin_trust_function_creators_variable 를 설정하라는 내용입니다.

기존의 로컬이나 물리적 서버 설치였으면 cnf와 같은 환경설정 파일 상에서 환경변수를 설정해줄 수 있었지만,  AWS RDS는 ssh와 같은 접속을 지원하지 않기때문에 parameter group 설정을 지원하고있습니다.

AWS RDS Dashboard로 이동합니다.

왼쪽 메뉴에서 파라미터그룹탭으로 이동하면 default 그룹만 있는 상태입니다. 파라미터 그룹 생성을 클릭합니다.


사용하고 있는 DB 엔진을 선택하고 그룹이름과 설명을 입력하고 생성을 클릭합니다.


새로 생성한 파라미터 그룹의 파라미터 편집버튼을 누르고 필터에 function이라고 입력하면

전에 에러가 났던 log_bin_trust_functions_creators…