확장 가능한 관계형 데이터베이스를 제공하는 RDS

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

RDS DB 인스턴스 생성하기

RDS 인스턴스를 생성하고 사용해보겠습니다. 데이터베이스 엔진은 가장 손쉽게 사용할 수 있는 MySQL로 하겠습니다. AWS 콘솔로 접속한 뒤 메인 화면에서 Database의 RDS를 클릭합니다.


그림 13-2 RDS Managed Relational Database Service

오른쪽 위에서 RDS의 리전을 변경할 수 있습니다. 이 책에서는 우리나라에서 가장 가까운 Tokyo 리전을 사용하겠습니다.


그림 13-3 RDS 리전 선택

왼쪽 메뉴에서 Instances를 선택합니다. 이 메뉴가 RDS DB 인스턴스 목록이며 생성 한 온 디맨드 인스턴스(On Demand Instance)와 예약 인스턴스(Reserved Instance)의 목록이 표시됩니다.


그림 13-4 RDS 인스턴스 목록

위쪽의 Launch DB Instance 버튼을 클릭하여 RDS DB 인스턴스를 생성합니다.


그림 13-5 RDS DB 인스턴스 생성

RDS DB 인스턴스에 사용할 데이터베이스 엔진을 선택합니다. MySQL Community Edition의 Select 버튼을 클릭합니다.


그림 13-6 RDS 데이터베이스 엔진 선택

장애에 대응할 수 있는 이중화를 위한 다중 가용 영역Multi-AZ 복제와 고성능 I/O를 제공하는 Provisioned IOPS Storage를 사용할 것인지 선택합니다. Multi-AZ와 Provisioned IOPS Storage를 사용하면 추가 요금이 발생합니다. No를 선택하여 이 두 가지 기능을 사용하지 않는 프리 티어용 인스턴스를 생성하겠습니다.


그림 13-7 RDS 프리 티어 선택

RDS DB 인스턴스 세부 설정입니다(그림 13-8).

  • License Model: MySQL은 general-public-license만 선택할 수 있습니다.
  • DB Engine Version: 사용할 MySQL의 버전입니다. 특정 버전을 사용해야 하는 환경이 아니라면 기본값 그대로 사용합니다.
  • DB Instance Class: 생성할 DB 인스턴스 클래스입니다. 프리 티어에서 무료로 사용할 수 있는 마이크로 인스턴스(db.t1.micro)를 선택합니다.
  • Multi-AZ Deployment: 장애에 자동으로 대처하는 Failover 기능을 위한 다중 가용 영역(Multi Availability Zone) 복제 옵션입니다. No를 선택합니다.
  • Allocated Storage: DB에서 데이터를 저장할 스토리지의 용량입니다. 최소 5GB에서 3072GB(3TB)까지 설정 할 수 있습니다. 5GB로 설정합니다.
  • Use Provisioned IOPS: 고성능 I/O 옵션입니다. 이 옵션을 사용하면 스토리지의 읽기/쓰기 성능을 원하는 대로 조절할 수 있습니다. 단 추가비용을 지불해야 합니다. 기본값 그대로 사용합니다.
  • DB Instance Identifier: DB 인스턴스의 이름입니다(이름은 같은 리전 안에서 중복되면 안됩니다). exampledbinstance로 설정합니다.
  • Master Username: MySQL DB 관리자 계정입니다. admin으로 설정합니다.
  • Master Password, Confirm Password: MySQL DB 관리자 계정의 비밀번호입니다. 여러분이 사용하고 싶은 비밀번호를 설정합니다.

설정이 완료되었으면 Next Step 버튼을 클릭합니다.


그림 13-8 RDS DB 인스턴스 설정

DB 인스턴스 추가 설정입니다(그림 13-9).

  • VPC: DB 인스턴스가 위치할 네트워크(VPC)입니다. 기본값 그대로 사용합니다.
  • DB Subnet Group: DB 인스턴스가 위치할 서브넷입니다. 위에서 Default VPC이외의 VPC를 선택했을 때 이 서브넷을 설정할 수 있습니다. 기본값 그대로 사용합니다.
  • Publicly Accessible: DB를 외부에서 접근할 수 있게 하는 옵션입니다. No로 설정하면 VPC 내부에서만 접근할 수 있습니다. 기본값 그대로 사용합니다.
  • Availability Zone: DB 인스턴스가 생성될 가용 영역(Availability Zone)입니다. EC2 인스턴스에서 DB에 접속한다면 같은 AZ에 있는 것이 좋습니다. 기본값 그대로 사용합니다.
  • VPC Security Group: 방화벽 설정인 Security Group입니다. 기본값 그대로 사용합니다. 이 Security Group은 나중에 DB 인스턴스 전용으로 따로 생성해야 합니다.
  • Database Name: 생성할 DB 이름입니다. ExampleDB로 설정합니다. 아무것도 입력하지 않으면 DB 인스턴스에서 MySQL 서버만 실행되고 DB는 생성되지 않습니다.
  • Database Port: DB 접속 포트 번호입니다. 기본값 그대로 사용합니다.
  • Parameter Group: MySQL을 실행할 때 필요한 파라미터 집합입니다. DB 인스턴스 생성 후 Parameter Group을 추가할 수 있습니다(my.cnf 파일을 생성하는 것과 동일합니다.) 기본값 그대로 사용합니다.
  • Option Group: DB 옵션입니다. MySQL은 특별히 지정하지 않아도 됩니다. 기본값 그대로 사용합니다.


그림 13-9 RDS DB 인스턴스 추가 설정

이어지는 DB 인스턴스 추가 설정입니다(그림 13-10).

  • Backup: 자동 백업 옵션입니다. 이 자동 백업을 사용하면 원하는 시점으로 데이터를 복구할 수 있는 PIT(Point in Time) 복구를 사용할 수 있습니다. PIT 복구는 최근 5분 전 상태로 되돌릴 수 있으며 1초 단위로 설정이 가능합니다.
  • Backup Retention Period: 백업 데이터 유지 기간입니다. 최대 35일까지 설정할 수 있습니다. 여기서 지정한 날짜 이전까지 되돌릴 수 있습니다.
  • Backup Window: 백업 시간입니다. 기본값은 No Preference입니다. 여기서는 Select Window를 선택하고 Start Time을 00:00, Duration을 0.5로 설정합니다. UTC 기준으로 00시 00분에 백업을 시작하며 백업 시간은 0.5시간(30분)입니다. 데이터의 용량이 크면 설정한 백업 시간을 넘길 수도 있습니다. 이 Duration을 설정하는 이유는 아래 Maintenance Window의 시간과 겹치지 않게 하기 위해서 입니다.
  • Auto Minor Version Upgrade: 자동으로 마이너 버전을 업데이트하는 옵션입니다. 보안 패치나 버그가 수정된 버전을 자동으로 업데이트합니다. 예를 들면 MySQL의 경우 5.6.13을 사용하고 있는데 5.6.14가 나오면 5.6.14 버전으로 업데이트하게 됩니다. 기본값 그대로 사용합니다.
  • Maintenance Window: 점검 시간입니다. 기본값은 No Preference입니다. 여기서는 Select Window를 선택하고 Start Day를 Monday, Start Time을 03:00, Duration을 0.5로 설정합니다. UTC 기준으로 03시 00분에 점검이 시작되며 시간은 0.5시간(30분)입니다. Duration을 설정하는 이유는 위 Backup Window의 시간과 겹치지 않게 하기 위해서 입니다. 점검은 Duration에 설정한 시간보다 일찍 끝날 수 있습니다.
    • 이 시간에 Auto Minor Version Upgrade를 설정했다면 DB 버전 업데이트 또는 패치가 적용됩니다. DB 버전 업데이트 또는 패치는 필수적인 것(보안 패치)만 적용되며 자주 발생하지 않고 몇 달에 한 번 발생합니다. DB 업데이트 또는 패치가 적용되는 시간 동안에는 DB 인스턴스의 실행이 중지됩니다.
    • DB 인스턴스 클래스를 변경했다면 이 시간에 적용됩니다. DB 인스턴스 클래스를 변경하는 동안에는 DB 인스턴스의 실행이 중지됩니다.

설정이 완료되었으면 Launch DB Instance 버튼을 클릭합니다.


그림 13-10 RDS DB 인스턴스 추가 설정

Multi-AZ 복제와 백업
Multi-AZ 복제를 사용했을 때에는 예비 인스턴스Standby에서 백업을 진행하게 되므로 메인 인스턴스의 I/O 성능에 영향을 주지 않습니다.

MySQL에서 자동 백업
설정 화면에 나와 있는 것처럼 MySQL에서 자동 백업을 사용하려면 스토리지 엔진으로 InnoDB를 사용해야 합니다. MyISAM은 지원하지 않습니다.

이제 RDS DB 인스턴스 생성이 시작되었습니다. Close 버튼을 클릭합니다.


그림 13-11 RDS DB 인스턴스 생성 시작

RDS DB 인스턴스 목록(Instances)으로 돌아왔습니다. 방금 설정한 DB 인스턴스가 생성되고 있습니다. 완전히 생성되기까지 약 10분 정도 소요됩니다.


그림 13-12 RDS DB 인스턴스 생성 중

RDS DB 인스턴스가 완전히 생성되었으면 exampledbinstance를 선택합니다. 그리고 ▶를 클릭하면 DB 인스턴스의 세부 내용이 표시되며 Endpoint 부분에 exampledbinstance.cnlconsezo7y.ap-northeast-1.rds.amazonaws.com:3306처럼 DB에 접속할 수 있는 주소가 표시됩니다. 이후 이 주소를 통해 DB에 접속하면 됩니다.


그림 13-13 RDS DB 인스턴스 Endpoint 확인

Multi-AZ 복제와 Failover
Multi-AZ 복제를 사용하도록 설정한 뒤, 메인 DB 인스턴스에 장애(AZ 장애, 인스턴스 중단, 네트워크 장애, 스토리지 장애)가 발생하면 자동으로 예비 인스턴스가 메인 인스턴스로 승격됩니다. 이 기능을 Failover라고 하며 Failover가 완료되는 데 걸리는 시간은 약 3~6분입니다. Failover 기능이 동작하면 Endpoint 주소가 가리키는 DB 인스턴스가 메인 인스턴스에서 예비 인스턴스로 바뀌므로 Endpoint를 사용하는 측에서는 Failover를 위해 따로 설정을 해줄 필요가 없습니다. 이 Multi-AZ 복제는 MySQL과 Oracle 데이터베이스 엔진에서만 지원합니다.

RDS DB 인스턴스 정지(stop)
EC2 인스턴스와는 달리 RDS DB 인스턴스는 정지 개념이 없습니다. 따라서 DB 인스턴스를 정지하고 싶으면 삭제(Delete)해야 합니다. 단 DB 인스턴스를 삭제(Delete)할 때 최종(Final) DB 스냅샷을 생성할 수 있습니다. 이후 이 최종 DB 스냅샷으로 DB 인스턴스를 다시 생성하여 이전 데이터 그대로 시작할 수 있습니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.