기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
그래프 노트북에서 Amazon Neptune 사용
Neptune 그래프를 사용하려면 Neptune 그래프 노트북을 사용하거나 AWS CloudFormation 템플릿 을 사용하여 새 Neptune 데이터베이스를 생성할 수 있습니다. 다른 방법
그래프를 처음 접하거나 학습하고 실험하고 싶거나 쿼리를 구체화하고 싶은 경우 Neptune 워크벤치는 그래프 애플리케이션을 구축할 때 생산성을 높일 수 있는 대화형 개발 환경(IDE)을 제공합니다. Workbench는 Neptune 데이터베이스와의 상호 작용, 쿼리 작성, 데이터 시각화를 위한 사용자 친화적 인터페이스를 제공합니다.
AWS CloudFormation 템플릿을 사용하여 Neptune 데이터베이스를 설정하고 Workbench를 사용하여 그래프 애플리케이션을 개발하면 추가 도구 없이도 빠르고 효율적으로 Neptune을 시작할 수 있습니다. 이를 통해 기본 인프라를 설정하는 대신 애플리케이션을 구축하는 데 집중할 수 있습니다.
Neptune은 의 오픈 소스 Neptune 그래프 JupyterLab
다음과 같은 여러 가지 방법으로 이러한 노트북을 호스팅할 수 있습니다.
-
Neptune 워크벤치를 사용하면 Amazon 에서 호스팅되는 완전 관리형 환경에서 Jupyter 노트북을 실행할 수 SageMaker있으며 Neptune 그래프 노트북 프로젝트의
최신 릴리스를 자동으로 로드할 수 있습니다. 새 Neptune 데이터베이스를 생성할 때 Neptune 콘솔 에서 워크벤치를 쉽게 설정할 수 있습니다. 참고
Neptune 노트북 인스턴스를 생성할 때 네트워크 액세스를 위한 두 가지 옵션, 즉 Amazon을 통한 직접 액세스 SageMaker (기본값)와 를 통한 액세스가 제공됩니다VPC. 두 옵션 중 하나에서 노트북은 Neptune 워크벤치를 설치하기 위한 패키지 종속성을 가져오기 위해 인터넷에 액세스해야 합니다. 인터넷 액세스가 부족하면 Neptune 노트북 인스턴스 생성이 실패합니다.
Jupyter를 로컬에 설치할 수도 있습니다. 이를 통해 Neptune 또는 오픈 소스 그래프 데이터베이스 중 하나의 로컬 인스턴스에 연결된 노트북에서 노트북을 실행할 수 있습니다. 후자의 경우 비용 지출 없이 원하는 만큼 그래프 기술을 실험해 볼 수 있습니다. 그런 다음 준비가 되면 Neptune이 제공하는 관리형 프로덕션 환경으로 원활하게 전환할 수 있습니다.
Neptune 워크벤치를 사용하여 Neptune 노트북 호스팅
Neptune은 시간당 0.10 USD 미만으로 시작할 수 있는 T3
및 T4g
인스턴스 유형을 제공합니다. Neptune 결제와 SageMaker별도로 Amazon 를 통해 워크벤치 리소스에 대한 요금이 청구됩니다. Neptune 요금 페이지
다음 두 가지 방법 중 하나로 에서 Neptune 워크벤치를 사용하여 Jupyter 또는 JupyterLab 노트북 AWS Management Console 을 생성할 수 있습니다.
새 Neptune DB 클러스터를 생성할 때는 노트북 구성 메뉴를 사용합니다. 이렇게 하려면 AWS Management Console을 사용하여 Neptune DB 클러스터 시작에 설명된 단계를 따르세요.
DB 클러스터를 이미 생성한 후에는 왼쪽 탐색 창의 노트북 메뉴를 사용합니다. 이렇게 하려면 다음 단계를 따르십시오.
JupyterLab 노트북 메뉴를 사용하여 Jupyter 또는 노트북을 생성하려면
AWS 관리 콘솔에 로그인하고 https://console.aws.amazon.com/neptune/집에서
Amazon Neptune 콘솔을 엽니다. 왼쪽의 탐색 창에서 노트북을 선택합니다.
노트북 생성을 선택합니다.
클러스터 목록에서 Neptune DB 클러스터를 선택합니다. 아직 DB 클러스터가 없는 경우 클러스터 생성을 선택하여 클러스터를 만듭니다.
노트북 인스턴스 유형을 선택합니다.
노트북에 이름을 지정하고 선택에 따라 설명을 지정합니다.
-
노트북에 대한 AWS Identity and Access Management (IAM) 역할을 이미 생성하지 않은 경우 IAM 역할 생성을 선택하고 IAM 역할 이름을 입력합니다.
참고
이전 노트북에 대해 생성된 IAM 역할을 재사용하기로 선택한 경우, 사용 중인 Neptune DB 클러스터에 액세스할 수 있는 올바른 권한이 역할 정책에 포함되어야 합니다.
neptune-db:*
작업 ARN 아래에 있는 리소스의 구성 요소가 해당 클러스터와 일치하는지 확인하여 이를 확인할 수 있습니다. 권한이 잘못 구성된 경우 notebook magic 명령을 실행하려고 할 때 연결 오류가 발생합니다. 노트북 생성을 선택합니다. 모든 준비가 완료되기까지 생성 프로세스에 5~10분이 소요될 수 있습니다.
노트북이 생성된 후 노트북을 선택한 다음 Jupyter 열기 또는 열기를 JupyterLab 선택합니다.
콘솔은 노트북에 대한 AWS Identity and Access Management (IAM) 역할을 생성하거나 직접 생성할 수 있습니다. 이 역할의 정책에는 다음이 포함되어야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::aws-neptune-notebook-
(AWS region)
", "arn:aws:s3:::aws-neptune-notebook-(AWS region)
/*" ] }, { "Effect": "Allow", "Action": "neptune-db:*", "Resource": [ "arn:aws:neptune-db:(AWS region)
:(AWS account ID)
:(Neptune resource ID)
/*" ] } ] }
위 정책의 두 번째 문에는 하나 이상의 Neptune 클러스터 리소스 IDs가 나열되어 있습니다.
또한 역할은 다음과 같은 신뢰 관계를 설정해야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
다시 말하지만, 모든 준비를 완료하는 데 5~10분이 걸릴 수 있습니다.
Neptune ML용 Neptune 노트북을 수동으로 구성에 설명된 대로 Neptune ML과 함께 작동하도록 새 노트북을 구성할 수 있습니다.
Python을 사용하여 일반 SageMaker 노트북을 Neptune에 연결
Neptune 매직을 설치한 경우 노트북을 Neptune에 연결하는 것은 쉽지만, Neptune SageMaker 노트북을 사용하지 않더라도 Python을 사용하여 Neptune에 노트북을 연결할 수도 있습니다.
SageMaker 노트북 셀에서 Neptune에 연결하기 위해 취해야 할 단계
-
다음과 같이 Gremlin Python 클라이언트를 설치합니다.
!pip install gremlinpython
Neptune 노트북은 사용자를 위해 Gremlin Python 클라이언트를 설치하므로 이 단계는 일반 SageMaker 노트북을 사용하는 경우에만 필요합니다.
-
다음과 같은 코드를 작성하여 Gremlin 쿼리를 연결하고 실행합니다.
from gremlin_python import statics from gremlin_python.structure.graph import Graph from gremlin_python.process.graph_traversal import __ from gremlin_python.process.strategies import * from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection from gremlin_python.driver.aiohttp.transport import AiohttpTransport from gremlin_python.process.traversal import * import os port = 8182 server = '
(your server endpoint)
' endpoint = f'wss://{server}:{port}/gremlin' graph=Graph() connection = DriverRemoteConnection(endpoint,'g', transport_factory=lambda:AiohttpTransport(call_from_event_loop=True)) g = graph.traversal().withRemote(connection) results = (g.V().hasLabel('airport') .sample(10) .order() .by('code') .local(__.values('code','city').fold()) .toList()) # Print the results in a tabular form with a row index for i,c in enumerate(results,1): print("%3d %4s %s" % (i,c[0],c[1])) connection.close()
참고
3.5.0 이전 버전의 Gremlin Python 클라이언트를 사용하는 경우 다음 행을 참조하세요.
connection = DriverRemoteConnection(endpoint,'g', transport_factory=lambda:AiohttpTransport(call_from_event_loop=True))
다음과 같을 수 있습니다.
connection = DriverRemoteConnection(endpoint,'g')
Neptune 노트북에서 CloudWatch 로그 활성화
CloudWatch 이제 Neptune 노트북에 로그가 기본적으로 활성화됩니다. CloudWatch 로그를 생성하지 않는 이전 노트북이 있는 경우 다음 단계에 따라 수동으로 활성화하세요.
에 로그인 AWS Management Console 하고 SageMaker 콘솔
을 엽니다. 왼쪽 탐색 창에서 노트북을 선택한 다음 노트북 인스턴스를 선택합니다. 로그를 활성화하려는 Neptune 노트북의 이름을 찾습니다.
해당 노트북 인스턴스의 이름을 선택하여 세부 정보 페이지로 이동합니다.
노트북 인스턴스가 실행 중인 경우 노트북 세부 정보 페이지 오른쪽 상단에 있는 중지 버튼을 선택합니다.
권한 및 암호화 아래에는 IAM 역할 ARN에 대한 필드가 있습니다. 이 필드에서 링크를 선택하여 이 노트북 인스턴스가 실행되는 IAM 역할로 이동합니다.
-
다음 정책을 생성합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogDelivery", "logs:Describe*", "logs:GetLogDelivery", "logs:GetLogEvents", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:UpdateLogDelivery" ], "Resource": "*" } ] }
이 새 정책을 저장하고 4단계에 있는 IAM 역할에 연결합니다.
SageMaker 노트북 인스턴스 세부 정보 페이지의 오른쪽 상단에서 시작을 클릭합니다.
로그가 유입되기 시작하면 세부 정보 페이지의 노트북 인스턴스 설정 섹션 왼쪽 하단에 있는 수명 주기 구성 필드 아래에 로그 보기 링크가 표시됩니다.
노트북을 시작하지 못하면 SageMaker 콘솔의 노트북 세부 정보 페이지에 에서 노트북 인스턴스가 시작하는 데 5분 이상 걸렸다는 메시지가 표시됩니다. 이 문제와 관련된 CloudWatch 로그는 다음 이름에서 찾을 수 있습니다.
(your-notebook-name)
/LifecycleConfigOnStart
로컬 시스템에서 그래프 노트북 설정
그래프-노트북 프로젝트에는 로컬 시스템에 Neptune 노트북을 설정하기 위한 지침이 있습니다.
로컬 노트북을 Neptune DB 클러스터나 오픈 소스 그래프 데이터베이스의 로컬 또는 원격 인스턴스에 연결할 수 있습니다.
Neptune 클러스터와 함께 Neptune 노트북 사용
백엔드의 Neptune 클러스터에 연결하는 경우 Amazon 에서 노트북을 실행해야 할 수 있습니다 SageMaker. 에서 Neptune에 연결하는 것은 노트북의 로컬 설치보다 더 편리할 SageMaker 수 있으며, Neptune ML 를 사용하여 더 쉽게 작업할 수 있습니다.
에서 노트북을 설정하는 방법에 대한 지침은 Amazon 를 사용하여 그래프 노트북 시작을 SageMaker참조하세요. SageMaker
Neptune 자체를 설정 및 구성하는 방법에 대한 자세한 내용은 Amazon Neptune 설정을 참조하세요.
로컬에 설치된 Neptune 노트북을 Neptune DB 클러스터에 연결할 수도 있습니다. Amazon Neptune DB 클러스터는 Amazon Virtual Private Cloud(VPC)에서만 생성할 수 있기 때문에 이는 다소 복잡할 수 있습니다. Amazon Neptune DB 클러스터는 외부 세계에서 분리된 설계에 의해 생성됩니다. 외부VPC에서 에 연결하는 방법에는 여러 가지가 있습니다. 하나는 로드 밸런서를 사용하는 것입니다. 또 다른 방법은 VPC 피어링을 사용하는 것입니다(Amazon Virtual Private Cloud 피어링 가이드 참조).
그러나 대부분의 사용자에게 가장 편리한 방법은 에 연결하여 내에 Amazon EC2 프록시 서버를 설정한 VPC 다음 SSH 터널링additional-databases/neptune
https://github.com/aws/graph-notebook/
오픈 소스 그래프 데이터베이스와 함께 Neptune 노트북 사용
백엔드에 다양한 오픈 소스 데이터베이스가 있는 Neptune 노트북을 사용하여 무료로 그래프 기술을 시작할 수도 있습니다. 예를 들어 TinkerPop Gremlin 서버
Gremlin Server를 백엔드 데이터베이스로 사용하려면 다음 단계를 따르세요.
Gremlin Server 폴더에 그래프 노트북 연결
GitHub . 그래프 노트 Gremlin 구성
GitHub 폴더입니다.
Blazegraph
Blazegraph 빠른 시작 지침을
검토하여 Blazegraph 인스턴스를 실행하는 데 필요한 기본 설정 및 구성을 이해합니다. 로컬 Blazegraph 인스턴스를 설정하는 데 필요한 파일과 지침이 포함된 그래프 노트북 Blazegraph 구성
GitHub 폴더에 액세스합니다. GitHub 리포지토리 내에서 'blazegraph' 디렉터리로 이동하여 제공된 지침에 따라 로컬 Blazegraph 인스턴스를 설정합니다. 여기에는 Blazegraph 소프트웨어를 다운로드하고, 필요한 파일을 구성하고, Blazegraph 서버를 시작하는 단계가 포함됩니다.
로컬 Blazegraph 인스턴스가 실행되면 이를 그래프 기반 데이터 및 쿼리의 백엔드 데이터베이스로 애플리케이션과 통합할 수 있습니다. 애플리케이션을 Blazegraph 인스턴스에 연결하는 방법을 알아보려면 그래프 노트북 리포지토리에 제공된 설명서 및 예제 코드를 참조하세요.
Neptune 노트북을 Jupyter에서 JupyterLab 3으로 마이그레이션
2022년 12월 21일 이전에 생성된 Neptune 노트북은 Amazon Linux 1 환경을 사용합니다. 이 AWS 블로그 게시물에 설명된 단계를 수행하여 해당 날짜 이전에 생성된 이전 Jupyter 노트북을 JupyterLab 3으로 새 Amazon Linux 2 환경으로 마이그레이션할 수 있습니다. Amazon Linux 2를 사용하여 작업을 Amazon SageMaker 노트북 인스턴스로 마이그레이션
또한 Neptune 노트북을 새 환경으로 마이그레이션하는 데 특별히 적용되는 몇 가지 단계가 더 있습니다.
Neptune별 사전 조건
소스 Neptune 노트북의 IAM 역할에 다음 권한을 모두 추가합니다.
{ "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:CreateBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::
(your ebs backup bucket name)
", "arn:aws:s3:::(your ebs backup bucket name)
/*" ] }, { "Effect": "Allow", "Action": [ "sagemaker:ListTags" ], "Resource": [ "*" ] }
백업에 사용할 S3 버킷에 ARN 대해 올바른 을 지정해야 합니다.
Neptune별 수명 주기 구성
블로그 게시물에 설명된 대로 on-create.sh
에서 백업을 복원하기 위한 두 번째 수명 주기 구성 스크립트를 만들 때는 수명 주기 이름이 aws-neptune-*
형식(예: aws-neptune-sync-from-s3
)을 따라야 합니다. 이렇게 하면 Neptune 콘솔에서 노트북을 생성하는 동안 를 선택할 LCC 수 있습니다.
스냅샷에서 새 인스턴스로의 Neptune 관련 동기화
스냅샷에서 새 인스턴스로 동기화하는 방법에 대해 블로그 게시물에 설명된 단계에서 다음과 같은 Neptune별 변경 사항이 있습니다.
4단계에서 notebook-al2-v2를 선택합니다.
5단계에서는 소스 Neptune 노트북의 IAM 역할을 다시 사용합니다.
-
7단계 및 8단계 사이에서 다음을 수행합니다.
노트북 인스턴스 설정에서 해당
aws-neptune-*
형식을 사용하는 이름을 설정합니다.네트워크 설정 아코디언을 열고 소스 노트북과 동일한 , VPC서브넷 및 보안 그룹을 선택합니다.
새 노트북을 만든 후의 Neptune별 단계
노트북의 Jupyter 열기 버튼을 선택합니다.
SYNC_COMPLETE
파일이 기본 디렉터리에 표시되면 다음 단계로 진행합니다.SageMaker 콘솔의 노트북 인스턴스 페이지로 이동합니다.
노트북을 중지합니다.
[편집(Edit)]을 선택합니다.
노트북 인스턴스 설정에서 소스 Neptune 노트북의 원래 수명 주기를 선택하여 수명 주기 구성 필드를 편집합니다. 백업 EBS 수명 주기는 아닙니다.
노트북 설정 업데이트를 선택합니다.
노트북을 다시 시작합니다.
여기에 설명된 블로그 게시물에 설명된 단계를 수정하면 이제 그래프 노트북이 Amazon Linux 2 및 JupyterLab 3 환경을 사용하는 새 Neptune 노트북 인스턴스로 마이그레이션됩니다. 의 Neptune 페이지에 액세스 및 관리를 위해 표시 AWS Management Console되며 이제 Jupyter 열기 또는 열기를 JupyterLab 선택하여 중단한 위치에서 작업을 계속할 수 있습니다.