RDS Setup

jacoblee19·2021년 1월 17일
0

DevOps

목록 보기
3/4
post-thumbnail

> RDS란?

**RDS (Relational Database Service)**로 AWS에서 사용하는 데이터베이스이다.

  • RDS를 사용하면 사용자가 직접 서버를 생성해서 데이터베이스를 설치하고 또 설정하고 관리하는 프로세스가 필요가 없어진다.
  • 그러면서도 동시에 비용도 더 저렴하다.
    직접 설치하고 운영하지 않기 때문이다. 즉, RDS는 이런면에서 아주 매력있는 데이터베이스이다.

> RDS 셋업 하기

  1. Amazon Web Services에 접속해 로그인을 한 후, RDS 서비스를 선택해 준다.

  2. 먼저 MySQL 설정 파일을 만들어줘야 한다. 직접 만들지 않아도 default 설정 파일이 있지만 utf-8 인코딩 설정을 해줘야 한국어가 저장 가능하다. 먼저 "Parameter groups" 페이지로 이동하자.

  1. 우측 상단에 "Create parameter group" 옵션을 선택한다.

  2. 이제 "parameter group" 설정 파일을 생성해야 한다.
    Group name과 description은 자유롭게 정하면 된다.
    Parameter group family는 생성하는 데이터 베이스와 버전에 맞게 지정해야 한다.
    mysql5.7 버전을 사용할 것이기 때문에 mysql5.7로 골라보자.

  1. 방금 생성한 파일을 수정하기위해 아래처럼 액션을 골라주거나, parameter group의 이름을 클릭해준다.

  1. 이제 parameters를 다음과 같이 설정해주어야 한다.
아래 옵션을 모두다 utf8mb4로 변경해준다.
- character_set_client
- character_set_connection
- character_set_database
- character_set_results
- character_set_server

collation_connection
- utf8mb4_general_ci로 변경 

collation_server
- utf8mb4_unicode_ci로 변경

설정을 다 바꿔준 후에는 preview changes를 눌러 변경사항을 다 확인할 수 있다.
설정을 바꾸었다면 꼭 저장해주기, save changes!

  1. "Create database"를 눌러 데이터베이스를 생성해주자.

  2. MySQL을 엔진으로 선택하고, "Only enable optons eligible for RDS Free Usage Tier" 옵션을 체크해서 무료로 사용할 수 있는 사양이 자동으로 선택되게 만들어주자.

  3. DB 세부사항 설정을 하자.
    무료 버전이기 때문에 대부분 default 그대로 사용하면 된다.
    맨 아래 settings 섹션에서 master username과 비밀번호 그리고 데이터베이스 이름만 설정하면 된다.

  4. 고급설정 페이지에서는 "public accessibility" 옵션을 yes로 설정한다.
    그리고 database options 섹션에 "DB parameter group"을 방금 생성한 파라미터 설정 파일로
    변경한다.
    <추가 참고사항>
    스토리지 자동 조정은 요금 부담이 될 수도 있기 때문에 체크 해제한다.
    Port 3306번은 MySQL의 default 통신 포트이다.
    추가 구성 섹션에는 딱히 건드릴게 없음.
    삭제 방지 활성화는 클릭해주는게 좋다.
    모든 설정이 끝나면 "Create database"로 데이터베이스를 생성해준다.

  1. 이제 "instances" 페이지에 가서 방금 생성한 데이터베이스 대쉬보드로 가자.
    참고로 데이터베이스가 사용 준비 되기까지 몇 분 이상 소요될 수 있다.

  1. 먼저 Endpoint를 확인하자.
    이제 이 주소로 database에 접속할 수 있다.
    그리고 security groups 링크를 클릭하자.
    <추가 참고 사항>
    보안 그룹 규칙에 inbound와 outbound가 있는데
    inbound는 나에게 통신이 들어오는 것을 의미하고, outbound는 내보내는 것을 의미한다.
    보통 퍼블릭이기보단, 집이면 집, 회사면 회사 ip 주소를 사용하는 것이 좋다.
    혹여나 인바운드 규칙을 바꾸고 싶다면 인바운드 규칙 편집에서 바꿔줄 수 있다.

  1. Security group 설정을 변경하여 어디서든 접속이 가능하게 하자.
    원래는 데이터베이스를 이렇게 어디서든 접속 가능하게 열어놓으면 안된다.
    해킹의 위험이 있기 때문이다.

  1. 생성된 데이터베이스에 접속한 후 데이터베이스와 테이블을 생성하자.

mysql -h temptest.cj5v1k6zfree.ap-northeast-2.rds.amazonaws.com -u root -p

> RDS 붙히기

AWS RDS 세팅이 마무리 됬다면 이제 RDS의 엔드포인트를 local MySQL을 통해 접근이 가능해진다.

mysql -h 'endpoint_address' -u root -p

-h는 호스트를 의미 / h 다음 엔드포인트 주소

아래와 같이 연결이 잘 되었음을 볼 수 있다.

로컬 mysql이 아니기 때문에 기존의 데이터베이스가 없음을 확인할 수 있다.

mysqldump -u root -p 'database_name' > 'database_name'.sql

로컬 mysql 데이터베이스를 export한다.

mysqldump를 해주고 RDS로 import 해주기 전에, RDS에 데이터베이스를 먼저 생성해주어야 한다.

create database myDongMyoTrip character set utf8mb4 collate utf8mb4_general_ci;

아래 명령어를 입력해서 아까 dump해준 데이터베이스를 import 하자.

mysqldump -h 'endpoint_address' -u root -p 'database_name' < 'database_name'.sql

export 할 때와, import 할 때, 꺽쇠 방향이 다른 것을 주의해서 사용하자.

profile
Back-end Developer 🙇‍♂️ 💻 🙆‍♂️

0개의 댓글