AWS RDS MySQL 운영하기 - 1. 설치 및 시작하기(RDS Free Tier, 한글처리)

AWS RDS(Relational Database Service)

Amazon Relational Database Service(Amazon RDS)는 클라우드에서 관계형 데이터베이스를 더욱 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스이다1.

AWS Management Console

AWS Management Console(또는 AWS Console 이라고도 부른다)는 AWS의 많은 서비스에 직접적으로 엑세스, 관리하는 GUI 기반 관리 서비스이다. http://aws.amazon.com 에 접근하면 가장 먼저 보이는 화면에 My Account 드롭다운 메뉴를 클릭하면 AWS Management Console 메뉴가 보인다.

AWS Management Console 에 로그인을 하면 다음과 같은 화면이 나타난다. RDS를 생성하는 방법은 AWS SDK를 사용하여 command line으로 생성할 수도 있고 AWS Console을 사용하여 생성할 수 있다. 처음 AWS를 사용한다면 AWS Console을 사용하는 방법이 직관적이고 편리하다.

AWS Console 로 접근하면

AWS RDS Dashboard

AWS RDS Dashboard의 첫 화면은 현재 운영되고 있는 RDS의 리소스정보를 요약해서 보여준다. AWS는 자체적으로 개발한 Amazon Aurora RDS를 추천하고 있지만 이번 글에는 MySQL RDS에 관련된 소개만 한다.

AWS RDS Dashboard의 첫 화면에 하단의 Create InstanceLaunch a DB Instance 버튼을 클릭한다.

MySQL 선택

AWS에서 제공하는 RDS DB Engine은 Amazone Aurora, MySQL, MariaDB, PostgreSQL, Oracle 그리고 SQL server가 있다. MySQL 탭에서 Select 버튼을 클릭한다. MySQL는 크기를 6TB 까지 지원하고 32개의 vCPU, 244GB 메모리까지 지원한다. 또한 자동 백업과 복구를 지원하고 지역간 Read replica를 지원한다.

이 글에서는 MySQL을 생성하고 시작하는 개념만 필요하기 때문에 Free tier eligible 그대로 사용하면 된다. 참고로 AWS RDS Free Tier 간단히 살펴보면 다음과 같은 특징이 있다.

  • Single-AZdb.t2.micro 타입의 싱글 인스턴스를 720시간 사용할 수 있다.
  • 20G 이하의 데이터베이스 스토리지 크기를 사용할 수 있다.

MySQL 을 선택하고 Next Step 버튼을 클릭한다.

MySQL 세부설정

앞에서 Database Engine을 선택 후 Specify DB Details 화면에서는 RDS 세부설정을 한다. MySQL는 각 버전마다 특징이나 버그가 다르기 때문에 자신에게 맞는 버전을 선택한다. RDS MySQL의 알려진 문제점과 제한사항을 꼭 읽어보고 운영하는 서비스에 맞는 최적의 MySQL을 선택한다.

  • License Model : general-public-license (기본값 그대로 사용)
  • DB Engine Version : 5.6.27 (기본값 그대로 사용)
  • DB Instance Class : db.t2.micro (Free Tier)
  • Multi-AZ Deployment : No (Free Tier)
  • Storage Type : Magnetic (Free Tier)
  • Allocated Storage : 5G (기본값 그대로 사용, 20G 이하 Free Tier)
  • DB Instance Identifier : hbn-rds-demo-mysql(자신에 맞는 데이터베이스 고유식별자 입력)
  • Master Username : 관리자유저네임 (DBMS 관리자 유저네임)
  • Master Password : 비밀번호 (DBMS 관리자 비밀번호)
  • Confirm Password : 비밀번호 (비밀번호 확인)

위 예제는 Free Tier로 테스트하기 위한 기본설정이다. 모든 설정이 끝나면 Next Step 버튼을 클릭한다.

MySQL 고급설정

Configure Advanced Settings 화면에서는 RDS 고급설정을 한다.

  • VPC : Default VPC (기본갑 그대로 사용)
  • Subnet Group : default (기본값 그대로 사용)
  • Publicly Accessible : Yes (기본값 그대로 사용)
  • Availability Zone : No Preference (기본값 그대로 사용)
  • VPC Security : default(VPC)
  • Database Name : hbn_demo_database (MySQL 데이터베이스 이름)
  • Database Port : 3306 (기본값 그대로 사용)
  • DB Parameter Group : default:mysql5.6 (기본값 그대로 사용)
  • Option Group : default:mysql-5-6 (기본값 그대로 사용)
  • Copy Tags to Snapshot : 체크하지 않음 (기본값 그대로 사용)
  • Enable Encryption : No (기본값 그대로 사용)
  • Backup Retention Period : 7 (기본값 그대로 사용)
  • Backup Window : No Preference (기본값 그대로 사용)
  • Enable Enhanced Monitoring : Yes (기본값 그대로 사용)
  • Monitoring Role : Default (기본값 그대로 사용)
  • Granularity : 60 (기본값 그대로 사용)
  • Auto Minor Version Upgrade : Yes (기본값 그대로 사용)
  • Maintenance Window : No Preference (기본값 그대로 사용)

고급 설정은 대부분 기본 설정으로 진행한다. 이 포스팅은 RDS Free Tier로 MySQL을 바로 시작하기 위해서 작성된 글로 세부설정과 고급설정은 이후 지속적으로 하나씩 소개할 예정이다. 이제 모든 설정이 끝났다. Launch DB Instance 버튼을 클릭하면 바로 MySQL 인스턴스가 만들어지고 접급할 수 있게 된다. 하지만 여기서 절대 그냥 넘어가서는 안되는 중요한 설정을 하나 해야한다. 바로 MySQL의 캐릭터 설정이다.

RDS MySQL의 기본 캐릭터는 한글을 지원하지 않는다.

RDS 한글 설정

위 부분은 고급 옵션 중 RDS Parameter Group과 깊은 연관이 있다. MySQL을 로컬 서버에 설치할 경우 /etc/my.cnf 파일에 MySQL의 서버 환경설정을 정의하지만 AWS RDS는 로컬 서버와 같이 터미널로 접속해서 환경설정하는 방법을 제공하고 있지 않다. RDS의 모든 관리는 AWS에서 좀더 유연한 방법으로 각 사용자 환경에 맞게 관리하는 방법을 제공하는데 이것이 바로 RDS Parameter Group이라는 것을 사용하는 것이다. RDS Dashboard의 메뉴를 살펴보면 Parameter Group 이라는 메뉴를 볼 수 있다.

이 메뉴를 클릭하면 기본적으로 만들어져 있는 RDS Parameter를 확인할 수 있다.

우리는 MySQL 캐릭터에 한글을 지원하기 위해서 새로운 Parameter Group을 만들것이다. Create Parameter Group 버튼을 클릭한다.

  • Parameter Group Family : mysql5.6 (기본값 그대로 사용)
  • Group Name : hbn-rds-parameter-group-mysql56
  • Description : mysql 5.6 parameters

위 와 같이 입력후 Create 버튼을 클릭하면 Parameter Groups에서 방금 생성한 Group Name으로 만들어진 것을 목록에서 확인할 수 있다. 생성한 파라미터를 선택하고 Edit Parameters 버튼을 클릭한다.

Edit Parameters 버튼을 클릭하면 아래와 같이 RDS MySQL 환경 설정 파라미터들이 나타난다. 이제 이 파라미터에서 캐릭터 설정에 관련된 것을 찾아서 수정할 것이다.

먼저 charset 에 관련된 파라미터를 Filter를 사용해서 검색한다.

기본적으로 charset_set-으로 시작하는 파라미터들은 모두 engine-default로 되어 있는데 이 값은 Latin-1 값이다. 우리는 한글 지원을 위해서 utf-8로 수정할 것이다.

  • charset_set_client : utf8
  • charset_set_connection : utf8
  • charset_set_database : utf8
  • charset_set_filesystem : utf8
  • charset_set_results : utf8
  • charset_set_server : utf8

Save Changes 버튼을 클릭해서 수정 사항을 반영한다.

다음은 collationFileter에서 검색한다.

이 두 값 또한 앞에서 했던 방법으로 파라미터 값을 utf8_general_ci로 모두 수정한다.

  • collation_connection : utf8_general_ci
  • collation_server : utf8_general_ci

모든 파라미터를 수정하면 Save Changes 버튼을 클릭해서 저장한다.


이제 앞에서 설명했던 RDS 고급설정 화면으로 돌아가서 살펴보자.

DB Parameter Group 항목을 제외한 나머지 항목은 앞에서 설명한대로 값을 설정하면 된다. 한글설정을 위해서 우리가 앞에서 만든 hbn-rds-parameter-group-mysql56 파라미터를 적용한다. DB Parameter Group 셀렉트박스를 열어 이 항목을 선택한다.

이제 모든 설정이 끝났다. Launch DB Instance 버튼을 클릭하면 RDS MySQL 인스턴스가 생성이 된다.

이제 Endpint URL을 사용하여 MySQL 데이터베이스 접근할 수 있다.

참조