

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Neptune のサーバーレスの使用
<a name="neptune-serverless-using"></a>

新しい Neptune DB クラスターをサーバーレスクラスターとして作成することも、場合によっては既存の DB クラスターをサーバーレスを使用するように変換することもできます。サーバーレス DB クラスター内の DB インスタンスをサーバーレスインスタンスに変換したり、サーバーレスインスタンスから変換したりすることもできます。Neptune Serverless は、サポートされている のいずれかでのみ使用できます AWS リージョン が、その他の制限もあります (「」を参照[Amazon Neptune サーバーレスの制約](neptune-serverless.md#neptune-serverless-limitations))。

[Neptune CloudFormation スタック](get-started-cfn-create.md)を使用して Neptune サーバーレス DB クラスターを作成することもできます。

## サーバーレスを使用する新しい DB クラスターの作成
<a name="neptune-serverless-create"></a>

サーバーレスを使用する Neptune DB クラスターを作成するには、[AWS マネジメントコンソールを使用して](manage-console-launch-console.md)、プロビジョニングされたクラスターを作成するのと同じ方法で作成できます。違いは、**DB インスタンスサイズ**未満では、**DB インスタンスクラス**を**サーバーレス**に設定する必要がある点です。その場合は、クラスターの[サーバーレス容量範囲を設定する](neptune-serverless-capacity-scaling.md)必要があります。

また、次のようなコマンド AWS CLI で を使用してサーバーレス DB クラスターを作成することもできます (Windows では、'" を '^' に置き換えます）。

```
aws neptune create-db-cluster \
  --region (an AWS リージョン region that supports serverless) \
  --db-cluster-identifier (ID for the new serverless DB cluster) \
  --engine neptune \
  --engine-version (optional: 1.2.0.1 or above) \
  --serverless-v2-scaling-configuration "MinCapacity=1.0, MaxCapacity=128.0"
```

次のように `serverless-v2-scaling-configuration` パラメータを指定することもできます。

```
  --serverless-v2-scaling-configuration '{"MinCapacity":1.0, "MaxCapacity":128.0}'
```

その後、`ServerlessV2ScalingConfiguration` 属性に対して `describe-db-clusters` コマンドを実行すると、指定した容量範囲設定が返されます。

```
"ServerlessV2ScalingConfiguration": {
    "MinCapacity": (the specified minimum number of NCUs),
    "MaxCapacity": (the specified maximum number of NCUs)
}
```

## 既存の DB クラスターまたはインスタンスをサーバーレスに変換する
<a name="neptune-conversion-to-serverless"></a>

エンジンバージョン 1.2.0.1 以降を使用している Neptune DB クラスターがある場合は、サーバーレスに変換できます。このプロセスでは、ある程度のダウンタイムが発生します。

最初のステップは、既存のクラスターに容量範囲を追加することです。これを行うには AWS マネジメントコンソール、 を使用するか、次のような AWS CLI コマンドを使用します (Windows では、'" を '^' に置き換えます）。

```
aws neptune modify-db-cluster \
  --db-cluster-identifier (your DB cluster ID) \
  --serverless-v2-scaling-configuration \
      MinCapacity=(minimum number of NCUs, such as  2.0), \
      MaxCapacity=(maximum number of NCUs, such as 24.0)
```

次のステップは、クラスター内の既存のプライマリインスタンス (ライター) を置き換える新しいサーバーレス DB インスタンスを作成することです。ここでも、 AWS マネジメントコンソール または を使用して、これと以降のすべてのステップを実行できます AWS CLI。どちらの場合も、DB インスタンスクラスをサーバーレスとして指定します。 AWS CLI コマンドは次のようになります (Windows では、'" を '^' に置き換えます）。

```
aws neptune create-db-instance \
  --db-instance-identifier (an instance ID for the new writer instance) \
  --db-cluster-identifier (ID of the DB cluster) \
  --db-instance-class db.serverless \
  --engine neptune
```

新しいライターインスタンスが使用可能になったら、フェイルオーバーを実行してクラスターのライターインスタンスにします。

```
aws neptune failover-db-cluster \
  --db-cluster-identifier (ID of the DB cluster) \
  --target-db-instance-identifier (instance ID of the new serverless instance)
```

次に、古いライターインスタンスを削除します。

```
aws neptune delete-db-instance \
  --db-instance-identifier (instance ID of the old writer instance) \
  --skip-final-snapshot
```

最後に、同じ操作を行って、サーバーレスインスタンスにしたい既存のプロビジョニング済みリーダーインスタンスの代わりになる新しいサーバーレスインスタンスを作成し、既存のプロビジョニング済みインスタンスを削除します (リーダーインスタンスにはフェイルオーバーは必要ありません)。

## 既存のサーバーレス DB クラスターの容量範囲の変更
<a name="neptune-modify-capacity-range"></a>

Neptune サーバーレス DB クラスターの容量範囲は、次のように AWS CLI を使用して変更できます（Windows では、「\$1」を「^」に置き換えます）。

```
aws neptune modify-db-cluster \
  --region (an AWS region that supports serverless) \
  --db-cluster-identifier (ID of the serverless DB cluster) \
  --apply-immediately \
  --serverless-v2-scaling-configuration MinCapacity=4.0, MaxCapacity=32
```

容量範囲を変更することで、一部の設定パラメータのデフォルト値が変更されます。Neptune は、一部の新しいデフォルトを直ちに適用できますが、一部の動的パラメータの変更は、再起動後に有効になります。`pending-reboot` ステータスは、一部のパラメータの変更を適用するために再起動が必要であることを示しています。

## サーバーレス DB インスタンスをプロビジョニング済みに変更する
<a name="neptune-conversion-to-provisioned"></a>

Neptune サーバーレスインスタンスをプロビジョニングされたインスタンスに変換するには、そのインスタンスクラスをプロビジョニングされたインスタンスクラスのいずれかに変更するだけです。「[Neptune DB インスタンスを変更する (その後すぐに適用する)](manage-console-instances-modify.md)」を参照してください。

## Serverless 用の Gremlin クライアントの設定
<a name="neptune-serverless-client-config"></a>

Neptune Serverless で Gremlin WebSocket クライアントを使用する場合は、スケーリングイベント中に安定した接続を維持するために、クライアントのハートビート間隔を適切に設定する必要があります。Java、Go、JavaScript/Node.js、Python クライアントの詳細な設定手順については、「」を参照してください[Neptune サーバーレスのハートビート設定](best-practices-gremlin-heartbeat-serverless.md)。

## Amazon CloudWatch でサーバーレス容量を監視する
<a name="neptune-serverless-monitoring"></a>

CloudWatch を使用して、DB クラスター内の Neptune サーバーレスインスタンスの容量と使用率をモニタリングできます。2 つの CloudWatch メトリクスがあり、現在のサーバーレス容量をクラスターレベルとインスタンスレベルの両方で追跡できます。
+ **`ServerlessDatabaseCapacity`** — インスタンスレベルのメトリクスとして、`ServerlessDatabaseCapacity` は現在のインスタンス容量を NCU 単位で報告します。クラスターレベルのメトリクスとして、クラスター内のすべての DB インスタンスの `ServerlessDatabaseCapacity` 値の平均を報告します。
+ **`NCUUtilization`** — このメトリクスは、使用中の容量のパーセンテージを報告します。これは、現在の `ServerlessDatabaseCapacity` (インスタンスレベルまたはクラスターレベルで) を DB クラスターの最大容量設定で割って計算されます。

  このメトリクスがクラスターレベルで 100% に近づいた場合、つまりクラスターが可能な限り大きくスケーリングされた場合は、最大容量設定を増やすことを検討してください。

  ライターインスタンスが最大容量に近づいていないのに、リーダーインスタンスが 100% に近づいている場合は、リーダーインスタンスをさらに追加して読み取りワークロードを分散することを検討してください。

サーバーレスインスタンスとプロビジョニングされたインスタンスでは、`CPUUtilization` および `FreeableMemory` メトリクスの意味が少し異なることに注意してください。サーバーレスでは、`CPUUtilization` は、現在の CPU の使用量を、最大容量で使用可能な CPU の量で割った割合です。同様に、`FreeableMemory` は、インスタンスの容量が最大になった場合に使用可能な空きメモリの量を報告します。

次の例は、Linux AWS CLI で を使用して、1 時間にわたって 10 分ごとに測定される特定の DB インスタンスの最小、最大、平均容量値を取得する方法を示しています。Linux の `date` コマンドでは、現在の日付と時刻を基準にして開始時刻と終了時刻を指定します。`--query` パラメータの `sort_by` 関数は、`Timestamp` フィールドに基づいて結果を時系列でソートします。

```
aws cloudwatch get-metric-statistics \
  --metric-name "ServerlessDatabaseCapacity" \
  --start-time "$(date -d '1 hour ago')" \
  --end-time "$(date -d 'now')" \
  --period 600 \
  --namespace "AWS/Neptune"
  --statistics Minimum Maximum Average \
  --dimensions Name=DBInstanceIdentifier,Value=(instance ID) \
  --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
  --output table
```