メインコンテンツまでスキップ

高可用性

マルチAZ高可用性とは何ですか?

不可抗力(データセンターの火災や停電など)や機器障害(ソフトウェアまたはハードウェアの損傷)により可用性ゾーンが迅速に復旧できない場合、複数の可用性ゾーンにデプロイされたVeloDBウェアハウスとクラスターは、単一のAZの損失を乗り越えて稼働し続け、ビジネスのRTOおよびRPO目標を満たします。

マルチAZは、リージョン内の1つの可用性ゾーンの損失から保護します。リージョン全体の損失から保護するには、Disaster Recoveryを参照してください。

アーキテクチャの説明

VeloDB Cloud全体は主に3つの部分で構成されています:メタデータサービス層、コンピューティングクラスター層、オブジェクトストレージ層です。

multiaz 1

  1. メタデータサービス層の高可用性

    現在のメタデータサービス層は主にMetaServiceとFEで構成されています。MetaServiceとFEの両方がマルチノード高可用性をサポートしています。MetaServiceとFEを3つの可用性ゾーンにデプロイすることで、任意の可用性ゾーンで障害が発生した場合でも無停止サービスを実現できます。

  2. コンピューティングサービスの高可用性

    共有オブジェクトストレージに基づくマルチコンピューティングクラスター実装を提供し、各コンピューティングクラスターは独立して読み書きできます。したがって、コンピューティング層の高可用性を確保するために以下の方法を推奨します。

  • 特定の可用性ゾーンが利用できない場合、1時間以内のサービス復旧を許容する:1つの可用性ゾーンにコンピューティングクラスターをデプロイし、この可用性ゾーンが利用できなくなった場合、別の可用性ゾーンでコンピューティングクラスターの復旧を1時間以内に迅速に完了できます。これはクラスターのホットキャッシュデータのサイズに依存します。ホットデータキャッシュが小さい場合、10-30分で完了できます。
  • 特定の可用性ゾーンが利用できない場合、中断時間なしでクエリサービスが完全に利用可能であることを希望する:2つまたは3つの可用性ゾーンにコンピューティングクラスターをデプロイして2つのコンピューティングクラスターを形成し、両方のコンピューティングクラスターが読み書き可能です。
  1. オブジェクトストレージの高可用性

    オブジェクトストレージはクラウドプラットフォームが提供する可用性ゾーン間高可用性設定を使用し、クラウドプラットフォームがマルチ可用性高可用性を保証します。

操作手順

ウェアハウスの作成

新しいSaaSウェアハウスを作成する際、マルチ可用性ゾーンデプロイメントがデフォルトで有効になり、追加設定は不要です。前提条件はマルチAZデプロイメントをサポートするRegionを選択することです。選択したリージョンがマルチAZをサポートしていない場合、ウェアハウスは単一可用性ゾーンにデプロイされます。

new saas warehouse

ウェアハウス作成後、ウェアハウス詳細ページでウェアハウスが属する可用性ゾーンを確認できます。

multiaz 3

クラスター

クラスターの作成

単一クラスターを作成する際は、可用性ゾーンを選択し、ウェアハウスの3つの可用性ゾーンの中から1つのみ選択できます。複数のクラスターを作成する場合、各クラスターは異なる可用性ゾーンを選択できます。

multiaz 4

その他のオプションは単一可用性ゾーンクラスターと同じです。

クラスターの作成が成功した後、クラスター詳細ページでクラスターが配置されている可用性ゾーンを確認できます。

multiaz 5

クラスターの指定

複数のクラスターがある場合、以下の例に示すように次の方法でクラスターを指定できます

1.MySQL Clientを通じてVeloDBに接続し、cluster cluster_1を使用してデータベースとテーブルを作成します。

//Switch to use computing cluster cluster_1
USE @cluster_1;

//Create database, table
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table
(
k1 TINYINT,
k2 DECIMAL(10, 2) DEFAULT "10.05",
k3 CHAR(10) COMMENT "string column",
k4 INT NOT NULL DEFAULT "1" COMMENT "int column"
)
COMMENT "my first table"
DISTRIBUTED BY HASH(k1) BUCKETS 16;
  1. JDBC接続文字列
jdbc:mysql://<host>:<port>/<Database>@<Cluster>?user=<Username>&password=<Password>
  1. cluster cluster_2を使用してStream Loadによりサンプルデータを書き込みます。
 curl --location-trusted -u admin:admin_123 -H "cloud_cluster:cluster_2" -H "label:123" -H "column_separator:," -T data.csv http://host:port/api/test_db/test_table/_stream_load
The sample data in data.csv is as follows:
1,0.14,a1,20
2,1.04,b2,21
3,3.14,c3,22
4,4.35,d4,23
  1. SQLエディタ

    SQLコマンドを実行する際、右上角でSwitch Clusterを選択できます

    multiaz 6

  2. クラスタの表示、クラスタ権限設定、ユーザーのデフォルトクラスタ設定などについては、Cluster Managementを参照してください。

クラスタの名前変更

クラスタ詳細ページで、クラスタの名前を変更できます

multiaz 7

パブリックネットワーク接続

パブリックネットワーク接続を使用してVeloDB Cloudにアクセスする場合、ウェアハウス作成時に提供されたドメイン名を直接使用してアクセスでき、システムが自動的に3つのアベイラビリティゾーンのFEノードにルーティングします。

multiaz 8

プライベートネットワーク接続

プライベートネットワーク接続を作成し、endpointを作成する際、複数のアベイラビリティゾーンに対応する複数のendpointを作成できます。

詳細については、AWSでVPCからVeloDBにアクセスを参照してください。

高可用性の準備と障害処理

ウェアハウス

  • 高可用性の準備: ウェアハウス作成時に、マルチAZ展開をサポートするリージョンを選択します。マルチAZはデフォルトで有効になっており、追加の設定は不要です。
  • 障害処理: 処理は不要です。

クラスタ

高可用性の準備

  • 特定のアベイラビリティゾーンが使用不可能になった場合、1時間以内のサービス復旧を許容する:1つのアベイラビリティゾーンにコンピューティングクラスタを展開し、このアベイラビリティゾーンが使用不可能になった際に、別のアベイラビリティゾーンで1時間以内にコンピューティングクラスタの復旧を迅速に完了できます。これはクラスタのホットキャッシュデータのサイズに依存します。ホットデータキャッシュが小さい場合、10-30分で完了できます。
  • 特定のアベイラビリティゾーンが使用不可能になった場合、中断時間なしでクエリサービスを完全に利用可能にしたい:2つまたは3つのアベイラビリティゾーンにそれぞれコンピューティングクラスタを展開して2つ以上のコンピューティングクラスタを形成し、2つ以上のコンピューティングクラスタで読み書きが可能です。

障害処理

  • クラスタ名前変更:ユーザー設定をCluster-Aに送信します。Cluster-Aが障害発生後、Cluster-AをCluster-Xに名前変更します。そして新しいCluster-Aを作成するか、他のバックアップクラスタCluster-BをCluster-Aに名前変更します。ビジネスのスムーズな切り替えを完了します。

パブリックネットワーク接続

  • 高可用性の準備:ウェアハウスが提供するドメイン名を使用して信頼性の高いアクセスを行います。
  • 障害処理:処理は不要です。

プライベートネットワーク接続

高可用性の準備:複数のアベイラビリティゾーンに対応するプライベートネットワーク接続を作成します。 障害処理:正常なアベイラビリティゾーンのプライベートネットワーク接続に切り替えます。