Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ユースケースに適したデプロイメントオプションを選択する -YugabyteDBデプロイメントオ...

YugabyteDB Japan
November 29, 2023
110

ユースケースに適したデプロイメントオプションを選択する -YugabyteDBデプロイメントオプションの紹介-

2023/09/26に開催されたYugabyte Japan Meetup #3での講演資料です。

YugabyteDB Japan

November 29, 2023
Tweet

Transcript

  1. 自己紹介 ペン ボ • 名前: 彭 博 (Bo Peng) [email protected]

    • 所属:SRA OSS LLC 技術部基盤技術グループ • 職務: • OSS技術サポート、ミドルウェア構築 • クラスタリングソフトウェア:Pacemaker/Corosync • 監視ソフトウェア:Zabbix • Kubernetes • YugabyteDB • など • OSS活動 © 2023 SRA OSS LLC 2
  2. 会社概要 社名 SRA OSS合同会社 略称 SRA OSS LLC 設立 2022

    年 6 月 社長 稲葉 香理 事業内容 • オープンソースソフトウェア関連のテクニカルサポート • オープンソースソフトウェア関連のコンサルティング・構築 • オープンソースソフトウェア関連プロダクトの開発・販売 • オープンソースソフトウェアの教育 • オープンソースソフトウェアの開発 • オープンソースソフトウェアコミュニティの運営支援 • ソフトウェアの研究開発 1999 年 日本で初めて PostgreSQL の商用サポートを開始 2003 年 PostgreSQL 完全互換で使いやすさと安心のサポートを提供する「PowerGres」の販売を開始 2005 年 SRA OSS, Inc. 日本支社 設立 2007 年 テキスト変換ライブラリ「libTextConv」の発売を開始 2009 年 メールの高速全文検索ソフトウェアSylpheed Pro の販売を開始 2011 年 OSS ワンストップサポート「OSS プロフェッショナルサポートサービス」を開始 2012 年 PostgreSQLの多機能ミドルウェア 「Pgpool-II」 のサポートサービスを開始 2022 年 SRA OSS 合同会社設立 SRA OSS, Inc. 日本支社よりすべての事業を譲受
  3. 単一リージョン 単一リージョンのデプロイメントパターン © 2023 SRA OSS LLC 5 シングルノード シングルAZ・複数ノード

    複数AZ • 可用性なし • テスト用途 • ノードレベルの可用性 • リージョン間レイテンシなし • AZレベルの可用性 • リージョン間レイテンシなし Region 1 AZ 1 AZ 2 AZ 3 Region 1 AZ 1 Region 1 AZ 1
  4. マルチリージョン – ストレッチクラスタ © 2023 SRA OSS LLC 6 マルチリージョン・ストレッチクラスタ

    • リージョンレベルの可用性 • 障害時データ損失なし • リージョン間読み書きレイテンシー Region 1 Region 2 Region 3 • リージョン障害に対応したい ユースケース
  5. フォロワーリード • 基本的に書き込み・読み取り処理はリーダーに送られる • フォロワーから読み取る設定(フォロワーリード)も可能 • 若干読取りの一貫性を犠牲にすることで、読み取り性能向上 • 受け入れデータの古さ:yb_follower_read_staleness_ms (デフォルトは

    30 秒) © 2023 SRA OSS LLC 7 • リージョンレベルの可用性 • リージョン間書き込みレイテンシー • 低読み取りレイテンシー • 若干データの一貫性を犠牲に 一番近いfollowerか ら読み取る APP leader follower follower リージョン間レイテンシー • リージョン障害に対応したい • 読み取り一貫性よりも性能を優先する ユースケース
  6. xCluster © 2023 SRA OSS LLC 8 双方向非同期 レプリケーション Cluster

    #1 (Region A) Cluster #2 (Region B) 更新 参照 参照 • リージョンレベルの可用性 • 低レイテンシー Zone A Zone B Zone C Zone A Zone B Zone C xClusterとは • リージョン障害や自然災害に対応したい • ゼロRPOよりも書き込み・読み取り性能を重視 ユースケース • 異なるリージョンに独立した2つのクラスタをデプロイ • 2つのクラスタ間で双方向非同期レプリケーションを行う • レイテンシーを抑えつつ、リージョンレベル可用性を実現
  7. 地理的パーティショニング © 2023 SRA OSS LLC 9 地理的パーティショニングとは • データ規制対応

    • 特定のデータを特定の地域に保管 • レイテンシー低減 • ユーザの近いところにデータを配置することで、低レイテンシーを実現 ユースケース • パーティショニングとtablespace機能を利用 • 特定のパーティションテーブルを特定の地域に紐づけて、行単 位でデータの地理的な配置場所を制御
  8. 行レベル地理的パーティショニングの仕組み © 2023 SRA OSS LLC 10 id Region 1

    US 2 India 3 France 4 US 5 France … id Region 1 US 4 US id Region 2 India id Region 3 France 5 France Step 1: tablespace作成 CREATE TABLESPACE us_west_2_tablespace WITH ( replica_placement='{"num_replicas": 3, "placement_blocks": [ {"cloud":"aws","region":"us-west-2","zone":"us-west-2a","min_num_replicas":1}, {"cloud":"aws","region":"us-west-2","zone":"us-west-2b","min_num_replicas":1}, {"cloud":"aws","region":"us-west-2","zone":"us-west-2c","min_num_replicas":1}]}'); Step 2: 親テーブル作成 CREATE TABLE users ( id INTEGER NOT NULL, ... region VARCHAR, ) PARTITION BY LIST (region); Step 3: パーティションテーブル作成 CREATE TABLE users_us PARTITION OF users ( id, ..., region, PRIMARY KEY (id HASH)) FOR VALUES IN ('US') TABLESPACE us_west_2_tablespace;
  9. リードレプリカ • プライマリクラスタと異なるリージョンに配置された読み取り専用のノード © 2023 SRA OSS LLC 11 •

    書き込みは特定の地域からのみ、読み取りは地域を問わず行われるようなアプリケーション • リージョン間読み取りレイテンシーを低減したい • 読み取りが多少古くても許容できる リードレプリカとは ユースケース ユーザ ユーザ リージョン間レイテンシーあり
  10. リードレプリカ • プライマリクラスタのデータが自動的に非同期で1つあるいは複数のリモートリージョン(リー ドレプリカ)に複製される • プライマリリージョンは読み書き、リモートリージョンは読み取り専用 • リードレプリカを利用することで、低読み取りレイテンシーを実現 • 受け入れデータの古さ:yb_follower_read_staleness_ms

    (デフォルトは 30 秒) • リードレプリカはRaftコンセンサスには関与しない • 回復力はプライマリクラスタの回復力に依存 © 2023 SRA OSS LLC 12 リードレプリカ概要 ユーザ primary cluster read replica read replica ユーザ 読み取りのみ 低レイテンシー 読み取りのみ 低レイテンシー ユーザ 書き込み・読み取り 低レイテンシー
  11. まとめ © 2023 SRA OSS LLC 13 可用性 一貫性 書き込み

    レイテンシー 読み取り レイテンシー 用途 単一リージョン マルチゾーンクラスタ AZレベル 強い一貫性 低い 低い AZレベルの回復力 性能重視 マルチリージョン ストレッチクラスタ リージョンレベル 強い一貫性 リージョン間レイテ ンシー リージョン間レイテン シー リージョンレベルの回復力 フォロワーリード リージョンレベル 結果整合性 リージョン間レイテ ンシー 低い リージョンレベルの回復力 読み取りレイテンシー低減 (読み取りが多少古くても許容できる) xCluster リージョンレベル プライマリクラスタ内で は強い一貫性、スタンバ イクラスタ内では結果整 合性 低い 低い レイテンシー低減 DR 地理的パーティショニ ング リージョンレベル 強い 低い 低い データ規制対応 レイテンシー低減 リードレプリカ AZレベル (プライマリクラスタに 依存) プライマリクラスタ内で は強い一貫性、レプリカ クラスタ内では結果整合 性 低い (書き込みクライアン トがプライマリクラ スタと同じリージョ ン内想定) 低い 読み取りレイテンシー低減 (書き込みは特定のリージョンからのみ、 読み取りユーザは世界中に存在する)