RDS

AWS RDS(Relation Database Service): 클라우드에서 관계형 DB 를 쉽게 설치, 운영 및 확장 할 수 있는 관리형 서비스

특징

  • Amazon Aurora, MySQL, MariaDB, Oracle, SQL Server, PostareSQL 데이터베이스 엔진 지원
  • DB 인스턴스 백업 및 복구를 위한 두 가진 방법(자동 백업, DB 스냅샷) 제공
  • 40개의 DB 인스턴스 보유 가능
  • 자세한 사항은 공식문서 참고

인스턴스 생성

  1. RDS에서 데이터베이스 생성 클릭

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

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

    손쉬운 생성: DB 엔진만 골라 인스턴스 생성가능, 추가적인 설정은 인스턴스 생성 후 변경

  3. 엔진 옵션 선택

    데이터베이스 엔진 선택

    DB 와 DB 버전 선택

  4. 템플릿 선택

    데이터베이스 템플릿

    용도에 따라 선택

  5. 설정

    데이터베이스 설정

    DB 인스턴스 식별자: 현재 AWS 리전에서 AWS 계정을 소유하는 모든 DB 인스턴스에 대해 고유한 이름 작성

    자격 증명 설정: root 이름 및 암호 설정

  6. 인스턴스 구성

    데이터베이스 인스턴스 구성

    사용목적에 맞게 인스턴스 선택 프리티어는 기본값 선택

  7. 스토리지 설정

    데이터베이스 스토리지

    스토리지 유형

    • 범용(SSD) 스토리지
      • 광범위한 데이터베이스 워크로드에 적합
      • 3 IOPS/GiB 가 기본적으로 제공, 3000IOPS까지 버스팅 가능
    • 프로비저닝 된 IOPS(SSD) 스토리지
      • I/O 을 많이 사용하는 데이ㅓ베이스 워크로드에 적합
      • 1000~30000 IOPS 범위의 I/O 를 프로비저닝할 수 있는 유연성 제공
    • 마그네틱 스토리지

      • 이전 버전과의 호환성을 위한 지원
      • 권장하지 않음


    • 스토리지 자동 조정기능: 처리량이 급등하여 DB 여유공간이 부족할 때, 자동으로 스토리지 확장하는 기능

    • 최대 스토리지 임계값: 해당 DB 인스턴스가 자동으로 확장할 수 있는 제한 값
  8. 가용성 및 내구성 설정

    데이터베이스 가용성 및 내구성

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

    공식문서

  9. VPC 설정

    Amazon VPC

    데이터베이스 연결

    • 퍼블릭 액세스 기능
      • Public IP를 할당하여 VPC 외부에서 DB 인스턴스 접근을 허용할 것인가
    • VPC 보안 그룹
      • 인/아웃바운드 규칙이 정의된 보안 그룹 선택
      • EC2에서 접근하게 하려면, 보안그룹을 생성 후 EC2의 보안 그룹 연결
    • 데이터베이스 포트
      • MySQL 기본 포트인 3306 사용
  10. 데이터베이스 인증 설정

    데이터베이스 데이터베이스 인증

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

EC2 에서 RDS 접근하기

  1. 생성한 데이터베이스 인스턴스 에서 VPC 보안 그룹 클릭
  2. 인바운드 규칙 탭으로 이동하여 인바운드 규칙 편집 클릭
  3. 규칙 추가 클릭
  4. 유형: MYSQL/Aurora, 사용자: AnyWhere-IPv4 클릭 후 규칙 저장
  5. EC2 에 MySQL 설치

    $ mysql -V 로 설치 확인

    $ sudo yum install mysql 로 설치

  6. EC2 에서 RDS 인스턴스 접근 RDS 인스턴스에서 엔드포인트 확인 후

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

php 연동

MySQL 과 PHP 연동 라이브러리 설치

$ php -v 로 버전 확인 후 버

$ sudo apt install php7.2-mysql 알맞은 버전으로 설치

이 후 MySQL 과 Apache 재시작

$ sudo service mysql restart
$ sudo service mysql restart
$ sudo apachectl restart
$ sudo apt update
$ sudo apt-get install mysql-server
$ sudo service mysql restart
$ sudo apachectl restart

EC2 에서 MySQL 사용

database 생성

create database {DB name};

  • root가 아닌 유저가 DB를 생성하려면 DDL 명령어에 대한 권한 필요

user 생성

create user '{user}'@'%' identified by '{password}';

  • @ 뒤의 부분은 호스트 부분으로 local 일 경우 localhost, 아닐 경우 위처럼 @
  • identified by: 암호 설정

유저한테 권한 부여

grant all privileges on {DB name}.* to '{user}'@'%';

flush PRIVILEGES;

  • {DB name} 의 모든 접근을 허용

database 사용

use {DB name};

용어 정리

  • iam 정책
  • 범용(ssd) 스토리지
  • iops
  • 프로비저닝 된 iops(ssd) 스토리지
  • DDL 명령어 (db)

댓글남기기