RDS 구축하는 법

HwiJeongLee·2021년 11월 10일
0

UMC_서버

목록 보기
3/3

AWS RDS 서비스

Amazon RDS

  • 아마존이 제공하는 관계형 데이터베이스 서비스로 분산 관계형 데이터베이스입니다.
  • 관계형 데이터베이스가 구축된 클라우드 내에서 동작하는 웹서비스로 DB 소프트웨어 패치, 백업, 복구 등 복잡한 프로세스를 자동으로 관리할 수 있습니다.
  • 저장된 데이터나 연산들을 스케일링 하는 것(즉, 관리하는 것)은 하나의 API 호출로 수행될 수 있습니다.

이 때 AWS를 개발, 테스트 목적을 사용한다면 비용 청구 내역을 자주 확인할 필요가 있습니다. 비용이 청구될 수도 있기 때문입니다.

RDS 생성 방법

  1. AWS 로그인 후 리젼이 서울로 되어있는지 확인 후 콘솔에 RDS를 검색합니다.

    ❗❗ 리젼이 서울이 아닌 다른 나라로 되어있다면 특정 서비스를 사용하는데 장애가 생길 수 있으며 추가 비용이 청구될 수 있습니다. 꼭 체크해주세요. 우측 상단에서 확인가능합니다!

  1. "데이터 베이스 생성하기"를 클릭합니다.

  2. 데이터 베이스 설정하기

우선 저는 MySQL을 사용할 예정이라서 MySQL 버전 8.0.23을 사용하였습니다.

템플릿은 프리티어로 설정해주어야 추가 비용이 발생하지 않습니다. 다마 이미 인스턴스가 있는 경우 프리티어를 선택할 수 없다고 합니다.

데이터베이스에 접근할 때 사용할 아이디와 비밀번호입니다. 까먹으면 다시 재발급받아야하므로 꼭 기억하고 있으셔야 합니다.


클래스 유형은 3가지이지만 버스터블 클래스만 선택 가능합니다.
버스트 : 특정 기준에 따라 한 단위로서 취급되는 연속된 신호나 데이터의 모임


최대 가능 할당량은 20GB입니다.


외부에서 접근할 수 있도록 퍼블릭 액세스 가능을 로 설정해줍니다.


VPC 이름을 umcRDS로하여 새로 생성해주었습니다.

❗ 여기서 초기 데이터베이스 이름을 지정하여야 하므로 추가 구성을 꼭 해주는 것이 중요합니다.

이제 설정은 모두 끝났습니다. 데이터 베이스 생성을 누르고 생성되는 동안 기다려주세요.

5분정도 기다리면 사용 가능으로 바뀝니다. 이제 데이터베이스 구축이 완료되었습니다.

RDS 운영 환경에 맞는 파라미터 설정

RDS를 구축했으니 이제 부가적으로 필요한 설정을 하겠습니다.

  1. EC2와 연결
    EC2에서 RDS로 접근할 수 있도록 포트를 열어주는 과정이 필요합니다.

앞서 생성한 보안 그룹으로 갑니다.

이 부분을 확인한 후 사진 속 보안 그룹을 클릭해서 접근합니다.


전에 생성한 ec2에서의 보안그룹 코드를 설정해주고 저장합니다.

이제 ec2가 RDS에 접근할 수 있게되었습니다.

++추가사항++
처음 인바운드 규칙을 설정할 때 현재 IP주소로 설정해주거나 자동 설정됩니다. 하지만 IP주소는 위치나 상태 등에 따라서 계속 변경됩니다.
이러면 인바운드 규칙에 맞지 않아서 connection오류가 발생합니다.
이를 방지하고자 보안그룹 인바운드 규칙으로 가서 아래 사진과 같이 AnywhereIPv4 설정을 해주어야합니다.

이제 언제든 외부에서 RDS로 접근할 수 있습니다.(자세한 접근 확인은 바로 아래부터 나옵니다ㅎㅎ)

외부에서 RDS 접근 확인하기

mysqlWorkbench를 열고 New Connection으로 들어갑니다.
Hostname에는 RDS의 엔드포인트 및 포트를 넣어주고 username과 password는 앞에서 설정한 아이디, 비밀번호를 넣어주면 됩니다.

RDS 엔드포인트 및 포트는 어디에 있나요?
AWS 콘솔에 RDS를 검색한 후 접속합니다. 죄측에 메뉴에서 데이터베이스를 선택합니다.
그럼 앞에서 생성한 rds가 있습니다. 이 rds를 클릭하면 아래와 같은 화면이 보이고 연결&보안에 있는 엔트포인트가 있습니다.

test Connection을 눌렀을 때 파란글씨로 성공했다는 말이 나오면 됩니다!(이 화면 캡처를 까먹었네요..) 성공을 확인하면 OK 버튼을 눌러서 connection을 생성합니다.

그 후 해당 connection으로 들어갑니다.

스키마부분에 저희가 추가 구성으로 생성한 데이터베이스가 생성되어있습니다!

RDS 인코딩 & 타임존 설정

위의 과정을 모두 성공하셨다면 RDS를 잘 설정하신 것 입니다!👍👍

이제 아래의 명령어를 실행시켜봅시다.

사진에서 볼 수 있듯이 아직 utf8 설정이 안된 부분이 있으므로 인코딩을 해주어야합니다.

우선 타임존을 설정해주고 인코딩을 설정해주도록 하겠습니다.

타임존 설정


RDS의 파라미터 그룹을 클릭합니다.

새로 생성하기 버튼을 누릅니다.


아래와 같이 세부 정보를 설정하고 생성을 합니다.

생성한 파라미터 그룹으로 들어가서 time_zone을 검색합니다.

수정을 누르고 Asia/Seoul을 적어주고 변경사항을 저장합니다.

변경 후 아래와 같이 되어있으면 성공입니다.

인코딩

이제 진짜 인코딩을 해봅시다. 한글 데이터가 깨지지 않고 출력되게하기 위해서는 utf-8 인코더를 설정해주어야 합니다.

  1. 위의 타임존에서 수정했던 곳에서 이번에는 character_set를 찾아 모든 값을 utf8mb4로 바꿔줍니다.

  1. collation을 검색하여 다음과 같이 바꿔줍니다.

아래 두 값을 다음과 같이 변경한 후 설정해줍니다.

RDS는 default 파라미터로 지정되어 있습니다. 이에 RDS 파라미터 그룹을 변경해줄 필요가 있어보입니다.

다시 데이터베이스로 가서 데이터베이스를 선택해주고 수정버튼을 누릅니다.

아래로 내리다보면 아래오 같이 데이터베이스 옵션 부분이 있습니다. 여기서 설정해준 파라미터로 지정해줍니다.

그 후 계속 버튼을 누른 후 수정사항을 즉시 적용시켜줍니다.

수정이 완료되면 수정사항을 적용시키기 위해 재부팅을 합니다.

위의 사진으로 타임존이 잘 설정된 것을 확인할 수 있습니다.

collate부분은 변경 적용이 잘 되지 않으므로 위의 명령어를 사용해서 강제로 변환해줍니다.

다시한번 RDS를 재부팅해줍니다.

인코딩 확인 _ RDS 한글 테스트

한글이 잘 출력되는지 확인하기 위해서 다음과 같이 테이블을 만들고 한글로 텍스트 데이터를 넣어줍니다.

아래와 같이 한글이 깨지지않고 잘 나옴을 확인하였습니다.
이제 한글을 마음대로 사용하셔도 좋습니다.

이제 RDS 구축 및 모든 기본 설정이 끝났습니다.

profile
초보 개발자의 개발 공간

0개의 댓글