데이터베이스란
- 구조적으로 정리된 데이터의 집합체
- 데이터가 구조화되어 있기 때문에 데이터를 검색하거나 특정 데이터만 추출하는 등 프로그램으로 데이터를 쉽게 조작할 수 있다.
데이터베이스와 DBMS
- 데이터베이스는 어디까지나 ‘데이터의 집합체’이며 데이터를 조작하는 기능은 없다. - 실제로 데이터를 조작하는 것은 데이터베이스 관리 시스템(DBMS, Database Management System)이며 DBMS는 데이터 저장, 삭제, 검색 등과 같이 데이터베이스를 실제로 조작하는 역할을 담당한다. - DBMS는 어디까지나 ‘조작을 위한’ 소프트웨어이며 데이터의 추가, 저장, 삭제, 검색은 사람이 프로그래밍 언어로 명령해야 한다. 이러한 명령을 내릴 때 사용되는 언어 중 하나가 SQL이다.
DBMS
- 일반적으로 데이터베이스와 DBMS를 통틀어 ‘데이터베이스’라고 한다. - DBMS는 유료 소프트웨어와 무료 소프트웨어가 있다.
유료 DBMS로는 Oracle Database,SQL Server 등이 있으며 무료 DBMS로는 MySQL, PostgresSQL, MariaDB 등이 있다.
- 각 DBMS의 기능은 크게 다르지 않으며 일부 기능이 다르다. 처리 속도를 중시하거나, 안정성을 중시하거나, 확장하기 쉬운지의 여부 등과 같이 특화된 기능이 조금씩 다르다.
- 대규모 시스템의 경우 벤더 지원을 받을 수 있는 유료 DBMS를 사용하는 경우가 많고, 소규모 시스템의 경우는 비용을 절감하기 위해 무료 DBMS를 사용하는 경우도 많다.
RDB와 비RDB
- 데이터베이스는 크게 관계형 데이터베이스(RDB)와 비관계형 데이터베이스(비RDB) 두 가지로 나뉜다.
- 관계형 데이터베이스는 주소록이나 엑셀과 같이 표 형태로 되어 있고 데이터의 종류까지 세세하게 설정하기 때문에 구축하기까지 시간이 들지만, 그만큼 정밀한 조작이 가능하다. 데이터 관련 작업은 SQL을 사용한다.
- 비관계형 데이터베이스는 구조가 단순하고 설정할 부분이 적기 때문에 쉽게 구축할 수 있다. 복잡한 작업은 할 수 없지만 엑세스가 빠르다. 대표적으로 키 밸류형, 문서형 등의 구조를 가지고 있다. SQL을 사용하지 않기 때문에 ‘NoSQL 데이터베이스’라고도 한다. - AWS는 RDB, 비RDB 모두를 제공한다.
RDB 서비스로는 Amazon RDS(Relational Database Service)가 있으며 비RDB 서비스로는 Amazon DynamoDB나 Amazon ElasticCache 등이 있따.
Amazon RDS
- Amazon Relational Database Service(Amazon RDS)는 관계형 데이터베이스 6종류의제품을 클라우드에 최적화된 상태로 제공하는 서비스이다. Amazon Aurora 외에도 PostgreSQL, MySQL, MariaDB, Oracle Database, SQL Server를 지원하며 메모리, 성능, I/O 등이 최적화된 데이터베이스 인스턴스를 제공한다. - 데이터베이스의 제공 방식은 EC2와 비슷하다.
VPC상에 인스턴스 형태로 구축하며 다양한인스턴스 클래스를 사용할 수 있다. EC2와 다른 점은 RDS는 ‘매니지드 서비스’이며 업데이트 등의 관리가 AWS에 의해 자동으로 이루어진다는 점이다.
- 백업과 같이 번거로운 관리 작업도 자동화되어 있어 관리자가 수행할 필요가 없다. - AWS Database Migration Server(DMS)를 사용하면 기존 데이터베이스를 이전하거나 복제하는 것도 가능하다.
인스턴스 클래스
- RDS는 EC2와 마찬가지로 인스턴스 형식으로 사용된다. 인스턴스 클래스는 표준, 메모리최적화, 버스트 성능의 3종류가 있으며 클래스에 따라 micro, small, medium, large, xlarge, 2xlarge, 4xlarge, 8xlarge, 16xlarge 크기를 제공하고 있다. - 인스턴스 클래스에 따라 지원하지 않는 DBMS나 버전도 있다.
- 데이터베이스 인스턴스는 VPC에 설치해야 한다. 예전에 데이터베이스 인스턴스는 VPC 외부에도 설치할 수 있었지만, 지금은 VPC에 설치하지 않으면 안된다.