Graphexp를 사용하여 Amazon Neptune의 Gremlin 그래프를 시각화하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 9월 1일

Graphexp를 사용하여 Amazon Neptune에 저장된 Gremlin 그래프를 시각화하려고 합니다. 어떻게 해야 합니까?

간략한 설명

Graphexp를 사용하여 Gremlin 그래프를 시각화하려면 다음의 사전 조건을 완료해야 합니다.

1.    Neptune DB 클러스터를 생성합니다.

2.    Neptune 클러스터와 동일한 Virtual Private Cloud(VPC)에서 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스를 생성합니다. SSH 연결을 통해 로컬 컴퓨터에서 인스턴스에 액세스할 수 있는지 확인합니다.

3.    EC2 인스턴스가 VPC 내에서 Neptune 클러스터에 연결할 수 있도록 허용하는 VPC 보안 그룹을 생성합니다. 자세한 내용은 Amazon VPC에서 Neptune DB 클러스터에 액세스를 참조하세요.

4.    AWS Identity and Access Management(IAM) 인증이 비활성화되었는지 확인합니다.

5.    EC2 인스턴스에서 Gremlin 콘솔을 설치하고 Neptune에 연결합니다.

참고: 데이터베이스의 neptune_enforce_ssl 파라미터가 "true"로 설정되어 있으면 HTTPS(wss) 연결을 사용하세요. 또는 HTTPS를 통해 REST를 사용하는 경우 REST_USE_HTTPS 파라미터를 "true"로 설정합니다. 그렇지 않으면 연결 오류가 발생합니다. 자세한 내용은 전송 중 암호화: SSL/HTTPS를 사용하여 Neptune에 연결을 참조하세요.

해결 방법

Gremlin 그래프 로드

참고: 다음 예제에서는 Apache TinkerPop GitHub 설명서의 속성 그래프를 사용합니다.

Gremlin 콘솔에서 다음의 단계를 수행하세요.

1.    정점을 추가합니다.

g.addV('person').property(id,'v1').property('name','marko').property('age','29').
  addV('person').property(id,'v2').property('name','vadas').property('age','27').
  addV('software').property(id,'v3').property('name','lop').property('lang','java').
  addV('person').property(id,'v4').property('name','josh').property('age','32').
  addV('software').property(id,'v5').property('name','ripple').property('lang','java').
  addV('person').property(id,'v6').property('name','peter').property('age','35')

2.    엣지를 추가합니다.

g.addE('created').from(g.V('v1')).to(g.V('v3')).property(id,'e9').property('weight','0.4')
g.addE('created').from(g.V('v4')).to(g.V('v5')).property(id,'e10').property('weight','1.0')
g.addE('created').from(g.V('v4')).to(g.V('v3')).property(id,'e11').property('weight','0.4')
g.addE('created').from(g.V('v6')).to(g.V('v3')).property(id,'e12').property('weight','0.2')
g.addE('knows').from(g.V('v1')).to(g.V('v2')).property(id,'e7').property('weight','0.4')
g.addE('knows').from(g.V('v1')).to(g.V('v4')).property(id,'e8').property('weight','1.0')

SSH 터널 설정

SSH 터널을 통해 로컬 컴퓨터에서 EC2 서버에 연결한 다음 로컬 포트 전달을 사용하여 Neptune 인스턴스에 연결할 수 있습니다. SSH 클라이언트 또는 PuTTY를 사용하여 SSH 터널을 생성할 수 있습니다.

SSH 클라이언트와 연결하려면 다음 명령을 실행합니다. 이 예제에서는 다음 값을 사용합니다.

8182: Neptune 클러스터의 포트
mydbcluster.cluster-123456789012.eu-west-1.neptune.amazonaws.com: Neptune 클러스터 엔드포인트
my_keypair.pem: 프라이빗 키 페어 파일
ec2-user@ec2-11-111-11-111.eu-west-1.compute.amazonaws.com: EC2 인스턴스의 퍼블릭 DNS 호스트 이름

ssh -L 8182:mydbcluster.cluster-123456789012.eu-west-1.neptune.amazonaws.com:8182 -i my_keypair.pem ec2-user@ec2-11-111-11-111.eu-west-1.compute.amazonaws.com

PuTTY:

1.    [범주(Category)] 창에서 [세션(Session)]을 선택한 다음, 다음 필드를 작성합니다.
[호스트 이름(Host Name)]에는 EC2 인스턴스의 퍼블릭 DNS 호스트 이름을 입력합니다.
[포트(Port)]의 값이 22인지 확인합니다.

2.    [범주(Category)] 목록에서 [연결 > SSH(Connection > SSH)]를 확장한 다음, [터널(Tunnels)]을 선택합니다. 다음의 필드를 작성합니다.
[소스 포트(Source port)]에 Neptune 클러스터를 생성할 때 선택한 포트를 입력합니다(예: 8182).
[대상(Destination)]에 Neptune 클러스터 엔드포인트 및 포트를 입력합니다. 예: mydbcluster.cluster-123456789012.eu-west-1.neptune.amazonaws.com: 8182.
[Local(로컬)] 및 [Auto(자동)] 옵션을 선택합니다.

3.    [Add(추가)]를 선택한 다음 [Open(열기)]를 선택합니다. 세션이 열리면 이벤트 로그가 나타납니다.

[timestamp] Local port 8182 forwarding to mydbcluster.cluster-123456789012.eu-west-1.neptune.amazonaws.com:8182

Graphexp 설정

1.    GitHub에서 Graphexp 패키지를 다운로드합니다.

2.    로컬 파일 시스템에서 zip 파일의 압축을 풉니다.

3.    scripts/graphConf.js 파일을 열고 다음 파라미터를 설정합니다.

const host = "localhost";
const SINGLE_COMMANDS_AND_NO_VARS = true

브라우저에서 Neptune 그래프에 액세스

1.    브라우저에서 압축을 푼 Graphexp 디렉터리에 graphexp.html 파일의 경로를 입력합니다. 예:

file:///C:/Neptune/graphexp-main/graphexp-main/graphexp.html

2.    [그래프 정보 다운로드(Get graph info)]를 선택한 다음, [검색(Search)]을 선택해서 Gremlin 그래프를 로드하고 표시합니다.


이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?