💙베하💙 누구든 탑승할 수 있는 유임승차 팀입니다!!💨😉
지난주에 이어 이번 주에는 aws의 Neptune에 대해서 알아보았습니다!
Neptune 설명에 앞서..
그래프 데이터베이스란?
그래프 데이터베이스는 관계를 저장하고 탐색하는 데 용이한 데이터베이스로, 일종의 NoSQL 데이터베이스입니다. 말 그대로 데이터를 그래프 방식으로 나타낸 것이라서, 특정 데이터 간의 관계를 직관적으로 확인할 수 있습니다.
그래프 데이터베이스를 구성하는 방법에는 몇 가지 방식이 있는데, 그 중 대표적인 것이 Property Graph Model 입니다. Property Graph Model의 데이터는 nodes, relationships, 그리고 properties로 구성됩니다.
node는 key-value 쌍으로 이루어집니다. node는 하나 이상의 label을 가질 수 있는데 이 label에는 node의 유형을 정의할 수 있습니다.
위 그림처럼, VideoReview는 한 노드의 label이고 id와 name은 key-value 가 쌍을 지어 노드의 속성을 정의하게 됩니다. Role/Type의 경우는 보통 label로 표현하고, 특정 노드의 특징을 표현하기 위해서는 property(속성)을 사용할 수 있습니다.
각 노드 간의 relationship은 위 그림의 화살표처럼 edge로 표현됩니다. edge는 방향을 가지고, node와 마찬가지로 edge도 label을 가질 수 있습니다. 노드 간 relationship에 가중치를 주고 싶거나 relationship의 quality를 표현하고 싶다면 node의 property처럼 edge에도 property를 부여하면 됩니다. property에 단순 가중치값 뿐만 아니라, 관계가 맺어진 시점을 나타내는 timestamp 같은 값도 속성으로 지정 가능합니다.
관계형 데이터베이스에 빗대어 설명하면 label은 같은 성질의 데이터를 구조적으로 묶은 테이블에 해당하고, node는 하나의 행에 해당하며 property로 정의된 key-value 쌍은 RDB에서 column 이름과 실제 값에 해당합니다.
RDB GraphDB
테이블 | Label |
행 | node |
열/data | 속성/값 |
이렇게 구성된 그래프 데이터베이스는 직관적이기 때문에 데이터 간의 복잡한 관계를 빠르게 파악할 수 있다는 장점이 있습니다. 가령 빅데이터를 다룰 때, 관계형 데이터베이스는 외래키로 엔티티 사이의 관계를 표현하므로 복잡한 관계의 데이터일 경우 그 관계를 파악하기 어렵습니다. 이러한 경우 그래프 데이터베이스를 효과적으로 활용할 수 있습니다.
Amazon Neptune
Amazon Neptune는 아마존에서 제공하는 완전관리형 그래프 데이터베이스 서비스입니다. 완전관리형(Fully-Managed)는 AWS가 모두 관리하는 형태로, 쉽게 백업과 가용성에 대한 부분을 보장받을 수 있습니다. 서비스 제공을 위한 인프라를 AWS에서 제공해주기 때문에 편리한 사용이 가능한데, Neptune 데이터베이스 서비스는 완전관리형이기 때문에 설치과정을 포함해 모니터링, 이벤트 알림, 데이터베이스 복제 등에 있어서 빠르고 편리하게 작업할 수 있습니다.
Neptune 데이터베이스에 쿼리를 실행하기 위해서는 Gremlin이나 SPARQL을 사용해야 합니다. Neptune은 Property Graph 모델을 지원하며 Gremlin query language는 Property Graph를 빠르게 순회하는 방법을 제공합니다. Property Graph 모델 뿐만 아니라 RDF(Resource Description Framework)도 지원하는데, 이 경우 SPARQL을 사용할 수 있습니다.
Neptune은 보안을 위해 격리된 네트워크에 Neptune 서비스를 제공하는데, 이를 위해 Amazon VPC를 사용합니다. VPC를 통해 Neptune DB 인스턴스에 대한 엑세스를 제어할 수 있습니다.
다음번엔 더욱 유익한 내용으로 찾아오겠습니다.
날씨가 많이 더워지고 있는데 얼음 나눠먹어요~,~
'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글
쿠버네티스 Docker build & Docker hub (0) | 2022.07.08 |
---|---|
[AWS] Security Groups (0) | 2022.07.08 |
AWS GuardDuty (0) | 2022.07.07 |
[AWS] Load Balancer와 ELB (0) | 2022.07.07 |
Amazon VPC CNI EKS 추가 기능 업데이트 방법 3가지 (0) | 2022.07.06 |
댓글