

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

# HTTPS REST 엔드포인트를 사용하여 Neptune DB 인스턴스에 연결
<a name="access-graph-gremlin-rest"></a>

Amazon Neptune은 Gremlin 쿼리용 HTTPS 엔드포인트를 제공합니다. REST 인터페이스는 DB 클러스터가 사용하는 모든 Gremlin 버전과 호환됩니다. 지원하는 Gremlin 릴리스를 확인하려면 실행 중인 Neptune 엔진 버전의 [엔진 릴리스 페이지](engine-releases.md)를 참조하세요.

**참고**  
[SSL/HTTPS를 사용하여 Amazon Neptune 데이터베이스에 대한 연결 암호화](security-ssl.md)에서 설명한 것처럼 이제 Neptune에서는 HTTP 대신 HTTPS를 사용하여 연결해야 합니다. 또한 Neptune은 현재 REST API 요청에 대해 HTTP/2를 지원하지 않습니다. 클라이언트는 엔드포인트에 연결할 때 HTTP/1.1을 사용해야 합니다.

다음은 `curl` 명령과 HTTPS를 사용하여 Gremlin 엔드포인트에 연결하는 방법입니다. 사용자의 Neptune DB 인스턴스와 동일한 Virtual Private Cloud(VPC)에 있는 Amazon EC2 인스턴스에서 이러한 지침을 따라야 합니다.

Neptune DB 인스턴스의 Gremlin 쿼리용 HTTPS 엔드포인트는 `https://{{your-neptune-endpoint}}:{{port}}/gremlin`입니다.

**참고**  
사용자의 Neptune DB 인스턴스 호스트 이름을 찾는 방법은 [Amazon Neptune 엔드포인트에 연결](feature-overview-endpoints.md) 섹션을 참조하세요.

## HTTP REST 엔드포인트를 사용하여 Neptune에 연결하려면
<a name="access-graph-gremlin-rest-connect"></a>

다음 예제에서는 REST 엔드포인트에 Gremlin 쿼리를 제출하는 방법을 보여줍니다. AWS SDK, AWS CLI또는를 사용할 수 있습니다**curl**.

------
#### [ AWS CLI ]

```
aws neptunedata execute-gremlin-query \
  --endpoint-url https://{{your-neptune-endpoint}}:{{port}} \
  --gremlin-query "g.V().limit(1)"
```

자세한 내용은 AWS CLI 명령 참조의 [execute-gremlin-query](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/execute-gremlin-query.html)를 참조하세요.

------
#### [ SDK ]

```
import boto3
import json
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    endpoint_url='https://{{your-neptune-endpoint}}:{{port}}',
    config=Config(read_timeout=None, retries={'total_max_attempts': 1})
)

response = client.execute_gremlin_query(
    gremlinQuery='g.V().limit(1)',
    serializer='application/vnd.gremlin-v3.0+json;types=false'
)

print(json.dumps(response['result'], indent=2))
```

Java, .NET 등과 같은 다른 언어의 AWS SDK 예제는 섹션을 참조하세요[AWS SDK](access-graph-gremlin-sdk.md).

------
#### [ awscurl ]

```
awscurl https://{{your-neptune-endpoint}}:{{port}}/gremlin \
  --region {{us-east-1}} \
  --service neptune-db \
  -X POST \
  -d '{"gremlin":"g.V().limit(1)"}'
```

**참고**  
이 예제에서는 자격 AWS 증명이 환경에 구성되어 있다고 가정합니다. {{us-east-1}}을 Neptune 클러스터의 리전으로 바꿉니다.

IAM 인증과 **awscurl** 함께를 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요[임시 보안 인증 정보와 `awscurl`을 사용하여 IAM 인증이 활성화된 상태에서 DB 클러스터에 안전하게 연결](iam-auth-connect-command-line.md#iam-auth-connect-awscurl).

------
#### [ curl ]

다음 예에서는 **curl**을 사용하여 HTTP **POST**를 통해 Gremlin 쿼리를 제출합니다. 쿼리는 `gremlin` 속성으로 post 본문에서 JSON 형식으로 제출됩니다.

```
curl -X POST -d '{"gremlin":"g.V().limit(1)"}' https://{{your-neptune-endpoint}}:{{port}}/gremlin
```

Gremlin 쿼리를 보낼 때는 HTTP **POST** 요청을 사용하는 것이 좋지만, HTTP **GET** 요청을 사용할 수도 있습니다.

```
curl -G "https://{{your-neptune-endpoint}}:{{port}}?gremlin=g.V().count()"
```

------

이 예제에서는 `g.V().limit(1)` 순회를 사용하여 그래프의 첫 번째 버텍스를 반환합니다. 이를 다른 Gremlin 순회로 대체하여 다른 항목을 쿼리할 수 있습니다.

**중요**  
기본적으로 REST 엔드포인트는 단일 JSON 결과 세트의 모든 결과를 반환합니다. 이 결과 세트가 너무 크면 Neptune DB 인스턴스에서 `OutOfMemoryError` 예외가 발생할 수 있습니다.  
청크 응답(결과가 일련의 개별 응답으로 반환됨)을 활성화하면 이를 방지할 수 있습니다. [선택적 HTTP 후행 헤더를 사용하여 여러 부분으로 구성된 Gremlin 응답 활성화](access-graph-gremlin-rest-trailing-headers.md)을(를) 참조하세요.

**참고**  
Neptune은 `bindings` 속성을 지원하지 않습니다.