GH GambleHub

可用性ゾーンとクロスリージョン

1)利用規約と目的

可用性ゾーン(AZ)-地域内の孤立したデータセンター(独自の容量/ネットワーク)。
地域-共通の地理と遅延を持つAZグループ。

リカバリの目的:
  • RTO (Recovery Time Objective)-サービスを提供できない時間。
  • RPO (Recovery Point Objective)-データがどれだけ失われるか。

通常:地域内では、RTO ≤ 5-15分、RPO ~ 0-1分、地域間-RTO ≤ 1時間、RPO ≤ 5分(製品と予算に応じて)を目指しています。

2)建築モデル

2.1地域内(マルチAZ)

ステートレス層:AZに分散。バランスをとること-健康チェックとのL4/L7。
ステートフルレイヤー:AZ間の同期レプリケーション(またはクォーラム)を持つクラスタ。
キャッシュ/キュー:クラスタ化されており、AZシャーディングと自動フェイルオーバーが可能です。

2.2地域間(複数地域)

アクティブ-アクティブ:両方のリージョンがトラフィックを受信します。

最小限のユーザー待ち時間、迅速なリカバリ、−一貫性、競合の複雑さ

アクティブ-パッシブ(ホット/ウォーム):主な領域は、2番目の-ホット/ウォームの期待に役立ちます。

より簡単なデータ、より安い;より高いRTOを−して下さい。
パイロットライト:最小の「光」(データは同期され、事故の場合には計算が展開されます)。
DR-backup:バックアップとリカバリのシナリオのみ(最も安くて遅い)。

3)データと一貫性

3.1データベース

Synchronous quorum (RPO≈0): PostgreSQL with synchronous standbys with the region;ローカルクォーラム(Local Quorum)とAZバランシングを備えた分散データベース(CockroachDB/Cassandra)。
非同期間領域(RPO> 0):論理レプリケーションPostgres/MySQL;「グローバルテーブル」-KV/NoSQL;CDC→strim to another region。
競合するエントリ:アクティブな場合は、キー/テナントごとにCRDT/バージョン管理またはリーダー領域を使用します。

3.2イベントソーシングとキュー

キュー/ストリーム(Kafka/Pulsar/SQSのような):ミラートピックまたはクロスリージョナルレプリケータ;key-消費者のidempotencyとkey deadlock。
Webhookと外部パートナー:両方のゾーンに署名、リプレイ、オフセット/チェックポイントを保存します。

3.3現金

地域ごとのローカルキャッシュ(write-through/refresh-ahead);耐久性のあるKVのみのグローバル共有キャッシュ(別名split-brain)。イベント(pub/sub)による無効化、TTL-保守的。

4)グローバルトラフィックとネットワークループ

GSLB/DNS:地理/遅延ベースのルーティング、ヘルスチェック、カナリアおよび事故のトラフィックウェイト。
Anycast/Edge:入り口をユーザーに近づけ、次に最寄りの健康な地域に届けます。
フェイルオーバーポリシー:リージョナルアップストリームプール、クリティカルパスへの0-RTTの禁止、地域間依存性への低いタイムアウト。
リトレイポリシー:指数関数バックオフ+ジッタ、合計期限制約、idempotent PUT/POST、 'Idempotency-Key'。

5) Kubernetesおよびサービスメッシュ

5.1つのクラスタに1つのマルチAZ

トポロジーのスプレッド制約のトポロジー。kubernetes。io/zone'。
PodDisruptionBudget priorityクラス。
NodeAffinity/Anti-Affinity-レプリカの共同ロケーションを避けます。
ストレージ領域:AZレプリケーションまたは分散ボリューム・システムを備えたPV。

5.2マルチリージョン(マルチクラスタ)

宣言的同期のために、リージョンごとにクラスタ+GitOps (Argo CD/Flux)を分離します。
サービスメッシュ(Istio/Linkerd):地域ごとのロードバランシングとリージョン間のフェイルオーバー;mTLS、共有ID。
トラフィックシフト:徐々に1%→10%→50%新しい地域に;ハンドル「put 0%」即座に。

6) RTO/RPOの選択およびパターン結合

[パターン]典型的なRTO典型的なRPO該当する場合
アクティブ-アクティブ数分間0分~ (CRDT/CDC)低遅延グローバルAPI
ホットスタンバイ5〜15分秒-分重要なB2Cサービス
暖かいスタンバイ15〜60分時間(分)b2b/オペレーティング・サブシステム
パイロットライト営業時間(営業時間)営業時間(営業時間)低い重大性/費用
バックアップのみ日数日曜日アーカイブ/分析はリアルタイムではありません

7)フォールトトレランス試験(DR)

GameDays:四半期ごとの「region/AZ out」シナリオ。
カオスインジェクション:ネットワーク遅延、パケット損失、ブローカー/ベース切断。
RTO/RPO実際:測定スイッチ時間とデータ損失、レポートを公開します。
Runbooks:ステップバイステップの指示とスイッチングのための「赤いボタン」(DNSの重み、フィーチャーフラグ、重い機能の無効化)。

8)観察と管理

地域/AZ/テナントによるメートルのスライス;p95/p99ルートレイテンシー。
地域ごと、グローバルプールごとのSLOとエラー予算。
アラート:1つのリージョンの劣化は、2つ目がトラフィックを正常に運ぶ場合に「ジャム」ページングを行うべきではありません。
手荷物'region'、 'az'、 'failover=true/false';「フェイルオーバーに行ったリクエスト数」を報告します。

9)安全性とコンプライアンス

データ常駐:PII/決済データを特定の地域(管轄)にリンクします。
秘密:クロスリージョナルキーと回転を備えたKMS/スマートHSM。地域ごとに主要な材料を分離します。
mTLSと地域間の相互信頼;ACLによるクロスリージョンの排出を制限します。

10)コストと節約

エッジキャッシュ+SWR-地域間の出力が減少します。
異なるストレージクラス(ホット/ウォーム/コールド)とダウンサンプリングのメトリック/ログ。
地域ごとの自動スケールプロファイル(夜間最低)。
Image identity+環境変数/ヘルム値による差別化された構成。

11) Antipatterns

システムごとの1つのStatefulのマスター;quorumのないsplit-brain。
単一のRDBMSへの地域間の同期書き込み(耐えられないレイテンシー)。
CRDT→混雑とファントムなしで強力な一貫性を持つグローバルキャッシュ。
idempotency→duplicate transactions/paymentなしで再送信します。
単一の「グローバル」SLO-1つの領域の障害を非表示にします。
通常のDR演習はありません-計画は戦闘では操作できません。

12) iGaming/Financeの詳細

決済プロバイダ/CCPは地域ごとに選択されます。ヘルスシグナルを使用してPSP上でスマートルーティングを行い、バックアップにフェイルオーバーします。
管轄:PIIおよび国内/地域の取引ログの保持;cross-region-集計/匿名のみ。
制限/責任あるプレイ:ローカルルールと時間-リージョン間で「ヘッドオン」を複製しないでください。イベントの一貫性を使用します。
ボーナス/バランス:テナント/地域ごとのidempotentキーと「真実の源」;DRR後の調整ジョブ。

13)ミニレシピ(擬似フィギュア)

13.1 Envoy locality対応+フェイルオーバー

yaml load_assignment:
endpoints:
- locality: { region: eu, zone: eu-a }
lb_endpoints: [{ endpoint: { address:... } }]
- locality: { region: eu, zone: eu-b }
lb_endpoints: [{ endpoint: { address:... } }]
- locality: { region: us, zone: us-a } # failover target lb_endpoints: [{ endpoint: { address:... } }]
common_lb_config:
zone_aware_lb_config: {}
locality_weighted_lb_config: {}
outlier_detection:
consecutive_5xx: 5 base_ejection_time: 30s

13.2 Kubernetesトポロジーの普及

yaml spec:
topologySpreadConstraints:
- maxSkew: 1 topologyKey: topology. kubernetes. io/zone whenUnsatisfiable: DoNotSchedule labelSelector: { matchLabels: { app: api } }

13.3 DNS重量Feilover(アイデア)

'weight (eu)=90'、 'weight (us)=10'→degraded 'eu' automatically shift to 'us'。健康チェックとTTLの低下(しかし、あまりにも積極的ではない、30-120秒)。

14) Prod Readinessチェックリスト

  • サービスごとのRTO/RPOを定義し、ビジネスと合意しました。
  • AZに分布するステートレス;statefulにはquorum/replicationと明確な整合性モデルがあります。
  • クロスリージョナルレプリケーション(asynchron/CDC)、衝突/重複除外テスト。
  • GSLB/Anycastが設定され、ヘルスチェックと重みが自動化されます。
  • Kubernetes:トポロジースプレッド、PDB、アンチアフィニティ;マルチクラスタGitOps。
  • ジッタ付きレトライ、書き込み時のidempotency;地域的に短いタイムアウトです。
  • DR演習、測定実際のRTO/RPO;現在のrunbook。
  • 領域/AZ、 SLO、およびセクションのバーンレートによる観測可能性、アラートは通常の動作を「ジャム」しません。
  • データ常駐/秘密/キーは規制要件に準拠しています。
  • 経済学:出力、ストレージ、制御下のオートスケールプロファイル。

15) TL;DR(ドクター)

ベースレイヤーとしてのマルチAZ、ビジネス保険としてのマルチリージョンを構築します。RTO/RPOのパターン(アクティブ/アクティブ/スタンバイ)とコストを選択し、意識的にデータを複製し(quorums/CDC/CRDT)、 GSLB/Anycastを通じてグローバルトラフィックを管理し、場所を意識したバランシングを行います。必須:idempotency、短いタイムアウト、通常のDR演習、地域/AZスライスのSLO/メトリック。iGaming/Financeでは、地域のPSP/KYC、データ要件、管轄区域による分割SLOを追加します。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

Telegram
@Gamble_GC
統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。