翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Neptune のサーバーレスの使用
新しい Neptune DB クラスターをサーバーレスクラスターとして作成することも、場合によっては既存の DB クラスターをサーバーレスを使用するように変換することもできます。サーバーレス DB クラスター内の DB インスタンスをサーバーレスインスタンスに変換したり、サーバーレスインスタンスから変換したりすることもできます。Neptune Serverless は、サポートされている の 1 つでのみ使用できますが、その他の制限もあります ( AWS リージョン 「」を参照Amazon Neptune サーバーレスの制約)。
Neptune AWS CloudFormation スタックを使用して Neptune サーバーレス DB クラスターを作成することもできます。
サーバーレスを使用する新しい DB クラスターの作成
サーバーレスを使用する Neptune DB クラスターを作成するには、AWS Management Consoleを使用して、プロビジョニングされたクラスターを作成するのと同じ方法で作成できます。違いは、DB インスタンスサイズ未満では、DB インスタンスクラスをサーバーレスに設定する必要がある点です。その場合は、クラスターのサーバーレス容量範囲を設定する必要があります。
次のようなコマンド 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 クラスターまたはインスタンスをサーバーレスに変換する
エンジンバージョン 1.2.0.1 以降を使用している Neptune DB クラスターがある場合は、サーバーレスに変換できます。このプロセスでは、ある程度のダウンタイムが発生します。
最初のステップは、既存のクラスターに容量範囲を追加することです。これを行うには AWS Management Console、 を使用するか、次のような 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 Management Console または を使用して、これと以降のすべてのステップを実行できます 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 クラスターの容量範囲の変更
Neptune サーバーレス DB クラスターの容量範囲は、次のように AWS CLI を使用して変更できます(Windows では、「\」を「^」に置き換えます)。
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 インスタンスをプロビジョニング済みに変更する
Neptune サーバーレスインスタンスをプロビジョニングされたインスタンスに変換するには、そのインスタンスクラスをプロビジョニングされたインスタンスクラスのいずれかに変更するだけです。「Neptune DB インスタンスを変更する (その後すぐに適用する)」を参照してください。
Amazon CloudWatch でサーバーレス容量を監視する
CloudWatch を使用して、DB クラスター内の Neptune サーバーレスインスタンスの容量と使用率をモニタリングできます。2 つの CloudWatch メトリクスがあり、現在のサーバーレス容量をクラスターレベルとインスタンスレベルの両方で追跡できます。
-
ServerlessDatabaseCapacity
— インスタンスレベルのメトリクスとして、ServerlessDatabaseCapacity
は現在のインスタンス容量を NCU 単位で報告します。クラスターレベルのメトリクスとして、クラスター内のすべての DB インスタンスのServerlessDatabaseCapacity
値の平均を報告します。 -
NCUUtilization
— このメトリクスは、使用中の容量のパーセンテージを報告します。これは、現在のServerlessDatabaseCapacity
(インスタンスレベルまたはクラスターレベルで) を DB クラスターの最大容量設定で割って計算されます。このメトリクスがクラスターレベルで 100% に近づいた場合、つまりクラスターが可能な限り大きくスケーリングされた場合は、最大容量設定を増やすことを検討してください。
ライターインスタンスが最大容量に近づいていないのに、リーダーインスタンスが 100% に近づいている場合は、リーダーインスタンスをさらに追加して読み取りワークロードを分散することを検討してください。
サーバーレスインスタンスとプロビジョニングされたインスタンスでは、CPUUtilization
および FreeableMemory
メトリクスの意味が少し異なることに注意してください。サーバーレスでは、CPUUtilization
は、現在の CPU の使用量を、最大容量で使用可能な CPU の量で割った割合です。同様に、FreeableMemory
は、インスタンスの容量が最大になった場合に使用可能な空きメモリの量を報告します。
次の例は、Linux AWS CLI で を使用して、特定の DB インスタンスの最小容量、最大容量、平均容量の値を取得する方法を示しています。10 分ごとに 1 時間測定されます。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