翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
グローバルテーブルの準備チェックリスト
グローバルテーブルをデプロイするときの決定事項とタスクには、次のチェックリストを使用してください。
-
グローバルテーブルに参加するリージョンの数と各リージョンを決定します。
-
アプリケーションの書き込みモード を決定します。
-
書き込みモードに基づいて、ルーティング戦略 を計画します。
-
書き込みモードとルーティング戦略に基づいて、退避計画 を定義します。
-
リージョンごとのヘルス、レイテンシー、エラーに関するメトリクスをキャプチャします。DynamoDB メトリクスのリストについては、 AWS ブログ記事「Monitoring Amazon DynamoDB for operational awareness
」を参照してください。また、合成カナリア (障害を検出するように設計された人工リクエスト) と、顧客トラフィックのライブ監視を使用する必要があります。すべての問題が DynamoDB メトリクスに表示されるわけではありません。 -
ReplicationLatency
の継続的な増加に対するアラームを設定します。この増加は、グローバルテーブルの書き込み設定がリージョンごとに異なるという偶発的な設定ミスを示している可能性があり、その結果、レプリケートされたリクエストが失敗し、レイテンシーが高くなります。また、リージョンに混乱が生じていることを示している可能性もあります。良い例としては、最近の平均が 180,000 ミリ秒を超えた場合にアラートを生成することが挙げられます。また、 ReplicationLatency
が 0 に下がり、レプリケーションの停止状態を示していることを監視することもできます。 -
各グローバルテーブルに十分な最大読み取り/書き込み設定を割り当てます。
-
リージョンから退避する条件を特定します。決定に人間の判断が関与する場合は、すべての考慮事項を文書化します。この作業は、必要に迫られて行うのではなく、事前に慎重に行う必要があります。
-
リージョンから退避する際に実行する必要があるすべてのアクションのランブックを用意しておきます。通常、グローバルテーブルに関係する作業はほとんどありませんが、スタックの残りの部分を移動するのは複雑な作業になる場合があります。
注記
フェイルオーバー手順では、リージョンの障害時に一部のコントロールプレーンオペレーションが低下する可能性があるため、コントロールプレーンオペレーションではなくデータプレーンオペレーションのみに依存することがベストプラクティスです。詳細については、 AWS ブログ記事「Amazon DynamoDB グローバルテーブルを使用して回復力のあるアプリケーションを構築する: パート 4
」を参照してください。 -
リージョンの退避を含め、ランブックのあらゆる側面を定期的にテストします。テストしないと、ランブックの信頼性が低下します。
-
を使用してAWS Resilience Hub、アプリケーション全体 (グローバルテーブルを含む) の耐障害性を評価することを検討してください。このサービスは、ダッシュボードを通じてアプリケーションポートフォリオの障害耐性ステータスを包括的に表示します。
-
ARC 準備状況チェックを使用してアプリケーションの現在の設定を評価し、ベストプラクティスからの逸脱を追跡することを検討してください。
-
Route 53 または Global Accelerator で使用するヘルスチェックを作成するときは、データベースフロー全体をカバーする一連の呼び出しを行います。チェックを制限して DynamoDB エンドポイントが起動していることを確認するだけでは、 (IAM) 設定エラー、コードデプロイの問題、DynamoDB 外のスタックの障害、平均的な読み取りまたは書き込みレイテンシーを超えるなどの AWS Identity and Access Management 多くの障害モードをカバーできません。