DB シャードグループにルーターを追加する
DB シャードグループにルーターを追加できます。
前提条件
ルーターの追加には、次の前提条件があります。
-
DB シャードグループが必要です。
-
ユーザーには
rds_aurora_limitless_cluster_admin
権限が必要です。rds_superuser
にはこの権限があるため、マスターユーザーにも権限があります。rds_superuser
は、他のユーザーに権限を付与できます。/* Logged in as the master user or a user with rds_superuser privileges */ CREATE USER
username
; GRANT rds_aurora_limitless_cluster_admin tousername
;注記
DB シャードグループの作成後に AWS アカウントのデフォルト CA 証明書を変更すると、新しいルーターは新しい CA 証明書を使用します。これは既存のルーターの CA 証明書とは異なります。トラストストアによっては、一部の接続が失敗することがあります。
-
システム開始のルーターの追加を有効にするには、DB クラスターに関連付けられたカスタムの DB クラスターパラメータグループに次の DB クラスターパラメータを設定します。
パラメータ 値 rds_aurora.limitless_enable_auto_scale
on
rds_aurora.limitless_auto_scale_options
add_router
またはadd_router,split_shard
。詳細については、「Amazon Aurora DB クラスターの DB クラスターパラメータグループ」を参照してください。
ルーターの追加
ルーターを追加するには、rds_aurora.limitless_add_router
関数を使用します。この関数は、非同期的に実行されるルーター追加ジョブを開始します。
SELECT rds_aurora.limitless_add_router();
ジョブが正常に送信されたら、ジョブ ID が返されるまで待ちます。次に例を示します。
job_id --------------- 1691300000000 (1 row)
注記
同時ルーター追加オペレーションはサポートされていません。オペレーションを順番に実行し、各オペレーションを完了してから別の追加オペレーションを開始します。
ルーターの追加の追跡
ジョブ ID を使用して、ルーター追加ジョブを追跡できます。特定のジョブを記述して詳細を取得するには、次のクエリを実行します。
SELECT * FROM rds_aurora.limitless_list_router_scale_jobs(
job_id
);
例:
SELECT * FROM rds_aurora.limitless_list_router_scale_jobs(1691300000000); job_id | action | job_details | status | submission_time | message ---------------+------------+--------------------------+---------+------------------------+------------------------------------------- 1691300000000 | ADD_ROUTER | Add 1 new Router by User | SUCCESS | 2023-08-06 05:33:20+00 | Scaling job succeeded. + | | | | | New router instance with ID 7 was created. (1 row)
存在しないジョブを入力として渡すと、クエリはエラーを返します。
SELECT * from rds_aurora.limitless_list_router_scale_jobs(1691300000001); ERROR: no job found with the job ID provided
ジョブ ID なしで同じクエリを使用して、すべてのルーター追加ジョブのステータスを追跡できます。次に例を示します。
SELECT * FROM rds_aurora.limitless_list_router_scale_jobs(); job_id | action | job_details | status | submission_time | message ---------------+------------+--------------------------+-------------+------------------------+------------------------------------------- 1691200000000 | ADD_ROUTER | Add 1 new Router by User | IN_PROGRESS | 2023-08-05 01:46:40+00 | 1691300000000 | ADD_ROUTER | Add 1 new Router by User | SUCCESS | 2023-08-06 05:33:20+00 | Scaling job succeeded. + | | | | | New router instance with ID 7 was created. 1691400000000 | ADD_ROUTER | Add 1 new Router by User | FAILED | 2023-08-07 09:20:00+00 | Error occurred for the add router job 1691400000000. | | | | | Retry the command. If the issue persists, contact AWS Support. 1691500000000 | ADD_ROUTER | Add 1 new Router by User | CANCELED | 2023-08-07 09:20:00+00 | Scaling job was cancelled. (4 rows)
ジョブステータスは以下のいずれかになります。
-
IN_PROGRESS
– ルーター追加ジョブが送信され、進行中です。一度に進行中のジョブは 1 つだけです。 -
CANCELLATION_IN_PROGRESS
– ルーター追加ジョブはユーザーによってキャンセルされています。 -
CANCELED
– ルーター追加ジョブは、ユーザーまたはシステムによって正常にキャンセルされました。 -
SUCCESS
– ルーター追加ジョブが正常に完了しました。message
フィールドには、新しいルーターのインスタンス ID が含まれます。 -
FAILED
– ルーター追加ジョブが失敗しました。message
フィールドには、失敗の詳細と、失敗したジョブのフォローアップとして実行できるアクションが含まれます。
注記
ルーターの追加を確定する必要がないため、PENDING
ステータスはありません。ダウンタイムは発生しません。
ルーターの追加のキャンセル
IN_PROGRESS
のルーターの追加をキャンセルできます。キャンセルするにはジョブ ID が必要です。
SELECT * from rds_aurora.limitless_cancel_router_scale_jobs(
job_id
);
エラーがない限り、出力は返されません。ジョブ追跡クエリを使用してキャンセルを追跡できます。