View a markdown version of this page

Aurora Serverless Scaling 実行ブロック - Amazon Application Recovery Controller (ARC)

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

Aurora Serverless Scaling 実行ブロック

カテゴリ: データベーススケーリング

リージョンの切り替え中、宛先 Aurora Serverless クラスターの ACU (Aurora キャパシティユニット) 設定が、本番トラフィックを吸収するために必要な設定をはるかに下回る場合があります。Aurora Serverless Scaling 実行ブロックは、ソースクラスターの実際の使用状況に基づいて、正しい最小 ACU 容量と最大 ACU 容量を自動的に計算して送信先クラスターに適用し、サーバーレスデータベースがスロットリングや接続障害なしで受信ワークロードを処理できるようにします。

主な利点

  • 使用量ベースの容量計算: リージョンスイッチは、静的設定に依存するのではなく、ソースクラスターの過去 24 時間の実際のピーク使用率からターゲット容量を取得し、実際のトラフィックパターンに基づいて適切なサイズの容量を提供します。

  • Cross-engine-typeインテリジェンス: ソースがサーバーレス、プロビジョンド、ハイブリッド設定のいずれであっても、リージョンスイッチはソース容量を送信先サーバーレスクラスターの適切な ACU 設定に変換する方法を理解しています。

  • アクティブ/アクティブのパーセンテージベースのスケーリング: 送信先が両方のリージョンからの結合トラフィックを吸収する必要があるアクティブ/アクティブアーキテクチャのターゲットパーセンテージを 100% 以上 (200%) に設定します。

どのようなときに使うか

  • サーバーレススタンバイを使用したアクティブ/パッシブ: 送信先リージョンは最小限の ACUs、本番トラフィックを受信する前にスケールアップする必要があります。

  • アクティブ/アクティブフェイルオーバー: 両方のリージョンがトラフィックを処理し、切り替え中に残りのリージョンが結合負荷を処理する必要があります。100% を超えるターゲットパーセンテージを使用します。

  • 混合エンジングローバルデータベース: ソースリージョンはプロビジョニングされたインスタンスを使用しますが、送信先はサーバーレスを使用します。リージョンスイッチは容量変換を自動的に処理します。

Aurora Serverless Scaling と代替方法の比較

この実行ブロックがない場合、トラフィックを切り替える前に ACU 要件を手動で計算し、クラスター設定を変更する必要があります。特に送信元と送信先が異なるエンジンタイプを使用している場合、複雑でエラーが発生しやすいプロセスです。

アプローチ 長所 短所
1 Aurora Serverless Scaling ブロック 実際の使用状況からの自動計算、クロスエンジン翻訳の処理、パーセンテージベースの制御、計画オーケストレーションとの統合 スケールアップのみ。IaC からドリフトする可能性のある ACU 設定を変更する
2 手動 ACU 調整 フルコントロール 圧力下で ACU 同等値を計算する必要がある、低速、エラーが発生しやすい
3 スクリプトによる自動化 カスタマイズ可能 クロスエンジン変換ロジックをレプリケートする必要があります。計画評価はありません。メンテナンスの負担
4 事前プロビジョニング (最大 ACU は常に高い) フェイルオーバーの遅延なし 高価、サーバーレスのコストメリットを打ち負かす、スタンバイリージョンで無駄になる

Aurora Serverless Scaling ブロックは、クロスエンジン ACU 変換の複雑さを処理する使用量を考慮した自動キャパシティスケーリングが必要な場合に適しています。

仕組み

Aurora Serverless Scaling 実行ブロックを設定すると、リージョンスイッチは、指定されたグローバルデータベースに 1 つのソースクラスターと 1 つの送信先クラスターがあることを確認します。ターゲット容量は、ソースクラスタータイプに基づいて決定されます。

  • ソースはサーバーレスです。

    • 最小 ACU = 過去 24 時間におけるソースクラスターの観測されたピーク ACU 使用率 (ServerlessDatabaseCapacityCloudWatch メトリクス)

    • 最大 ACU = 過去 24 時間のソースクラスターの最大 ACU のピーク

  • ソースはプロビジョニングされています。

    • ソースクラスターの EC2 インスタンスメモリを同等の ACUs (GiB ÷ 2 のインスタンスメモリ) にマッピングします。

    • 最大 ACU を 256 に設定します

  • ソースはハイブリッド (プロビジョンド + サーバーレス):

    • 最小 ACU = プロビジョニングされたインスタンス ACU に相当する最大数と、24 時間にわたって観測されたサーバーレス ACU 使用率

    • 最大 ACU = 256

次に、リージョンスイッチはターゲットパーセンテージを適用して最終値を計算します。

destination min ACU = round_to_nearest_0.5(targetPercent × source min ACU) destination max ACU = round_to_nearest_0.5(targetPercent × source max ACU)

送信先クラスターの現在の容量が既に計算されたターゲット以上である場合、リージョンスイッチは変更を加えずにステップを完了します。リージョンスイッチはクラスター容量をスケールダウンしません。送信先クラスターがサーバーレスでない場合、ブロックは no-op として正常に完了します。

アクティブ/アクティブプランの場合、リージョンスイッチは他の設定済みリージョンをソースとして使用します。リージョンが非アクティブ化されている場合、リージョンスイッチは他のアクティブなリージョンをソースとして使用して、スケーリングする割合を計算します。

注記

このブロックを実行すると、Aurora Serverless クラスターの最小 ACU 容量と最大 ACU 容量の設定が変更されるため、infrastructure-as-code ツールやその他のオートメーションを使用してこれらの値を管理すると、設定ドリフトが発生する可能性があります。意図しないロールバックを防ぐために、設定管理プロセスでこれらの変更が考慮されていることを確認してください。

設定

Aurora Serverless Scaling 実行ブロックを設定するときは、Aurora Global Database のグローバルクラスター識別子と、計画の実行中にスケールアップする各リージョンのデータベースクラスター ARNs を入力します。

重要

実行ブロックを設定する前に、プランの実行ロールに正しい IAM ポリシーが設定されていることを確認してください。詳細については、「Aurora サーバーレススケーリング実行ブロックサンプルポリシー」を参照してください。

Aurora Serverless Scaling 実行ブロックを設定するには、次の値を入力します。

  1. ステップ名: 名前を入力します。

  2. ステップの説明 (オプション): ステップの説明を入力します。

  3. Aurora グローバルデータベースクラスター名: グローバルクラスター識別子を入力します。

  4. リージョンのクラスター ARN: プランの各リージョンで使用するデータベースクラスター ARN を入力します。

  5. ターゲットパーセント (オプション): ターゲットクラスターをスケーリングする派生ソース容量の割合を入力します。デフォルトは 100 です。アクティブ/アクティブプランの場合、結合トラフィックを考慮して、より高い値 (200%) を検討してください。

  6. タイムアウト: タイムアウト値を入力します。

次に、[ステップを保存] を選択します。

プラン評価の一環として評価されるもの

リージョンスイッチがプランを評価すると、リージョンスイッチは Aurora Serverless Scaling 実行ブロックの設定とアクセス許可に対していくつかの重要なチェックを実行します。リージョンスイッチ評価では、Aurora Serverless クラスターが両方のリージョンに存在することを確認し、それらが正しく設定され、アクセス可能であることを確認し、各リージョンの現在の容量を記録します。また、ターゲットリージョンのクラスターの最大容量が、必要な容量に対して指定されたスケールの一致率を処理するのに十分であることを確認します。

リージョンスイッチは、プランの IAM ロールに Aurora Serverless スケーリングの正しいアクセス許可があることも検証します。リージョン切り替え実行ブロックに必要なアクセス許可の詳細については、「Aurora サーバーレススケーリング実行ブロックサンプルポリシー」を参照してください。いずれかのチェックが失敗した場合、リージョン切り替えは警告メッセージを返します。警告メッセージはコンソールで表示できます。または、 または API オペレーションを使用して検証警告を受け取ることができます。

関連リソース