기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Neptune 스토리지, 신뢰성 및 가용성
Amazon Neptune은 데이터베이스 스토리지 요구 사항이 증가함에 따라 자동으로 확장되는 분산 및 공유 스토리지 아키텍처를 사용합니다.
Neptune 데이터는 비휘발성 메모리 익스프레스(NVMe) SSD 기반 드라이브를 사용하는 단일 가상 볼륨인 클러스터 볼륨에 저장됩니다. 클러스터 볼륨은 세그먼트로 알려진 논리 블록 모음으로 구성됩니다. 각 세그먼트에는 10기가바이트(GB)의 스토리지가 할당됩니다. 각 세그먼트의 데이터는 6개의 사본으로 복제되며, 이 사본은 DB 클러스터가 상주하는 AWS 리전의 3개 가용 영역에 할당됩니다.
Neptune DB 클러스터를 생성하면 10GB의 단일 세그먼트가 할당됩니다. 데이터 볼륨이 증가하거나 현재 할당된 스토리지를 초과하면 Neptune은 새 세그먼트를 추가하여 클러스터 볼륨을 자동으로 확장합니다. 중국 및 GovCloud(64TiB 이내로 제한)를 제외한 모든 지원 리전에서 Neptune 클러스터 볼륨은 최대 128테라바이트(TiB) 크기까지 늘릴 수 있습니다. 그러나 릴리스: 1.0.2.2(2020년 3월 9일) 이전 버전의 엔진 릴리스에서는 클러스터 볼륨 크기가 모든 리전에서 64TiB로 제한됩니다.
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은 사용되지 않은 할당된 공간을 나중에 재사용할 수 있도록 자동으로 최적화합니다.
사용자 데이터 외에도 딕셔너리 데이터와 내부 트랜잭션 로그라는 두 추가 유형의 콘텐츠가 내부 스토리지 공간을 차지합니다. 딕셔너리 데이터는 그래프 데이터와 함께 저장되지만, 지원하는 그래프 데이터가 삭제된 경우에도 무기한 유지되므로 데이터를 다시 도입하면 항목을 재사용할 수 있습니다. 내부 로그 데이터는 자체 하이 워터 마크가 있는 별도의 내부 스토리지 공간에 저장됩니다. 내부 로그가 만료되면 해당 로그가 점유한 스토리지를 다른 로그에는 재사용할 수 있지만, 그래프 데이터에는 사용할 수 없습니다. 로그에 할당된 내부 공간의 양은 VolumeBytesUsed
CloudWatch 지표에서 보고한 총 공간에 포함됩니다.
할당된 스토리지를 최소한으로 유지하고 공간을 재사용하는 방법은 스토리지 모범 사례에서 확인하세요.
Neptune 스토리지 요금
스토리지 비용은 위에서 설명한 대로 스토리지 하이 워터 마크를 기준으로 청구됩니다. 데이터가 6개 사본으로 복제되더라도 데이터 사본 1개에 대해서만 요금이 청구됩니다.
VolumeBytesUsed
CloudWatch 지표를 모니터링하여 DB 클러스터의 현재 스토리지 하이 워터 마크를 확인할 수 있습니다(Amazon CloudWatch를 사용하여 Neptune 모니터링 참조).
Neptune 스토리지 비용에 영향을 줄 수 있는 다른 요인으로는 데이터베이스 스냅샷과 백업이 있습니다. 데이터베이스 스냅샷과 백업은 백업 스토리지로 별도로 비용이 청구되며 Neptune 스토리지 비용을 기준으로 합니다(Neptune 백업 스토리지를 관리하는 데 유용한 CloudWatch 지표 참조).
하지만 데이터베이스의 복제본을 생성하는 경우 복제본은 DB 클러스터 자체에서 사용하는 것과 동일한 클러스터 볼륨을 가리키므로, 원본 데이터에 대한 추가 스토리지 요금은 없습니다. 이후에 복제본을 변경할 때는 copy-on-write 프로토콜이 사용되므로, 추가 스토리지 비용이 발생합니다.
자세한 Neptune 요금 정보는 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은 신뢰성, 내구성 및 내결함성을 고려하여 설계되었습니다.
3개의 가용 영역에 걸쳐 6개의 Neptune 데이터 사본이 유지되므로, 데이터 스토리지 내구성이 뛰어나고 데이터 손실 가능성이 매우 낮습니다. 데이터는 가용 영역에 DB 인스턴스가 있는지 여부에 관계없이 가용 영역에 자동으로 복제되며, 복제 양은 클러스터의 DB 인스턴스 수와는 무관합니다.
즉, Neptune은 그래프 데이터의 새 복사본을 만들지 않으므로, 읽기 전용 복제본을 빠르게 추가할 수 있습니다. 대신에 읽기 전용 복제본은 이미 데이터를 포함하는 클러스터 볼륨에 연결됩니다. 마찬가지로, 읽기 전용 복제본을 제거해도 기본 데이터는 제거되지 않습니다.
클러스터 볼륨과 해당 데이터는 해당 DB 인스턴스를 모두 삭제한 후에만 삭제할 수 있습니다.
또한 Neptune은 클러스터 볼륨을 구성하는 세그먼트에서 장애를 자동 감지합니다. 세그먼트의 데이터 사본이 손상되면 Neptune은 복구된 데이터가 최신 상태인지 확인하기 위해 동일한 세그먼트 내의 다른 데이터 사본을 사용하여 해당 세그먼트를 즉시 복구합니다. 결과적으로 Neptune을 사용하면 데이터 손실을 방지할 뿐만 아니라 특정 시점으로 복구 기능을 통해 디스크 결함을 복구할 필요성도 줄어듭니다.