안녕하세요 유로띠 입니다 😉
요새 코로나-19 😷 때문에 재택근무를 하는 회사가 늘었답니다
저희도 재택근무를 시행하고있어요 🤘
그렇다 보니 사내에 있는 DB를 외부에서 접속하여
사용할 수 있는 방법을 고민 중에 AWS RDS를 사용해 보기로 했어요
👏👏👏
이번 포스팅에서는
AWS RDS 구축하기
AWS RDS 외부에서 접속하기
MariaDB에서 AWS RDS로 내보내기
AWS RDS MariaDB 인스턴스 함수, 절차 및 트리거 활성화 하기
대해서 작성해보도록 할게요
😄😄😄
📢
AWS RDS 구축하기
AWS에 로그인을 합니다
로그인 후 [서비스]를 선택하시면 [데이터베이스] - [RDS]를 선택합니다 👌
[데이터베이스 생성]을 선택하여 DB를 생성합니다 👌
원하는 구성으로 선택하면 됩니다.
저는 사내에서 MariaDB를 사용하고 있기 때문에
[표준 생성] -[MariaDB] - [프리티어]로 진행 하겠습니다.💦
혹시 모르니 프리티어로..
📢
AWS RDS 외부에서 접속하기
외부에서 DB를 접속하기위한 중요한 옵션은
[연결] - [추가 연결 구성] - [퍼블릭 액세스 가능]에서 '예'를 선택합니다
데이터베이스 생성 후 - [연결 & 보안] 정보에서
'퍼블릭 액세스 가능성' - '예'를 확인합니다. 👁🗨
이제 DB접속하여 DB를 생성합니다 😊
DB만 생성하시면 돼요 😉
CREATE DATABASE testDB DEFAULT CHARACTER SET utf8;
📢 MariaDB에서 AWS RDS로 내보내기
다음으로는 기존 MariaDB에서 AWS RDS로 데이터를 보내야 합니다
일일이 다 만들 순 없으니깐요 😉
기존에 자주 사용하는 mysqldump를 사용하도록 할게요 👌👌
sudo mysqldump -u <localuser> \
--databases <database_name> \
--single-transaction \
--compress \
--order-by-primary \
-p<local_password> | mysql -u <RDS_user> \
--port=<port_number> \
--host=<host_name> \
-p<RDS_password>
💡 중요
-p 옵션 시 사이에 공백이 없어야 합니다
✅ 파라미터 정보
--single-transaction
mysqldump가 데이터를 읽는 동안 데이터를 변경하는 다른 프로세스가 있는 경우, 이 옵션을 사용하여 데이터 무결성을 유지합니다
--compress
데이터를 Amazon RDS로 전송하기 전에 로컬 데이터베이스에서 데이터를 압축하여 네트워크 대역폭 사용을 줄이기 위해 사용합니다
--order-by-primary
기본 키를 기준으로 각 테이블의 데이터를 정렬하여 로드 시간을 줄이기 위해 사용합니다.
🎈참고
mysqldump -u root --databases testDB --single-transaction --compress --order-by-primary -pqwer1234 | mysql -u root --port=3306 --host=db-1.test.ap-northeast-2.rds.amazonaws.com -pqwer1234!
mysqldump를 내보내는 DB의 서버에서 실행하면
테이블과 데이터 정보가 동일하게 생성됩니다
👏👏👏👏
드디어 끝이다❗❗❗ 🤘
라고 생각했으나..
function정보는 가져오질 못했을 겁니다 😏😏
function을 만들려고 하면
❗❗ Error 가 보이실 겁니다 😭😭
❝ 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) ❞
권한 문제로 가져오지 못한 function을 위해 권한 설정을 해줍니다 😀😀
📢 AWS RDS MariaDB 인스턴스 함수, 절차 및 트리거 활성화 하기
❖ ❛ AWS RDS는 SYS 액세스(SUPER 권한)를 제공하지 않기 때문에, 파라미터 그룹에 대해 log_bin_trust_function_creators 파라미터를 true로 설정해야 합니다 ❜
AWS RDS 콘솔 창의 왼쪽에 [파라미터 그룹] 선택
신규로 ❛파라미터 그룹❜ 을 생성하고
생성된 ❛파라미터 그룹❜ 을 선택합니다 😁
그다음
❛log_bin_trust_function_creators❜ 를 검색합니다 🔎
초기에 설정을 하지 않으면 값이 없습니다 🙅
해당 정보를 선택 후 위에 [파라미터 편집]을 클릭
❛1❜ ( 1 = true )을 선택한 후 [변경 사항 저장]을 클릭하여 저장합니다
설정을 완료하였으면
[데이터베이스]를 선택 후 [구성]을 확인합니다 👌👌
💡 변경된 파라미터 그룹 이름은 즉시 변경되지만,
인스턴스를 재부팅해야 적용됩니다
상단의 [작업]을 선택하여 ❛재부팅❜ 을 진행합니다
다음 DB에 접속하여 function을 생성하면
에러 없이 생성 하 실수 있습니다 👍👍
이상
❛AWS RDS 사용기❜ 였습니다
👏👏👏👏👏
🎈 참조 링크
MariaDB에서 Amazon RDS로 데이터 가져오기