Amazon Neptune のサーバーレスの使用 - Amazon Neptune

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

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 サーバーレスインスタンスの容量と使用率をモニタリングできます。クラスターレベルとインスタンスレベルの両方で現在のサーバーレス容量を追跡できる CloudWatch メトリクスは 2 つあります。

  • 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