AWS RDS 사용하기 & 외부 접속 허용 & Maria DB에서 내보내기
반응형

 

안녕하세요 유로띠 입니다 😉

 

요새 코로나-19 😷 때문에 재택근무를 하는 회사가 늘었답니다

저희도 재택근무를 시행하고있어요 🤘

 

그렇다 보니 사내에 있는 DB를 외부에서 접속하여

사용할 수 있는 방법을 고민 중에 AWS RDS를 사용해 보기로 했어요

👏👏👏

 

이번 포스팅에서는

AWS RDS 구축하기

AWS RDS 외부에서 접속하기

MariaDB에서 AWS RDS로 내보내기

AWS RDS MariaDB 인스턴스 함수, 절차 및 트리거 활성화 하기

 

대해서 작성해보도록 할게요

😄😄😄


📢

AWS RDS 구축하기

 

AWS에 로그인을 합니다

https://aws.amazon.com/ko/

 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

미디어 및 엔터테인먼트 Live Nation Entertainment, AWS를 사용하여 혁신 속도를 높이고 비용을 절감하며 애플리케이션 가용성을 개선 세계 최고의 라이브 엔터테인먼트 기업이 어떻게 AWS 클라우드를 사용하여 고객에게 개선된 경험을 더욱 빠르게 제공하는지 알아보십시오. 자세히 알아보기  보다 나은 고객 경험 추구 Live Nation은 콘서트를 제작하고, 티켓을 판매하고, 밴드를 음악과 연결해주는 세계 최고의 라이브 엔터테인먼트 기업입니다

aws.amazon.com

 

로그인 후 [서비스]를 선택하시면 [데이터베이스] - [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로 데이터 가져오기

Amazon RDS 함수, 절차 및 트리거 활성화

 

반응형