Amazon Neptune의 인스턴스 유형 선택 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Neptune의 인스턴스 유형 선택

Amazon Neptune은 다양한 그래프 워크로드에 적합한 여러 기능을 제공하는 다양한 인스턴스 크기 및 패밀리를 제공합니다. 이 섹션은 요구 사항에 가장 적합한 인스턴스 유형을 선택하는 데 도움이 됩니다.

이러한 패밀리의 각 인스턴스 유형에 대한 요금은 Neptune 요금 페이지를 참조하세요.

인스턴스 리소스 할당 개요

Neptune에 사용되는 각 Amazon EC2 인스턴스 유형 및 크기는 정의된 양의 컴퓨팅(vCPUs) 및 시스템 메모리를 제공합니다. Neptune의 기본 스토리지는 클러스터의 DB 인스턴스 외부에 있으므로, 컴퓨팅 및 스토리지 용량을 서로 독립적으로 확장할 수 있습니다.

이 섹션에서는 컴퓨팅 리소스를 확장할 수 있는 방법과 다양한 인스턴스 패밀리 각각의 차이점에 대해 중점적으로 설명합니다.

모든 인스턴스 패밀리에서 vCPU 리소스는 vCPU당 두(2) 개의 쿼리 실행 스레드를 지원하도록 할당됩니다. 이 지원은 인스턴스 크기에 따라 달라집니다. 특정 Neptune DB 인스턴스의 적절한 크기를 결정할 때는 애플리케이션의 동시 실행 가능성과 쿼리의 평균 지연 시간을 고려해야 합니다. 다음과 같이 필요한 vCPUs 수를 추정할 수 있습니다. 여기서 지연 시간은 초 단위의 평균 쿼리 지연 시간으로 측정되고 동시성은 초당 목표 쿼리 수로 측정됩니다.

vCPUs=(latencyxconcurrency)/2
참고

SPARQL 쿼리 엔진을 사용하는 DFE 쿼리, openCypher 쿼리 및 Gremlin 읽기 쿼리는 특정 상황에서 쿼리당 두 개 이상의 실행 스레드를 사용할 수 있습니다. 초기에 DB 클러스터 크기를 조정할 때는 각 쿼리가 실행당 하나의 실행 스레드를 소비한다는 가정하에 시작하고 쿼리 대기열에 역압이 가해지면 스케일 업하세요. 이는 /gremlin/status, /oc/status또는 /sparql/status APIs를 사용하여 관찰하거나 MainRequestsPendingRequestsQueue CloudWatch 지표를 사용하여 관찰할 수도 있습니다.

각 인스턴스의 시스템 메모리는 버퍼 풀 캐시와 쿼리 실행 스레드 메모리라는 2가지 기본 할당으로 나뉩니다.

인스턴스에서 사용 가능한 메모리의 약 3분의 2가 버퍼 풀 캐시에 할당됩니다. 버퍼 풀 캐시는 그래프에서 가장 최근에 사용된 구성 요소를 캐싱하여 해당 구성 요소에 반복적으로 액세스하는 쿼리에 더 빠르게 액세스할 수 있도록 하는 데 사용됩니다. 시스템 메모리 용량이 큰 인스턴스는 더 많은 그래프를 로컬에 저장할 수 있는 더 큰 버퍼 풀 캐시를 가집니다. 사용자는 CloudWatch에서 사용 가능한 버퍼 캐시 적중 및 누락 지표를 모니터링하여 적절한 양의 버퍼 풀 캐시를 조정할 수 있습니다.

일정 기간 동안 캐시 적중률이 99.9% 미만으로 떨어지면 인스턴스 크기를 늘리는 것이 좋습니다. 이는 버퍼 풀이 충분히 크지 않아 엔진이 기본 스토리지 볼륨에서 데이터를 더 자주 가져와야 한다는 것을 의미하는데, 효율적이지 않습니다.

시스템 메모리의 나머지 3분의 1은 쿼리 실행 스레드에 균등하게 분배되며, 일부 메모리가 운영 체제용으로 남아 있고 스레드가 필요에 따라 사용할 수 있는 소규모 동적 풀이 남아 있습니다. 각 스레드에 사용할 수 있는 메모리는 한 인스턴스 크기에서 다음 인스턴스 크기로 8xl 인스턴스 유형까지 약간 증가하며, 이때 스레드당 할당된 메모리 크기가 최대가 됩니다.

스레드 메모리를 더 추가할 시간은 OutOfMemoryException (OOM)가 발생할 때입니다. OOM 예외는 스레드 하나에 할당된 최대 메모리보다 많은 메모리가 필요할 때 발생합니다(메모리가 부족한 전체 인스턴스와 동일하지 않음).

t3t4g 인스턴스 유형

t3t4g 인스턴스 패밀리는 그래프 데이터베이스 사용을 시작하고 초기 개발 및 테스트에 사용할 수 있는 저렴한 옵션을 제공합니다. 이러한 인스턴스는 Neptune 프리 티어 제안을 받을 수 있으며, 이를 통해 신규 고객은 독립 실행형 AWS 계정 내에서 사용되거나 통합 결제 AWS 조직(지급인 계정) 아래에 롤업된 첫 750시간 동안 무료로 Neptune을 사용할 수 있습니다.

t3t4g 인스턴스는 중간 크기 구성(t3.mediumt4g.medium)으로만 제공됩니다.

프로덕션 환경에서 사용하기 위한 것은 아닙니다.

이러한 인스턴스는 리소스가 매우 제한적이므로, 쿼리 실행 시간이나 전체 데이터베이스 성능을 테스트하는 데는 사용하지 않는 것이 좋습니다. 쿼리 성능을 평가하려면 다른 인스턴스 패밀리 중 하나로 업그레이드하세요.

r4 인스턴스 유형 패밀리

DEPRECATED - r4 패밀리는 2018년에 Neptune이 출시될 때 제공되었지만, 이제 새로운 인스턴스 유형은 훨씬 더 나은 가격/성능을 제공합니다. 엔진 버전 1.1.0.0부터 Neptune은 더 이상 r4 인스턴스 유형을 지원하지 않습니다.

r5 인스턴스 유형 패밀리

r5 패밀리에는 대부분의 그래프 사용 사례에 잘 맞는 메모리 최적화 인스턴스 유형이 포함되어 있습니다. r5 패밀리에는 r5.large에서 최대 r5.24xlarge까지의 인스턴스 유형이 포함됩니다. 크기가 커지면 컴퓨팅 성능이 선형적으로 확장됩니다. 예를 들어 r5.xlarge (메모리 4 vCPUs 및 32GiB)에는 r5.large (메모리 2 vCPUs 및 16GiB)의 2배 vCPUs 및 메모리가 있고 r5.2xlarge (메모리 8 vCPUs 및 64GiB)에는의 2배 vCPUs 및 메모리가 있습니다r5.xlarge. 쿼리 성능은 최대 r5.12xlarge 인스턴스 유형까지 컴퓨팅 용량에 따라 직접 확장될 것으로 예상할 수 있습니다.

r5 인스턴스 패밀리에는 2소켓 Intel CPU 아키텍처가 있습니다. r5.12xlarge 및 소형 유형은 단일 소켓과 해당 단일 소켓 프로세서가 소유한 시스템 메모리를 사용합니다. r5.16xlarger5.24xlarge 유형은 소켓과 지원되는 메모리를 모두 사용합니다. 2소켓 아키텍처의 두 물리적 프로세서 간에는 약간의 메모리 관리 오버헤드가 필요하기 때문에, r5.12xlarge에서 r5.16xlarge 또는 r5.24xlarge 인스턴스 유형으로 스케일 업하는 것은 작은 크기로 규모를 조정하는 것만큼 선형적이지 않습니다.

r5d 인스턴스 유형 패밀리

Neptune에는 대량의 속성값과 리터럴을 가져와서 반환해야 하는 쿼리의 성능을 개선하는 데 사용할 수 있는 조회 캐시 기능이 있습니다. 이 기능은 많은 속성을 반환해야 하는 쿼리를 하는 고객이 주로 사용합니다. 조회 캐시는 Neptune 인덱싱 스토리지에서 각 속성값을 반복해서 조회하는 대신 로컬에서 이러한 속성값을 가져와서 해당 쿼리의 성능을 향상시킵니다.

조회 캐시는 r5d 인스턴스 유형에서 NVMe 연결 EBS 볼륨을 사용하여 구현됩니다. 클러스터의 파라미터 그룹을 사용하여 활성화됩니다. Neptune 인덱싱된 스토리지에서 데이터를 가져오면 속성 값과 RDF 리터럴이이 NVMe 볼륨 내에 캐시됩니다.

조회 캐시 기능이 필요하지 않은 경우 r5d로 인해 높은 비용이 부과되지 않도록 하려면 r5d 대신 표준 r5 인스턴스 유형을 사용하세요.

r5d 패밀리에는 r5d.large에서 r5d.24xlarge까지 r5 패밀리와 크기가 같은 인스턴스 유형이 있습니다.

r6g 인스턴스 유형 패밀리

AWS 는 Graviton이라는 자체 ARM 기반 프로세서를 개발하여 Intel 및 AMD에 상응하는 프로세서보다 더 나은 가격/성능을 제공합니다. 이 r6g 패밀리는 Graviton2 프로세서를 사용합니다. 테스트에서 Graviton2 프로세서는 OLTP 스타일(제한적) 그래프 쿼리에 대해 10~20% 더 나은 성능을 제공합니다. 그러나 성능이 약간 낮은 메모리 페이징 성능으로 인해 Graviton2 프로세서의 경우 Intel 프로세서보다 OLAP-ish 쿼리가 클수록 성능이 약간 떨어질 수 있습니다.

r6g 패밀리는 또한 단일 소켓 아키텍처를 채택하고 있어, 성능이 컴퓨팅 용량에 따라 r6g.large에서 r6g.16xlarge(패밀리 중 가장 큰 유형)로 선형적으로 확장됩니다.

r6i 인스턴스 유형 패밀리

Amazon R6i 인스턴스는 3세대 인텔 제온 스케일러블 프로세서(코드명 Ice Lake)를 기반으로 하며 메모리를 많이 사용하는 워크로드에 적합합니다. 일반적으로 비슷한 R5 인스턴스 유형보다 vCPU당 최대 15% 더 나은 컴퓨팅 가격 성능과 최대 20% 더 높은 메모리 대역폭을 제공합니다.

x2g 인스턴스 유형 패밀리

일부 그래프 사용 사례에서는 인스턴스에 더 큰 버퍼 풀 캐시가 있을 때 성능이 더 좋습니다. x2g 패밀리는 이러한 사용 사례를 보다 효과적으로 지원하기 위해 출시되었습니다. x2g 패밀리는 r5 또는 r6g 패밀리보다 더 큰 memory-to-vCPU 비율을 갖습니다. 또한 x2g 인스턴스는 Graviton2 프로세서를 사용하며, r6g 인스턴스 유형과 동일한 성능 특성을 많이 가지고 있을 뿐만 아니라 더 큰 버퍼 풀 캐시를 갖추고 있습니다.

CPU 사용률이 낮고 버퍼 풀 캐시 누락률이 높은 r5 또는 r6g 인스턴스 유형인 경우 x2g 패밀리를 대신 사용해 보세요. 이렇게 하면 더 많은 CPU 용량을 지불하지 않고도 필요한 추가 메모리를 얻을 수 있습니다.

serverless 인스턴스 유형

Neptune Serverless 기능은 워크로드의 리소스 요구 사항에 따라 인스턴스 크기를 동적으로 확장할 수 있습니다. 애플리케이션에 필요한 vCPUs 수를 계산하는 대신 Neptune Serverless를 사용하면 DB 클러스터의 인스턴스에 대한 컴퓨팅 용량(Neptune 용량 단위로 측정)의 하한 및 상한을 설정할 수 있습니다. 사용률이 다양한 워크로드는 프로비저닝된 인스턴스 대신 서버리스를 사용하여 비용을 최적화할 수 있습니다.

동일한 DB 클러스터에 프로비저닝된 인스턴스와 서버리스 인스턴스를 모두 설정하여 비용 대비 성능 구성을 최적화할 수 있습니다.