View a markdown version of this page

스토리지 - Amazon Neptune

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

스토리지

Neptune 데이터는 비휘발성 메모리 익스프레스(NVMe) SSD 기반 드라이브를 사용하는 단일 가상 볼륨인 클러스터 볼륨에 저장됩니다. 클러스터 볼륨은 세그먼트로 알려진 논리 블록 모음으로 구성됩니다. 각 세그먼트에는 10기가바이트(GB)의 스토리지가 할당됩니다. 각 세그먼트의 데이터는 DB 클러스터가 있는 단일 AWS 리전의 3개의 가용 영역(AZs)에 복제됩니다.

Neptune DB 클러스터를 생성하면 10GB의 단일 세그먼트가 할당됩니다. 데이터 볼륨이 증가하거나 현재 할당된 스토리지를 초과하면 Neptune은 새 세그먼트를 추가하여 클러스터 볼륨을 자동으로 확장합니다. Neptune 클러스터 볼륨은 중국 리전 및 64TiBTiB) 크기로 증가할 수 있습니다. AWS GovCloud

DB 클러스터 볼륨에는 모든 사용자 데이터, 인덱스 및 사전( Neptune 그래프 데이터 모델 섹션에 설명됨)과 내부 트랜잭션 로그와 같은 내부 메타데이터가 포함됩니다. 인덱스 및 내부 로그를 포함한 이 모든 그래프 데이터는 클러스터 볼륨의 최대 크기를 초과할 수 없습니다.

I/O 최적화 스토리지 옵션

Neptune은 스토리지에 대해 두 가지 요금 모델을 제공합니다.

  • Standard 스토리지 - Standard 스토리지는 I/O 사용량이 보통이거나 적은 애플리케이션을 위한 비용 효율적인 데이터베이스 스토리지를 제공합니다.

  • I/O 최적화 스토리지 - I/O 최적화 스토리지의 경우, 사용하는 스토리지에 대해서만 비용(Standard 스토리지보다 높은 비용)을 지불하며 사용하는 I/O에 대해서는 비용을 지불하지 않습니다.

    I/O 최적화 스토리지를 사용하면 I/O 집약적 그래프 워크로드에 대해 예측 가능한 비용, 낮은 I/O 지연 시간 및 일관된 I/O 처리량을 얻을 수 있습니다.

    자세한 내용은 I/O 최적화 스토리지를 참조하세요.

Neptune 스토리지 할당

Neptune 클러스터 볼륨은 128TiB(또는 일부 리전에서는 64TiB)로 증가할 수 있지만 할당된 공간에 대한 요금이 부과됩니다. 할당된 총 공간은 스토리지 하이 워터 마크에 의해 결정되며, 이는 클러스터가 존재하는 동안 언제든지 클러스터 볼륨에 할당되는 최대 용량입니다.

즉,와 같은 드롭 쿼리를 실행하는 등 클러스터 볼륨에서 사용자 데이터를 제거하더라도 할당된 g.V().drop()총 공간은 동일하게 유지됩니다. Neptune은 사용되지 않은 할당된 공간을 나중에 재사용할 수 있도록 자동으로 최적화합니다.

사용자 데이터 외에도 사전 데이터 및 내부 트랜잭션 로그도 스토리지를 사용합니다. 사전 데이터는 지원하는 그래프 데이터를 삭제한 후에도 유지되지만, 데이터를 다시 도입하면 Neptune에서 해당 항목을 재사용할 수 있습니다. 사용하지 않는 사전 항목을 정리하려면를 활성화하면 됩니다딕셔너리 폐영역 회수. 내부 로그는 자체 높은 워터마크가 있는 별도의 스토리지 공간을 사용합니다. 만료된 로그는 그래프 데이터가 아닌 다른 로그에만 재사용됩니다. 로그에 할당된 공간은 VolumeBytesUsed CloudWatch 지표에서 보고된 총계에 포함됩니다.

할당된 스토리지를 최소한으로 유지하고 공간을 재사용하는 방법은 스토리지 모범 사례에서 확인하세요.

Neptune 스토리지 요금

스토리지 비용은 이전 섹션에 설명된 대로 스토리지 하이 워터 마크를 기준으로 청구됩니다. Amazon Neptune은 여러 가용 영역에 데이터를 복제하지만 데이터 사본 하나에 대해서만 비용을 지불합니다.

VolumeBytesUsed CloudWatch 지표를 모니터링하여 DB 클러스터의 현재 스토리지 하이 워터 마크를 확인할 수 있습니다(Amazon CloudWatch를 사용하여 Neptune 모니터링 참조).

Neptune 스토리지 비용에 영향을 미칠 수 있는 다른 요인에는 데이터베이스 스냅샷과 백업이 포함되며, 이는 백업 스토리지로 별도로 청구되고 Neptune 스토리지 비용을 기반으로 합니다( 참조Neptune 백업 스토리지를 관리하는 데 유용한 CloudWatch 지표).

하지만 데이터베이스의 복제본을 생성하는 경우 복제본은 DB 클러스터 자체에서 사용하는 것과 동일한 클러스터 볼륨을 가리키므로, 원본 데이터에 대한 추가 스토리지 요금은 없습니다. 이후에 복제본을 변경할 때는 copy-on-write 프로토콜이 사용되므로, 추가 스토리지 비용이 발생합니다.

Neptune 요금에 대한 자세한 내용은 AWS 웹 사이트의 Amazon Neptune 요금을 참조하세요.

Neptune 스토리지 모범 사례

Neptune에서는 특정 유형의 데이터가 영구 스토리지를 사용하므로, 다음 모범 사례를 바탕으로 스토리지 증가가 크게 급증하지 않도록 해야 합니다.

  • 그래프 데이터 모델을 설계할 때는 일시적인 속성 키와 사용자 표시 값을 되도록 사용하지 마세요.

  • 데이터 모델을 변경할 계획이라면 빠른 재설정 API를 사용하여 DB 클러스터의 데이터를 지울 때까지 새 모델을 사용하는 기존 DB 클러스터에 데이터를 로드하지 마세요. 가장 좋은 방법은 새 모델을 사용하는 데이터를 새 DB 클러스터로 로드하는 것입니다.

  • 대량의 데이터를 처리하는 트랜잭션은 그에 상응하는 대량의 내부 로그를 생성하므로, 내부 로그 공간의 하이 워터 마크가 영구적으로 증가할 수 있습니다. 예를 들어 DB 클러스터의 모든 데이터를 삭제하는 단일 트랜잭션은 큰 내부 로그를 생성할 수 있습니다. 이 로그를 사용하려면 많은 양의 내부 스토리지를 할당해야 하므로 그래프 데이터에 사용할 수 있는 공간이 영구적으로 줄어듭니다.

    이를 방지하려면 대규모 트랜잭션을 소규모 트랜잭션으로 분할하고 트랜잭션 사이에 시간을 두어 관련 내부 로그가 만료되고 후속 로그에서 재사용할 내부 스토리지를 해제하도록 하세요.

  • Neptune 클러스터 볼륨 증가를 모니터링하려면 VolumeBytesUsed CloudWatch 지표에 CloudWatch 경보를 설정하면 됩니다. 이는 데이터가 클러스터 볼륨의 최대 크기에 도달하는 경우 특히 유용할 수 있습니다. 자세한 내용은 Amazon CloudWatch 경보 사용을 참조하세요.

DB 클러스터에 미사용 할당 공간이 많으면 스토리지를 축소할 수 있습니다. 이렇게 하려면 그래프의 모든 데이터를 내보낸 다음 새 DB 클러스터로 다시 로드합니다. DB 클러스터에서 데이터를 쉽게 내보낼 수 있는 방법은 Neptune 데이터 내보내기 서비스 및 유틸리티를 참조하고, 데이터를 Neptune으로 다시 가져오는 쉬운 방법은 Neptune 벌크 로더를 참조하세요.

참고

스냅샷은 클러스터 기본 스토리지의 원본 이미지를 유지하기 때문에 스냅샷을 생성하고 복원해도 DB 클러스터에 할당되는 스토리지의 양은 줄어들지 않습니다. 할당된 스토리지의 상당량이 사용되지 않는 경우 할당된 스토리지의 양을 줄이는 유일한 방법은 그래프 데이터를 내보내고 새 DB 클러스터로 다시 로드하는 것입니다.

Neptune 스토리지 신뢰성 및 고가용성

Amazon Neptune은 신뢰성, 내구성 및 내결함성을 고려하여 설계되었습니다.

Neptune 데이터의 사본은 3개의 가용 영역(AZs)에서 유지 관리되므로 데이터 스토리지의 내구성은 매우 높으며 데이터 손실 가능성은 매우 낮습니다. Amazon Neptune은 DB 인스턴스가 있는지 여부에 관계없이 가용 영역에 데이터를 자동으로 복제합니다. 복제 양은 클러스터의 DB 인스턴스 수와는 관계가 없습니다.

즉, Neptune은 그래프 데이터의 새 복사본을 만들지 않으므로, 읽기 전용 복제본을 빠르게 추가할 수 있습니다. 대신에 읽기 전용 복제본은 이미 데이터를 포함하는 클러스터 볼륨에 연결됩니다. 마찬가지로, 읽기 전용 복제본을 제거해도 기본 데이터는 제거되지 않습니다.

클러스터 볼륨과 해당 데이터는 해당 DB 인스턴스를 모두 삭제한 후에만 삭제할 수 있습니다.

또한 Neptune은 클러스터 볼륨을 구성하는 세그먼트에서 장애를 자동 감지합니다. 세그먼트의 데이터 사본이 손상되면 Neptune은 복구된 데이터가 최신 상태인지 확인하기 위해 동일한 세그먼트 내의 다른 데이터 사본을 사용하여 해당 세그먼트를 즉시 복구합니다. 따라서 Neptune은 데이터 손실을 방지하고 디스크 장애로부터 복구하기 위해 point-in-time으로 복원을 수행할 필요성을 줄입니다.