DB シャードグループにルーターを追加する - Amazon Aurora

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 to username;
    注記

    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);

エラーがない限り、出力は返されません。ジョブ追跡クエリを使用してキャンセルを追跡できます。