소개
Amazon Neptune을 사용하면 밀리 초 단위로 수십억 개의 관계를 쿼리할 수 있는 정교한 대화형 그래프 애플리케이션을 생성할 수 있습니다. 고도로 연결된 데이터에 대한 SQL 쿼리는 복잡하며, 성능을 최적화하기가 어렵습니다. 대신, Amazon Neptune에서는 Apache TinkerPop Gremlin과 W3C의 SPARQL 및 openCypher 등 널리 사용되는 그래프 쿼리 언어를 사용하면 연결된 데이터에 대해 처리 성능이 뛰어난 강력한 쿼리를 손쉽게 작성하여 실행할 수 있습니다. 따라서 코드 복잡성이 크게 줄어들고 관계를 처리하는 애플리케이션을 더욱 빠르게 생성할 수 있습니다.
Neptune의 SLA는 99.9%이며 데이터베이스 워크로드용으로 구축한 SSD 지원 가상 스토리지 계층과 데이터베이스 엔진을 긴밀하게 통합하여 MySQL의 성능과 가용성을 향상합니다. Neptune의 스토리지는 내결함성을 갖춘 자가 복구형으로, 디스크 장애가 데이터베이스 가용성을 저하하지 않고 백그라운드에서 복구됩니다. Neptune은 장애를 복구하거나 데이터베이스 캐시를 다시 구축할 필요 없이 데이터베이스 장애를 자동 감지하고 재시작하도록 설계되었습니다. 전체 인스턴스에 장애가 발생하는 경우 Neptune은 자동으로 15개의 읽기 전용 복제본 중 하나로 장애 조치합니다.
Neptune 콘솔에서 몇 단계를 수행하여 신속하게 Neptune 데이터베이스 인스턴스를 시작할 수 있습니다. Neptune은 스토리지를 자동 확장하여 스토리지 용량을 늘리고 I/O의 균형을 재조정하므로 일관된 성능을 제공하기 위해 과다하게 프로비저닝할 필요가 없습니다.
뛰어난 성능 및 확장성
서버리스 옵션
Amazon Neptune Serverless는 애플리케이션 요구 사항에 따라 데이터베이스 용량을 자동으로 조정하는 온디맨드 배포 옵션입니다. Neptune Serverless는 그래프 데이터베이스 워크로드를 수십만 개의 쿼리로 즉시 확장할 수 있습니다. Neptune Serverless는 애플리케이션에 필요한 적정량의 데이터베이스 리소스를 제공하도록 용량을 조정합니다. 고객은 소비한 용량에 대한 요금만 지불하므로 피크 용량 대비 최대 90%의 데이터베이스 비용을 절감할 수 있습니다.
높은 처리량, 그래프 쿼리에 대한 짧은 지연 시간
Neptune은 특별히 구축된 고성능 그래프 데이터베이스 엔진입니다. Neptune은 그래프 데이터를 효율적으로 저장 및 탐색하며, 확장형의 인메모리 최적화 구조를 사용하여 대규모 그래프에 대해 빠른 쿼리 평가를 할 수 있게 해 줍니다. Neptune을 사용하면 Gremlin, openCypher 또는 SPARQL을 사용하여 쉽게 작성될 수 있고 처리 성능이 뛰어난 강력한 쿼리를 실행할 수 있습니다.
데이터베이스 컴퓨팅 리소스의 크기를 간편하게 조정
AWS Management Console에서 몇 단계만으로 원하는 크기의 복제본 인스턴스를 새로 만들거나 인스턴스를 제거하여 프로덕션 클러스터에 전원을 공급하는 컴퓨팅 및 메모리 리소스를 확장 및 축소할 수 있습니다. 컴퓨팅 크기 조정 작업은 일반적으로 몇 분이면 완료됩니다.
크기가 자동으로 조정되는 스토리지
Neptune은 데이터베이스 스토리지 요구 사항이 증가함에 따라 자동으로 확장되는 분산 및 공유 스토리지 아키텍처를 사용합니다. Neptune 데이터는 다중 AZ 고가용성을 갖춘 클러스터 볼륨에 저장됩니다. Neptune DB 클러스터가 생성되면 10GB 용량의 단일 세그먼트가 할당됩니다. 데이터 볼륨이 증가하여 현재 할당된 스토리지를 초과하면 Neptune이 새 세그먼트를 추가하여 클러스터 볼륨을 자동으로 확장합니다. Neptune 클러스터 볼륨은 중국 및 GovCloud를 제외한 지원 리전에서 최대 128테비바이트(TiB) 크기로 확장될 수 있습니다. 향후 증가를 고려하여 데이터베이스의 스토리지를 추가로 프로비저닝할 필요가 없습니다.
짧은 지연 시간의 읽기 전용 복제본
최대 15개의 데이터베이스 읽기 전용 복제본을 생성하여 대량의 애플리케이션 요청을 지원할 수 있도록 읽기 처리량을 늘립니다. Neptune 복제본은 소스 인스턴스와 동일한 기본 스토리지를 공유하여 비용을 낮추며 복제본 노드에서 쓰기를 수행할 필요가 없습니다. 따라서 남는 처리 용량을 읽기 요청에 사용하고 복제본 지연 시간을 줄일 수 있습니다(대개 10밀리초 미만으로). 또한 Neptune은 읽기 쿼리를 위한 단일 엔드포인트를 제공하기 때문에 애플리케이션을 추가하고 제거할 때 복제본을 추적하지 않고도 애플리케이션을 연결할 수 있습니다.
높은 가용성 및 내구성
인스턴스 모니터링 및 복구
Neptune 데이터베이스 및 기본 EC2 인스턴스의 상태는 지속적으로 모니터링됩니다. 데이터베이스 전원을 공급하는 인스턴스에 장애가 발생하면 데이터베이스와 관련 프로세스가 자동으로 재시작됩니다. Neptune 복구에서는 데이터베이스 다시 실행 로그를 오랫동안 재생하지 않아도 되므로 인스턴스 재시작 시간은 일반적으로 30초 이하입니다. 또한 이 서비스에서는 데이터베이스 버퍼 캐시를 데이터베이스 프로세스와 분리하므로 데이터베이스를 다시 시작해도 캐시가 유지될 수 있습니다.
읽기 전용 복제본을 사용한 다중 AZ 배포
인스턴스에 장애가 발생하면 Neptune은 3개의 가용 영역 중 하나에서 생성한 최대 15개의 Neptune 복제본 중 하나로 장애 조치를 자동화합니다. Neptune 복제본이 프로비저닝되지 않은 상태에서 장애가 발생하면 Neptune에서 자동으로 새 데이터베이스를 만들려고 시도합니다.
내결함성을 갖춘 자가 복구 스토리지
데이터베이스 볼륨에서 각 10GB 청크가 3개의 가용 영역에 6가지 방법으로 복제됩니다. Neptune은 데이터베이스 쓰기 가용성에 영향을 주지 않고 최대 2개의 데이터 사본 손실을 처리하고 읽기 가용성에 영향을 주지 않고 최대 3개의 데이터 사본 손실을 투명하게 처리하는 내결함성 스토리지를 사용합니다. 또한 Neptune 스토리지는 자가 복구됩니다. 데이터 블록과 디스크를 지속적으로 스캔하여 오류를 감지하고 자동으로 교체합니다.
지속적인 자동 증분 백업 및 특정 시점으로 복원
Neptune의 백업 기능을 사용하여 인스턴스를 특정 시점으로 복구할 수 있습니다. 이를 통해 데이터베이스를 보존 기간 중 어느 시점(초 단위)으로나 복원할 수 있습니다(최근 5분 전까지 가능). 자동 백업 보존 기간은 최대 35일로 구성할 수 있습니다. 자동화된 백업은 99.999999999% 내구성을 제공하도록 설계된 Amazon S3에 저장됩니다. Neptune 백업은 지속적인 자동 증분 백업이며 데이터베이스 성능에 영향을 미치지 않습니다.
데이터베이스 스냅샷
데이터베이스 스냅샷은 Amazon S3에 저장된 인스턴스에 대해 사용자가 시작하는 백업으로서 명시적으로 삭제할 때까지 보관됩니다. DB 스냅샷은 자동화된 증분 스냅샷을 사용하여 필요한 시간과 스토리지를 절감합니다. 원하는 경우 언제나 데이터베이스 스냅샷으로 인스턴스를 생성할 수 있습니다.
글로벌 데이터베이스
Amazon Neptune 글로벌 데이터베이스는 전 세계적으로 분산된 애플리케이션을 위해 설계되었으며, 단일 Neptune 데이터베이스를 여러 AWS 리전으로 확장해 줍니다. 데이터베이스 성능에 미치는 영향이 거의 없이 그래프 데이터를 복제하고, 각 리전에서 낮은 지연 시간으로 빠른 로컬 읽기를 지원하며, 리전 전체의 가동 중단 발생 시 재해 복구를 제공합니다.
개방형 그래프 API
Apache TinkerPop Gremlin의 속성 그래프 지원
Property Graph는 관계형 모델에 익숙한 개발자에게 친숙하기 때문에 널리 사용됩니다. Gremlin 순회 언어는 Property Graph를 빠르게 순회하는 방법을 제공합니다. Amazon Neptune은 오픈 소스 Apache TinkerPop Gremlin 순회 언어를 사용하여 Property Graph 모델을 지원하며, TinkerPop 버전 3.3을 지원하는 Gremlin Websockets 서버를 제공합니다. Neptune을 사용하면 속성 그래프 간의 빠른 Gremlin 순회를 빠르게 빌드할 수 있습니다. 기존의 Gremlin 애플리케이션은 Neptune 인스턴스를 가리키도록 Gremlin 서비스 구성을 변경하여 Neptune을 쉽게 사용할 수 있습니다.
W3C의 RDF(Resource Description Framework) 1.1 및 SPARQL 1.1 지원
RDF는 복잡한 정보 도메인을 모델링할 때 유연성을 제공하기 때문에 널리 사용됩니다. RDF에는 Wikidata 및 화학 분자 데이터베이스인 PubChem을 비롯하여 여러 가지의 기존 무료 또는 퍼블릭 데이터 세트가 있습니다. Amazon Neptune은 W3C의 시맨틱 웹 표준인 RDF 1.1 및 SPARQL 1.1(쿼리 및 업데이트)을 지원하고 SPARQL Protocol 1.1을 구현하는 HTTP REST 엔드포인트를 제공합니다. Neptune을 사용하면 기존 및 새로운 그래프 애플리케이션 모두에서 SPARQL 엔드포인트를 쉽게 사용할 수 있습니다.
openCypher v9의 속성 그래프 지원
Neptune은 현재 그래프 데이터베이스 개발 작업에서 가장 많이 사용되는 쿼리 언어 중 하나인 openCypher를 사용한 그래프 애플리케이션 구축을 지원합니다. 개발자, 비즈니스 분석가 및 데이터 사이언티스트는 SQL에서 영감을 얻은 openCypher의 구문을 좋아하는데, 익숙한 구조를 사용하여 그래프 애플리케이션에 대한 쿼리를 작성할 수 있기 때문입니다. 동일한 속성 그래프 데이터에 openCypher와 Gremlin 쿼리 언어를 함께 사용할 수 있습니다. openCypher 지원은 Bolt 프로토콜과 호환되므로 Bolt 프로토콜을 사용해 Neptune에 연결하는 애플리케이션을 계속 실행할 수 있습니다.
기계 학습
Amazon Neptune 기계 학습(ML)은 Amazon SageMaker로 구동되는 Neptune의 새로운 기능입니다. 이 기능은 그래프 데이터를 사용하여 쉽고 빠르며 정확하게 예측할 수 있는 그래프 전용 ML 기술인 그래프 신경망(GNN)을 사용합니다. Neptune 기계 학습은 그래프 이외의 방법을 사용한 예측과 비교하여 그래프 예측 대부분의 정확도를 50% 이상 개선할 수 있습니다.
관계가 수십억 개인 그래프에서 정확히 예측하는 작업은 어렵고 시간이 많이 걸릴 수 있습니다. XGBoost와 같은 기존 ML 접근 방식은 테이블 형식의 데이터용으로 설계되었기 때문에 그래프에서는 효과적으로 작동할 수 없습니다. 따라서 이 방법을 그래프에서 사용하면 시간이 걸리고 전문 개발자 기술이 필요하며, 최적의 예측에 미치지 못할 수도 있습니다.
뛰어난 보안
네트워크 격리
Amazon VPC내에서 실행되는 Neptune은 자체 가상 네트워크 내에 데이터베이스를 격리하고 산업 표준 암호화 IPsec VPN을 사용하여 온프레미스 IT 인프라에 연결합니다. 또한 Neptune VPC 구성을 사용해 방화벽 설정을 구성하고 DB 인스턴스에 대한 네트워크 액세스를 제어할 수 있습니다.
리소스 수준 권한
Amazon Neptune은 AWS Identity and Access Management (IAM)와 통합되어 AWS IAM 사용자 및 그룹이 특정 Neptune 리소스(예: 데이터베이스 인스턴스, 데이터베이스 스냅샷, 데이터베이스 파라미터 그룹, 데이터베이스 이벤트 구독 및 데이터베이스 옵션 그룹)에서 수행할 수 있는 작업을 제어하는 기능을 제공합니다. 또한 Neptune 리소스를 태그 지정하고, 태그 및 태그 값이 동일한 리소스 그룹에서 IAM 사용자 및 그룹이 수행할 수 있는 작업을 제어할 수 있습니다. 예를 들어 '개발' 데이터베이스 인스턴스는 개발자가 수정할 수 있도록 구성하고 '프로덕션' 데이터베이스 인스턴스는 데이터베이스 관리자만 수정하고 삭제할 수 있도록 IAM 규칙을 구성할 수 있습니다.
세분화된 액세스 제어
Neptune은 그래프에서 데이터 읽기, 쓰기, 삭제와 같은 그래프 데이터 작업 및 Amazon Neptune ML 활동을 시작 및 모니터링하고 진행 중인 데이터 영역 활동의 상태를 확인하는 등의 비그래프 데이터 작업을 수행하기 위해 AWS Identity and Access Management(IAM)를 사용하여 Neptune 데이터 영역 API를 검색하는 사용자에게 세분화된 액세스를 제공합니다. 예를 들어 그래프 데이터를 조작할 필요가 없는 데이터 분석가를 위한 '읽기 전용' 액세스 권한을 위한 정책, 애플리케이션에 대해 그래프를 사용하는 개발자를 위한 '읽기 및 쓰기' 액세스 권한을 위한 정책, Neptune ML 명령에 액세스해야 하는 데이터 과학자를 위한 정책을 생성할 수 있습니다.
암호화
Neptune은 TLS 버전 1.2를 통한 전송 중 암호화를 지원합니다. Neptune 사용자는 AWS Key Management Service(KMS)를 통해 생성하고 제어하는 키를 사용해 데이터베이스를 암호화할 수 있습니다. Neptune 암호화를 실행 중인 데이터베이스 인스턴스에서는 같은 클러스터에 있는 자동 백업, 스냅샷 및 복제본과 마찬가지로 기본 스토리지에 저장된 데이터가 암호화됩니다.
고급 감사
Amazon Neptune을 사용하면 데이터베이스 성능에 미치는 영향을 최소화하면서 데이터베이스 이벤트를 기록할 수 있습니다. 나중에 데이터베이스 관리, 보안, 거버넌스, 규정 준수 및 기타 목적으로 이러한 로그를 분석할 수 있습니다. 감사 로그를 Amazon CloudWatch로 전송하여 활동을 모니터링할 수도 있습니다.
완전관리형
더 쉬운 사용
AWS Management Console을 사용하여 새 Neptune 데이터베이스 인스턴스를 시작하는 방법으로 Neptune을 시작할 수 있습니다. Neptune 데이터베이스 인스턴스는 선택한 데이터베이스 인스턴스 및 클래스에 적합한 파라미터 및 설정 세트로 사전에 구성됩니다. 데이터베이스 인스턴스를 시작하고 애플리케이션을 연결하기만 하면 됩니다. 이 작업은 몇 분밖에 걸리지 않으며 추가 구성이 필요하지 않습니다. 데이터베이스 파라미터 그룹은 데이터베이스에 대한 세분화된 제어 및 미세 조정 기능을 제공합니다.
더 쉬운 운영
Neptune을 사용하면 고성능 그래프 데이터베이스를 더 쉽게 운영할 수 있습니다. Neptune을 사용하면 그래프 데이터에 사용자 지정 인덱스를 생성할 필요가 없습니다. Neptune은 시간 초과 및 메모리 사용 제한을 제공하여 너무 많은 리소스를 사용하는 쿼리의 영향을 줄입니다.
모니터링 및 지표
Neptune은 데이터베이스 인스턴스에 대한 Amazon CloudWatch 지표를 제공합니다. AWS Management Console을 사용하여 컴퓨팅, 메모리, 스토리지, 쿼리 처리량 및 활성 연결을 비롯한 20개 이상의 데이터베이스 인스턴스와 관련 운영 지표를 볼 수 있습니다.
자동 소프트웨어 패치
Neptune은 최신 패치를 적용하여 데이터베이스를 최신 상태로 유지합니다. Database Engine Version Management를 통해 인스턴스의 패치 여부와 시기를 제어할 수 있습니다.
데이터베이스 이벤트 알림
Neptune에서는 자동화된 장애 조치 같은 중요한 데이터베이스 이벤트를 이메일이나 SMS를 통해 알릴 수 있습니다. AWS Management Console을 사용하여 Amazon Neptune 데이터베이스와 관련된 여러 데이터베이스 이벤트를 구독할 수 있습니다.
빠른 데이터베이스 복제
Neptune은 빠르고 효율적인 복제 작업을 지원합니다. 이 작업을 통해 몇 테라바이트 데이터베이스 클러스터를 몇 분 안에 전체 복제할 수 있습니다. 복제는 애플리케이션 개발, 테스트, 데이터베이스 업데이트 및 분석 쿼리 실행과 같은 다양한 목적에 유용합니다. 즉각적인 데이터 가용성으로 인해 소프트웨어 개발 및 프로젝트 업그레이드가 크게 가속화되고 분석이 더욱 정확해질 수 있습니다.
AWS Management Console에서 몇 단계만으로 프로덕션 환경에 영향을 주지 않고 Neptune 데이터베이스를 복제할 수 있습니다. 복제본은 3개의 가용 영역에 분산되어 복제됩니다.
고속 대량 데이터 로드
Property Graph 대량 로드
Neptune은 S3에 저장된 Property Graph 데이터에 대해 빠른 병렬 대량 로드를 지원합니다. REST 인터페이스를 사용하여 데이터의 S3 위치를 지정할 수 있습니다. CSV로 구분된 형식을 사용하여 데이터를 노드 및 엣지로 로드합니다. 자세한 내용은 Neptune Property Graph 대량 로드 설명서를 참조하세요.
RDF 대량 로드
Neptune은 S3에 저장된 RDF 데이터에 대해 빠른 병렬 대량 로드를 지원합니다. REST 인터페이스를 사용하여 데이터의 S3 위치를 지정할 수 있습니다. N-Triples(NT), N-Quads(NQ), RDF/XML 및 Turtle RDF 1.1 직렬화가 지원됩니다. 자세한 내용은 Neptune RDF 대량 로드 설명서를 참조하세요.
규정 준수 프로그램
방대한 적용 범위의 규정 준수 프로그램
Neptune은 FedRAMP(Moderate 및 High)에서 SOC(1,2,3)에 이르는 20개 이상의 국제 규정 준수 표준 범위에 포함되며 HIPAA 적격 제품입니다. Neptune이 준수하는 표준의 전체 목록은 규정 준수 프로그램 제공 AWS 범위 내 서비스에서 찾아볼 수 있습니다.
비용 효율성
사용한 만큼만 비용 지불
Neptune에는 선불 약정이 없으며 시작한 각 인스턴스 또는 소비한 데이터베이스 리소스(서버리스의 경우)에 대한 시간당 요금이 부과됩니다. Neptune 데이터베이스 인스턴스가 더 이상 필요하지 않을 때는 삭제할 수 있습니다. 안전상의 조치를 위해 스토리지를 과다 프로비저닝할 필요가 없으며, 실제로 사용한 스토리지에 대해서만 지불합니다. 자세한 내용은 Neptune 요금 페이지를 참조하세요.