間近に迫った短期的なビジネスのピークや、インデックスの変更などのデータベーススキーマの変更に備えるために、本番トラフィック再現によるストレステスト機能を使用できます。この機能は、データベースインスタンスにスケールアウトが必要かどうかを判断し、実際のビジネスシナリオでのパフォーマンスを検証するのに役立ちます。このプラクティスにより、変更がデプロイされた後の障害のリスクが軽減されます。さらに、データベースに障害が発生し、原因を特定できない場合は、クローンデータベースを使用して障害シナリオを再現し、原因をより正確に特定できます。
前提条件
サポートされるソースデータベース:
RDS MySQL
PolarDB for MySQL
説明PolarDB for MySQL Enterprise Edition の single-node インスタンスはサポートされていません。
サポートされる宛先データベースインスタンス:
RDS MySQL。
PolarDB for MySQL。
PolarDB-X 2.0。
ソースデータベースインスタンスと宛先データベースインスタンスが DAS に接続されています。詳細については、「Alibaba Cloud データベースインスタンスを DAS に接続する」をご参照ください。
ソースデータベースインスタンスで DAS Enterprise Edition V1 以降が有効になっており、SQL Explorer 機能が有効になっています。
宛先データベースインスタンスで DAS Enterprise Edition V1 以降が有効になっており、SQL Explorer 機能が有効になっています。ログインデックスのストレージ期間は 7 日間です。
シナリオ
ピーク時のワークロードを処理するために、データベースインスタンスをスケールアップまたはスケールアウトする必要があるかどうかを確認します。
データベースのスキーマ、特にインデックスが変更された後、実際のビジネスシナリオでデータベースのパフォーマンスをチェックして、障害のリスクを軽減します。
データベース障害が発生した後、この機能を使用してソースデータベースのクローンデータベースで障害を再現し、障害の原因を特定します。
使用上の注意
ストレステストに対するネットワーク遅延の影響を軽減するには、ストレステストクライアントと宛先インスタンスを同じリージョンにデプロイします。
説明ストレステストクライアントと宛先インスタンスを同じ VPC (VPC) にデプロイすることをお勧めします。
ストレステストを実行する前に、ストレステストクライアントと宛先インスタンス間の接続性を確認してください。クライアントから宛先インスタンスにトラフィックを送信できることを確認してください。
課金
DAS Enterprise Edition の料金の詳細については、「課金」をご参照ください。
ストレステストタスクを作成すると、次の項目が課金されます。
データ移行に [バックアップによる復元] メソッドを選択した場合、システムは選択した宛先データベースタイプに基づいて従量課金データベースインスタンスを自動的に作成します。システムはまた、新しいインスタンスに対して最新の DAS Enterprise Edition を有効にします。これには、SQL ログの 30 日間のストレージ期間とログインデックスの 7 日間のストレージ期間が含まれます。
詳細設定 セクションで DAS 自動購入および自動デプロイ を選択すると、システムは適切なインスタンスタイプの従量課金 ECS インスタンスを購入します。インスタンスタイプは、ソースデータベースのクエリ/秒 (QPS) とストレステストのレートによって決まります。料金の詳細については、「ECS 課金の概要」をご参照ください。
説明システムは従量課金インスタンスを購入するため、ストレステストタスクが終了したら、不要な課金を避けるために手動で削除する必要があります。
手順
DAS コンソールにログインします。
[本番トラフィック再現によるストレステスト] ページに移動します。
次のいずれかの方法で [本番トラフィック再現によるストレステスト] ページに移動できます。
左側のナビゲーションウィンドウで、[ツールボックス] > [本番トラフィック再現によるストレステスト] をクリックします。
インスタンス詳細ページからページに移動します。
左側のナビゲーションウィンドウで、[オペレーションセンター] > [インスタンスモニタリング] をクリックします。
ターゲットインスタンスを見つけ、インスタンス ID をクリックして、インスタンス詳細ページに移動します。
左側のナビゲーションウィンドウで、リクエスト分析 > SQL Explorer and Audit をクリックします。次に、表示されたページで トラフィック再生とストレステスト をクリックします。
タスクリストページで、右上隅にある タスクの作成 をクリックします。
タスクの作成 ダイアログボックスで、次のパラメーターを設定します。
タスクタイプ を [クラウドインスタンスの再生] に設定し、タスク名 を入力します。
移行元情報 セクションで、次のパラメーターを設定し、[次へ] をクリックします。
設定
説明
インスタンスソース
宛先インスタンスのソースとして Alibaba Cloud データベース を選択します。
データベースエンジン
データベースインスタンスのタイプ。次のいずれかを選択します。
[MySQL]: RDS MySQL インスタンス。
[PolarDB For MySQL]: PolarDB for MySQL インスタンス。
移行元インスタンス
移行元インスタンス のインスタンス ID を選択します。
詳細設定
[バッチストレステスト]
準備フェーズが完了するとタスクは一時停止します。タスクリストで複数のタスクを選択して、同時にストレステストを開始できます。
[SQL タイプ]
テストする SQL タイプを 1 つ以上選択します。
[データベースアカウント]、[パスワード]
ソースデータベースのアカウントとパスワード。
説明[データベースの取得] をクリックしてデータベースリストを取得します。すべてのデータベースでストレステストを実行する場合は、何も選択する必要はありません。特定のデータベースをテストする場合は、最大 5 つのデータベースを選択できます。
移行先データベースのスキーマとデータの生成方法 セクションで、次のパラメーターを設定します。
設定
説明
データベースエンジン
宛先データベースインスタンスのタイプ。次のタイプがサポートされています。
[MySQL]: RDS MySQL インスタンス。
[PolarDB For MySQL]: PolarDB for MySQL インスタンス。
[PolarDB-X]: PolarDB-X 2.0 インスタンス。
説明PolarDB-X 2.0 は、中国 (杭州)、中国 (上海)、中国 (北京)、中国 (深圳)、およびシンガポールリージョンでのみサポートされています。
ベンチマークデータの移行
ソースインスタンスのベンチマークデータが宛先インスタンスに移行されたかどうかに基づいて、次の 4 つの移行方法のいずれかを選択します。
バックアップによる復元: 宛先インスタンスは、特定の時点またはバックアップセットに基づいてソースインスタンスをクローンします。
説明DAS は、ソースインスタンスと同じインスタンスタイプの従量課金インスタンスを自動的に購入し、バックアップを新しいインスタンスに復元します。
データ移行が完了しました: トラフィック再生期間内のソースインスタンスのテーブルスキーマとデータが宛先インスタンスに同期されました。
説明ストレステストのトラフィックが期待どおりに実行されるように、宛先インスタンスのテーブルスキーマとデータはソースインスタンスと一致している必要があります。
DTS タスク ID を入力してください: ソースインスタンスから宛先インスタンスにデータを同期するために、DTS コンソールでデータ移行タスクが作成されました。
説明DTS データ移行の詳細については、「データ移行」をご参照ください。
DTS 移行タスクの作成: DTS コンソールに移動せずに、データ移行タスクを直接作成します。
説明ソースインスタンスが Alibaba Cloud データベースの場合は、4 つの方法のいずれかを選択します。[バックアップによる復元] を選択することをお勧めします。ストレステストタスクが作成されると、システムはソースデータベースと同じインスタンスタイプの従量課金インスタンスを自動的に購入し、そのインスタンスにデータを復元します。
ソースインスタンスが自己管理データベースの場合は、データ移行が完了しました、DTS タスク ID を入力してください、または DTS 移行タスクの作成 のみを選択できます。
復元モード
復元方法を選択します。必要に応じて、次のいずれかの方法を選択できます。
時点別
バックアップセット別
説明このパラメーターは、ベンチマークデータの移行 が [バックアップによる復元] に設定されている場合に必要です。
復元モード を バックアップセット別 に設定した場合は、[DAS サービスにリンクされたロール] に権限を付与する必要があります。表示されるダイアログボックスで、[OK] をクリックします。
[復元時間の選択]/[バックアップセット]
復元モード に基づいて、復元する特定の時間またはバックアップセットを選択します。
説明このパラメーターは、ベンチマークデータの移行 が [バックアップによる復元] に設定されている場合に必要です。
移行タスク ID
ソースインスタンスから宛先インスタンスにデータを同期する DTS データ移行タスクの ID。
説明このパラメーターは、ベンチマークデータの移行 が DTS タスク ID を入力してください に設定されている場合に必要です。
DTS 移行タスクの仕様
DTS 移行タスクの仕様を選択します。
説明このパラメーターは、ベンチマークデータの移行 が DTS 移行タスクの作成 に設定されている場合に必要です。
移行先インスタンス
宛先インスタンスを選択します。システムは、デフォルトで宛先インスタンスのプライマリエンドポイントにアクセスします。
説明このパラメーターは、ベンチマークデータの移行 が データ移行が完了しました、DTS タスク ID を入力してください、または DTS 移行タスクの作成 に設定されている場合に必要です。
移行先インスタンスの特権アカウント
宛先インスタンスの特権アカウントの名前とパスワード。
説明このパラメーターは、ベンチマークデータの移行 が データ移行が完了しました、DTS タスク ID を入力してください、または DTS 移行タスクの作成 に設定されている場合に必要です。
移行元インスタンスの特権アカウント
ソースインスタンスの特権アカウントの名前とパスワード。
説明このパラメーターは、ベンチマークデータの移行 が [バックアップによる復元] または DTS 移行タスクの作成 に設定されている場合に必要です。
ストレステストの基本設定 セクションで、次のパラメーターを設定します。
設定
説明
再生トラフィックを選択してください
トラフィック再生の期間を選択します。
説明この期間中、ソースインスタンスで SQL Explorer と監査機能を有効にする必要があります。
再生速度
ソースインスタンスからのトラフィックが宛先インスタンスで再生されるレート。たとえば、値 1 は元の速度を示します。再生レートは 1 から 10 までの正の整数である必要があります。
説明設定した再生速度が宛先インスタンスタイプでサポートされている最大速度を超えると、ストレステストタスクはサポートされている最大速度で実行されます。
詳細設定 セクションで、ストレステストプログラムをデプロイする ECS パラメーターを設定します。
DAS 自動購入および自動デプロイ を選択できます。システムは、ソースデータベースの QPS とストレステストのレートに基づいて、適切なインスタンスタイプの従量課金 ECS インスタンスを購入します。
または、[追加] をクリックして、ストレステストプログラムをデプロイするための既存の ECS インスタンスを選択することもできます。次に、デプロイメントコマンドを生成し、インスタンスにコピーして実行します。また、選択した ECS インスタンスで
sudo yum install -y java-1.8.0-openjdkコマンドを実行して Java クライアントをデプロイする必要もあります。Java 8 を使用することをお勧めします。
[次へ] をクリックします。
検証が成功したら、[OK] をクリックしてストレステストタスクを作成します。
本番トラフィック再現によるストレステストの結果を表示する
ストレステストタスクが作成されたら、タスクリストページに戻って詳細を表示します。
右側の [アクション] 列で、次の操作を実行できます。
[詳細] をクリックして インテリジェントストレステストの詳細 ページに移動し、ストレステストタスクの実行ステータスとレポートを表示できます。
ストレステストタスクを早期に終了するには、[終了] をクリックします。
[削除] をクリックして、ストレステストタスクを削除します。
次のステップ
ストレステストタスクが完了したら、インテリジェントストレステストの詳細 ページに移動します。別のテストを実行する必要がない場合は、対応する ECS インスタンスとデータベースインスタンスをリリースして、不要な課金を回避します。
ソースデータベースの [SQL Explorer と監査] 機能をを手動で有効にした場合は、ストレステストの完了後に無効にして、不要な課金を回避します。詳細については、「SQL Explorer と監査を無効にする」をご参照ください。
間近に迫った短期的なビジネスピークに備えてデータベースインスタンスをスケールアウトするには、インスタンスタイプに基づいて 自動パフォーマンススケーリング または スケジュールされた Auto Scaling を有効にします。
リファレンス
詳細については、「本番トラフィック再現に関するよくある質問とエラーコード」をご参照ください。