Neptune 스트림을 통해 실시간으로 그래프 변경 캡처 - Amazon Neptune

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

Neptune 스트림을 통해 실시간으로 그래프 변경 캡처

Neptune 스트림은 완전히 관리된 방식으로 그래프에 대한 모든 변경을 수행된 순서대로 로깅합니다. 스트림이 활성화되면 Neptune은 가용성, 백업, 보안 및 만료를 관리합니다.

참고

이 기능은 릴리스 1.0.1.0.200463.0(2019년 10월 15일)부터 랩 모드에서 사용할 수 있으며, Neptune 엔진 릴리스 1.0.2.2.R2부터 프로덕션 환경에서 사용할 수 있습니다.

아래에 그래프에 대한 변경 캡처가 필요한 많은 사용 사례 중 일부가 나와 있습니다.

  • 사용자는 특정 변경이 수행될 때 애플리케이션이 이를 자동으로 알려주기를 원할 수 있습니다.

  • Amazon 서비스, Amazon 또는 Amazon Simple Storage OpenSearch Service (Amazon S3) 와 같은 다른 데이터 스토어에도 그래프 데이터의 최신 버전을 유지하고 싶을 수 있습니다. ElastiCache

Neptune은 변경-로그 스트림에서 그래프 데이터에서와 동일한 네이티브 스토리지를 사용합니다. 이러한 변경을 수행하는 트랜잭션과 함께 동기식으로 변경 로그 항목을 기록합니다. HTTP REST API를 사용해 로그 스트림에서 이러한 변경 레코드를 검색합니다 (자세한 정보는 스트림 API 호출 단원 참조).

다음 다이어그램은 Neptune 스트림에서 변경-로그 데이터를 어떻게 검색할 수 있는지 보여줍니다.

라이터 인스턴스와 읽기 전용 복제본 모두에서 변경-로그 데이터를 어떻게 검색할 수 있는지 보여주는 다이어그램입니다.
Neptune 스트림 보장
  • 트랜잭션이 완료되는 즉시 트랜잭션에서 수행된 변경을 라이터 및 리더 모두에서의 읽기 작업에 즉시 사용할 수 있습니다(리더에서의 정상적인 복제 지연과는 별개로).

  • 변경 레코드는 발생한 순서에 따라 엄격하게 순차적으로 나타납니다(여기에는 트랜잭션 내에서 수행된 변경이 포함).

  • 변경 스트림에는 중복된 내용이 포함되지 않습니다. 각 변경은 오직 한 번만 로깅됩니다.

  • 변경 스트림은 완벽합니다. 변경 내용의 손실 또는 누락이 없습니다.

  • 변경 스트림에는 시작 상태가 알려져 있을 때 특정 시점에서 데이터베이스 자체가 온전한 상태인지 판단하기 위해 필요한 모든 정보가 포함되어 있습니다.

  • 스트림을 언제라도 비활성화 할 수 있습니다.

Neptune 스트림 운영 속성
  • 변경-로그 스트림은 완벽하게 관리됩니다.

  • 변경-로그 데이터는 변경을 수행하는 트랜잭션의 일부로서 동기식으로 작성됩니다.

  • Neptune 스트림이 활성화되면 변경-로그 데이터와 관련된 I/O 및 스토리지 요금이 부과됩니다.

  • 기본적으로 변경 레코드는 작성되고 1주일 후에 자동으로 삭제됩니다. 엔진 릴리스 1.2.0.0부터 neptune_streams_expiry_days DB 클러스터 파라미터를 사용하여 이 보존 기간을 1~90일 사이의 일수로 변경할 수 있습니다.

  • 스트림에 대한 읽기 성능은 인스턴스를 통해 확장이 가능합니다.

  • 읽기 전용 복제본을 사용하여 높은 가용성과 읽기 처리량을 달성할 수 있습니다. 동시에 생성 및 사용할 수 있는 스트림 리더의 수에는 제한이 없습니다.

  • 변경-로그 데이터가 여러 가용 영역에서 복제가 되기 때문에 내구성이 매우 뛰어납니다.

  • 로그 데이터는 그래프 데이터 자체만큼 안전합니다. 암호화된 상태로 저장 및 전송됩니다. IAM, Amazon VPC AWS Key Management Service 및AWS KMS() 를 사용하여 액세스를 제어할 수 있습니다. 그래프 데이터와 마찬가지로 이 데이터도 복원 (PITR) 을 사용하여 point-in-time 백업하고 나중에 복원할 수 있습니다.

  • 스트림 데이터를 각 트랜잭션의 일부로 동기식으로 작성하면 전체 쓰기 성능이 약간 저하됩니다.

  • Neptune은 설계상 단일 샤딩되기 때문에 스트림 데이터는 샤딩되지 않습니다.

  • 로그 스트림 GetRecords API는 다른 Neptune 그래프 작업과 동일한 리소스를 사용합니다. 따라서 클라이언트가 스트림 요청과 다른 DB 요청 간에 로드 밸런싱을 수행해야 합니다.

  • 스트림이 비활성화 되면 모든 로그 데이터가 즉시 액세스가 불가능한 상태가 됩니다. 따라서 로깅을 비활성화 하기 전에 원하는 모든 로그 데이터를 읽어와야 합니다.

  • 현재로서는 기본적으로 통합되어 있지 않습니다. AWS Lambda로그 스트림은 Lambda 함수를 트리거할 수 있는 이벤트를 생성하지 않습니다.