1. 서비스 소개

AWS RDS(Relational Database Service)는 클라우드에서 관계형 데이터베이스를 쉽게 설치, 운영 및 확장할 수 있는 관리형 서비스이며, 주요 특징은 다음과 같습니다.

  • Amazon Aurora, MySQL, MariaDB, Oracle, SQL Server 및 PostgreSQL 데이터베이스 엔진을 지원
    • 버전 지원 (참고)
      • MySQL 8.0 / MySQL 5.7 / MySQL 5.6 / MySQL 5.5
      • MariaDB 10.3 / MariaDB 10.2 / MariaDB 10.1 / MariaDB 10.0
      • PostgreSQL은 9.3.12 ~ 12버전 베타까지 지원 (참고)
      • Oracle 19c, 버전 19.0.0.0 / Oracle 18c, 버전 18.0.0.0 / Oracle 12c, 버전 12.2.0.1 / Oracle 12c, 버전 12.1.0.2 / Oracle 11g, 버전 11.2.0.4
      • SQL Server 2012 / SQL Server 2014 / SQL Server 2016 / SQL Server 2017 (참고)
  • DB 인스턴스 백업 및 복구를 위한 두 가지 방법, 즉 자동 백업 및 데이터베이스 스냅샷(DB 스냅샷)을 제공
    • 실행 속도가 느린 SQL 쿼리 확인 가능
  • 40개의 DB 인스턴스 보유 가능
  • 스키마 제한이 없음 (일부제외)

RDS FAQ를 참고한 내용이며, 더 자세한 내용은 공식문서를 확인하시길 바랍니다.




아마존에서는 여러 DBMS 중에서 자사 제품인 오로라(Aurora)를 밀어주고 있는데, 그 특징은 다음과 같습니다.

  • MySQL과 PostgreSQL와 호환되는 RBDMS입니다.
    • MySQL InnoDB 스토리지 엔진을 사용하여 MySQL 5.6 및 5.7과 호환되도록 설계
    • PostgreSQL 9.6 및 10과 호환되도록 설계
    • MySQL보다 최대 5배, PostgreSQL보다 3배 뛰어난 성능을 제공
  • 프리티어 지원 X
  • 가격비교 ( RDS for MySQL, Aurora )
    • 좋으면 비싸다...!

Aurora FAQ를 참고한 내용이며, 더 자세한 내용은 공식문서를 확인하시길 바랍니다.





2. 인스턴스 생성

이제 MySQL 엔진을 사용하여 RDS 인스턴스를 생성해보겠습니다.

먼저, IAM을 통해 RDS 전용 계정으로 사용하실 것을 권장합니다. ( 참고 )


각 단계마다 설명이 잘되어 있고, 정보 링크를 클릭하면 자세한 설명이 나오므로 꼭 참고하셔서 진행하시길 바랍니다.

설명이 잘되어 있지만, 굳이 정리하는 이유는 샘플을 보여드리기 위함입니다.



1) 대시보드

먼저 서울 리전을 선택한 후, 데이터베이스 생성 버튼을 클릭합니다.




2) 데이터베이스 생성 방식 선택


DB 생성 방식을 선택합니다.

손쉬운 생성을 선택하면 DB 엔진만 골라서 인스턴스를 생성할 수 있으며, 추가적인 설정은 인스턴스 생성후 변경할 수 있습니다.


이 글에서는 설정들에 대한 정보를 알아볼 것이므로 표준 생성을 선택합니다.




3) 엔진 옵션


DB 엔진을 선택하고, 버전을 선택해줍니다.




4) 템플릿 선택


어떤 용도로 인스턴스를 생성할 것인지에 따라 템플릿을 선택해줍니다.

여기서는 프리티어를 사용하며, 정보를 클릭하면 자세한 내용을 확인할 수 있습니다.

  • 프리티어
    • 단일 AZ db.t2.micro 인스턴스에서 Amazon RDS의 750시간.
    • 20GB의 범용 스토리지(SSD).
    • 20GB의 자동 백업 스토리지 및 사용자가 시작한 모든 DB 스냅샷.




5) 설정

설명 그대로 작성해주시면 됩니다.
  • DB 인스턴스 식별자
    • 현재 AWS 리전에서 AWS 계정이 소유하는 모든 DB 인스턴스에 대해 고유한 이름을 작성합니다.
  • 자격 증명 설정
    • 마스터 사용자의 아이디/비번을 작성합니다.



6) DB 인스턴스 크기 설정


사용 목적에 맞는 성능을 고려하여 인스턴스를 선택합니다. ( 참고 )

프리티어는 선택할것 없이 기본값을 고르고 넘어가면 됩니다.




7) 스토리지 선택


선택할 수 있는 스토리지 유형은 다음과 같습니다. ( 참고 )

  • 범용(SSD) 스토리지
    • 광범위한 데이터베이스 워크로드에 적합합니다.
    • 3 IOPS/GiB가 기본적으로 제공되며 3,000 IOPS까지 버스팅 가능합니다.
  • 프로비저닝된 IOPS(SSD) 스토리지
    • I/O를 많이 사용하는 데이터베이스 워크로드에 적합합니다.
    • 1,000~30,000 IOPS 범위의 I/O를 프로비저닝할 수 있는 유연성을 제공합니다.


스토리지 자동 조정 기능은 처리량이 급증하여 DB 여유공간이 부족할 때, 자동으로 스토리지를 확장하는 기능입니다. ( 참고 )

Auto scaling은 실제 스토리지 사용량을 지속적으로 모니터링하고, 실제 사용률이 프로비저닝된 스토리지 용량에 근접하면 용량을 자동으로 확장합니다. 

RDS 스토리지 Auto scaling에 대한 추가 비용은 없기 때문에, 활성화를 해줍니다.

단, Auto scaling이 RDS DB 인스턴스의 스토리지를 동적으로 늘리는 데 효과적이기는 하지만, DB 인스턴스의 초기 스토리지는 일반적인 워크로드에 적합한 크기로 구성해야 하는 것이 좋습니다.


최대 스토리지 임계값은 해당 DB 인스턴스가 자동으로 확장할 수 있는 제한 값입니다.




8) 가용성 및 내구성 설정

다중 AZ 배포를 사용해 DB 인스턴스에 고가용성과 장애 조치 기능을 지원합니다.

어떻게 고가용성을 지원하는지는 문서를 참고하시면 좋을것 같습니다.




9) VPC 선택

  • VPC / 서브넷그룹
    • VPC가 구성되어 있다면 선택해주시고, Default를 사용해도 무방합니다.
  • 퍼블릭 액세스 가능
    • Public IP를할당하여 VPC 외부에서 DB 인스턴스 접근을 허용할 것인지 체크합니다.
  • VPC 보안 그룹
    • 인/아웃바운드 규칙이 정의된 보안 그룹을 선택합니다.
    • EC2에서 접근하게 하려면, 보안그룹을 새로 생성한 후 EC2의 보안 그룹을 연결해주면 됩니다. 이 방법은 뒤에서 언급하겠습니다.
  • 가용영역
    • 서울 Region에는 ap-northeast-2a, ap-northeast-2c 두 개의 가용영역(AZ)이 존재합니다.
  • 포트
    • MySQL 기본 포트인 3306을 사용합니다.




10) 데이터베이스 인증

인증 방식은 다음과 같습니다. ( 참고 )

  • 암호인증
    • DB 암호를 사용해서 인증
  • 암호 및 IAM 데이터베이스 인증
    • IAM 정책으로 인증
    • 보안상 추천




11) 추가 구성


추가 구성을 선택합니다.

기본 값을 사용해도 무방합니다.




이렇게 설정을 마치고, 데이터 베이스를 생성하면 목록에서 확인할 수 있습니다.






3. RDS 접근하기

마지막으로 EC2에서 RDS를 접근하는 방법에 대해 알아보겠습니다.

( EC2생성은 여기를 참고해주세요. )


1)

EC2에서 RDS 인스턴스에 접근하려면, 보안 그룹을 수정해야 합니다.

생성된 인스턴스를 클릭하면 나오는 상세정보에서 VPC 보안 그룹을 클릭합니다.




2) 


기존에 생성된 EC2의 보안그룹의 그룹ID를 복사합니다.




3) 


  1. RDS에서 생성한 보안그룹을 선택
  2. 인바운드 탭
  3. 편집 팝업
  4. 유형에 DB 엔진을 선택하고, 소스에 복사한 EC2 보안정책의 그룹ID를 붙여넣기 합니다.




4) EC2에 MySQL 설치

이제 EC2에서 접근해보도록 하겠습니다.


먼저 터미널로 EC2를 접속하여 MySQL이 설치되어 있는지 확인합니다.


MySQL이 설치되어 있지 않다면 설치합니다.

$ sudo yum install mysql




5) EC2에서 접근하기

다음으로 RDS 인스턴스의 엔드포인트를 확인합니다.




EC2에서 다음의 명령어를 실행하여 RDS 인스턴스에 접근합니다.

$ mysql -u {마스터 사용자 이름} -p -h {RDS 인스턴스 엔드포인트}





이상으로 AWS RDS 인스턴스 생성 및 설정방법에 대해 알아보았습니다.

참고로 WorkBench, HedisSQL 같은 툴을 통해 접근하려면 보안 그룹을 추가해주면 됩니다.


[참고 자료]

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_CreateMariaDBInstance.html