RDS(Relational Database Service)는 직접 데이터베이스를 설치하고 관리할 필요 없이 아마존에서 관리를 해주는 서비스다.
AWS에서 지원하는 클라우드 기반 관계형 데이터베이스
하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화
프로비저닝(provisioning): 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것
개발자가 개발에 집중할 수 있게 지원
서버를 구입하면 CPU, 메모리, 스토리지 및 IOPS가 모두 한데 묶여 제공된다. Amazon RDS를 사용하면 이 모두가 따로 분할되므로 독립적으로 확장할 수 있다. CPU가 더 많이 필요하거나 IOPS가 더 적게 필요하거나 스토리지가 더 많이 필요할 경우 쉽게 할당할 수 있다.
Amazon RDS는 백업, 소프트웨어 패치, 자동 장애 감지 및 복구를 관리한다.
필요할 때 자동화된 백업을 수행하거나 고유한 백업 스냅샷을 수동으로 만들 수 있다. 이러한 백업을 사용하여 데이터베이스를 복원할 수 있다. Amazon RDS 복원 프로세스는 안정적이고 효율적이다.
MySQL, MariaDB, PostgreSQL, Oracle 및 Microsoft SQL Server 같은 데이터베이스 제품을 사용할 수 있다.
데이터베이스 생성하기
Amazon Aurora는 아마존에서 만든 데이터베이스로 이를 사용하면 관리하기 제일 편하다고 한다. 하지만 프리티어 범위에 포함되지 않으므로 참고할 것!
데이터베이스 설정 정보를 입력한다.
데이터베이스 인스턴스 클래스를 선택하는데 프리티어로 사용하게 될 경우 버스터블 클래스에서 t2.micro만 사용 가능하다.
스탠다드 클래스, 메모리 최적화 클래스, 버스터블 클래스에 대한 설명도 AWS에 친절하게 나와있다.
저장 공간에 대한 정보를 입력할 수 있다. 여기서 스토리지 자동 조정 활성화를 체크하면 해당 스토리지 용량보다 많이 사용될 것 같으면 자동적으로 스토리지 용량을 증설해주는 기능이다. 이때 임계값을 넣어주면 최대 해당 용량만큼만 증설된다는 것이다.
VPC를 지정하고 VPC의 외부에서 데이터베이스에 접근할 수 있게 할 것이냐에 따라 퍼블릭 액세스를 지정할 수도 있다. 그리고 보안 그룹도 지정하거나 새로 생성할 수 있다.
VPC를 쉽게 설명한 글을 발견했다.
Great, Harry The. “[AWS] 가장쉽게 VPC 개념잡기.” Medium, 해리의 유목코딩, 14 Feb. 2020, https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098.
요금 관련 내용이다. 나는 프리티어로 사용할 것이다!
생성하고 몇 분 기다리면 데이터베이스가 생성된 것을 확인할 수 있다!
파이참 프로 버전을 사용하면 파이참에서 제공하는 Database 툴을 사용할 수 있다.
➕ 버튼을 누르면 설정 창이 뜬다. Host에는 아까 생성했던 데이터베이스의 엔드포인트를 입력하고 User에는 아까 입력한 마스터 사용자 이름(디폴트는 admin), Password에는 설정한 비밀번호를 입력하면 된다.
Test Connection을 마친 후 OK를 누르면
성공적으로 연결한 것을 확인할 수 있다.
좌측 상단의 ➕ 버튼을 눌러 스키마를 생성할 수 있다.
sparta라는 스키마를 생성한다. 아래의 utf8 관련 코드는 한글이 깨지지 않게 하기 위해 설정하는 코드다.
생성한 스키마에 테이블을 생성할 수 있다.
file이라는 테이블을 생성하며 Column도 생성할 수 있다.
sparta라는 스키마에 file이라는 테이블을 생성하고 해당 테이블에 file_name이라는 컬럼을 추가한 것을 확인할 수 있다.
QL이라고 적힌 버튼을 누르고 New Query Console을 누르게 되면 쿼리문을 입력할 수 있는 창이 열린다.
select * from file;
위 쿼리문을 통해 file 테이블 내 모든 데이터를 조회한다.
insert into file(file_name) values('test.png');
위 쿼리문을 통해 file 테이블의 file_name 컬럼에 'test.png'라는 데이터를 추가한다.
사진의 아래 부분을 보면 test.png라는 데이터가 추가된 것을 확인할 수 있다.
추가로 AWS 사이트에서 모니터링도 가능하다.
번외
RDS 비용 계산 문서, https://calculator.aws/#/createCalculator/RDSMySQL.