Skip to content

Commit

Permalink
AUTO: Sync ScalarDL docs in Japanese to docs site repo
Browse files Browse the repository at this point in the history
  • Loading branch information
josh-wong committed Jan 28, 2025
1 parent 07f7c25 commit 7990fdb
Show file tree
Hide file tree
Showing 24 changed files with 307 additions and 313 deletions.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -12,68 +12,64 @@ ScalarDL は、非トランザクション (おそらくトランザクション
トランザクション的に一貫した方法でデータベースをバックアップおよび復元するには、特別な注意を払う必要があります。
このガイドでは、トランザクション的に一貫性のある ScalarDL バックアップを作成および復元する方法を説明します。

まず、ScalarDL Ledger のデータベースをバックアップおよび復元する方法について説明します。 次に、Auditor が使用されるケースをカバーするためにプロセスがどのように拡張されるかについて説明します。
まず、ScalarDL Ledger のデータベースをバックアップおよび復元する方法について説明します。次に、Auditor が使用されるケースをカバーするためにプロセスがどのように拡張されるかについて説明します。

## Ledger データベースのバックアップを作成する

### トランザクション データベースの場合
### トランザクショナルデータベースの場合

#### JDBC データベース

JDBCデータベースはお好みの方法でバックアップが可能です。
JDBC データベース上の ScalarDL でのバックアップの要件の 1 つは、すべての ScalarDL 管理テーブル (コーディネーター テーブルと scalardb テーブルを含む) のバックアップがトランザクション的に一貫性があるか、トランザクション的に一貫性のある状態に自動的にリカバリ可能である必要があることです。
つまり、単一トランザクションですべてのテーブルをダンプして、一貫性のあるスナップショットを作成する必要があります。 たとえば、MySQL では `mysqldump` コマンドを `--single-transaction` オプションとともに使用し、PostgreSQL では `pg_dump` コマンドを使用してこれを実現できます。
JDBC データベース上の ScalarDL でのバックアップの要件の1つは、すべての ScalarDL 管理テーブル (Coordinator テーブルと ScalarDB テーブルを含む) のバックアップがトランザクション的に一貫性があるか、トランザクション的に一貫性のある状態に自動的にリカバリ可能である必要があることです。
つまり、単一トランザクションですべてのテーブルをダンプして、一貫性のあるスナップショットを作成する必要があります。たとえば、MySQL では `mysqldump` コマンドを `--single-transaction` オプションとともに使用し、PostgreSQL では `pg_dump` コマンドを使用してこれを実現できます。
または、Amazon RDS (Relational Database Service) または Azure Database for MySQL/PostgreSQL を使用している場合は、要件を満たす自動バックアップ機能を使用して、バックアップ保持期間内の任意の時点に復元できます。

### 非トランザクション データベースの場合
### 非トランザクショナルデータベースの場合

#### トランザクションの一貫性のあるバックアップを作成するための基本戦略
#### トランザクション的に一貫性のあるバックアップを作成するための基本戦略

トランザクションの一貫性のあるバックアップを作成する 1 つの方法は、ScalarDL クラスターに未処理のトランザクションがない間にバックアップを作成することです。
基礎となるデータベースがポイントインタイム スナップショット/バックアップ メカニズムをサポートしている場合は、その期間中にスナップショットを取得できます。
基礎となるデータベースがポイントインタイム復元/回復メカニズムをサポートしている場合は、復元ポイントを期間内の特定の時刻 (できれば中間時刻) に設定できます。
トランザクション的に一貫性のあるバックアップを作成する1つの方法は、ScalarDL クラスターに未処理のトランザクションがない間にバックアップを作成することです。
基礎となるデータベースがポイントインタイムスナップショット/バックアップメカニズムをサポートしている場合は、その期間中にスナップショットを取得できます。
基礎となるデータベースがポイントインタイムリストア/回復メカニズムをサポートしている場合は、復元ポイントを期間内の特定の時刻 (できれば中間時刻) に設定できます。

これを簡単に実現するために、ScalarDL は一時停止 API を公開して、ScalarDL に未処理のトランザクションを排出させ、新しいトランザクションの受け入れを停止させます。
また、[scalar-admin](https://github.com/scalar-labs/scalar-admin) という単純なクライアント プログラムも提供しており、ScalarDL クラスターに対して一時停止リクエスト (および一時停止解除リクエスト) を行い、一時停止期間を取得します。
また、[scalar-admin](https://github.com/scalar-labs/scalar-admin) という単純なクライアントプログラムも提供しており、ScalarDL クラスターに対して一時停止リクエスト (および一時停止解除リクエスト) を行い、一時停止期間を取得します。

ポイントインタイム復元/回復メカニズムを使用する場合は、NTP などのクロック同期を使用して、ノード (ScalarDL ノードと一時停止を要求するクライアント ノード) 間のクロック ドリフトを最小限に抑えることをお勧めします
ポイントインタイムリストア/回復メカニズムを使用する場合は、NTP などのクロック同期を使用して、ノード (ScalarDL ノードと一時停止を要求するクライアントノード) 間のクロックドリフトを最小限に抑えることをお勧めします
そうしないと、一時停止期間として取得される時間が実際に一時停止が行われた時間と大きく異なる可能性があり、進行中のトランザクションが存在する時点に復元される可能性があります。
また、クロック同期ではノード間のクロックを完全に同期させることはできないため、十分な時間 (10 秒など) を一時停止し、一時停止期間の中間時間を使用することをお勧めします。
また、クロック同期ではノード間のクロックを完全に同期させることはできないため、十分な時間 (5秒など) を一時停止し、一時停止期間の中間時間を使用することをお勧めします。

#### トランザクション整合性のあるバックアップを作成するデータベース固有の方法

**カサンドラ**
**Cassandra**

Cassandra にはレプリケーション メカニズムが組み込まれているため、トランザクション的に一貫性のあるバックアップを常に作成する必要はありません。
たとえば、レプリケーションが 3 に設定されており、クラスター内の 1 つのノードのデータのみが失われた場合、ノードは通常の (トランザクション的に一貫性のない) スナップショットと、 修復機構
Cassandra にはレプリケーションメカニズムが組み込まれているため、トランザクション的に一貫性のあるバックアップを常に作成する必要はありません。
たとえば、レプリケーションが3に設定されており、クラスター内の1つのノードのデータのみが失われた場合、通常の (トランザクション的に一貫性のない) スナップショットと修復メカニズムを使用してノードを回復できるため、トランザクション的に一貫性のあるバックアップは必要ありません
ただし、クラスターのノードのクォーラムがデータを失った場合、クラスターを特定のトランザクション整合性のあるポイントに復元するには、トランザクション整合性のあるバックアップが必要です。

トランザクション的に一貫性のあるクラスター全体のバックアップを作成する場合は、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup) セクションに従ってください。または
トランザクション的に一貫性のあるクラスター全体のバックアップを作成する場合は、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup)セクションに従ってください。または
Cassandra クラスターを停止し、クラスターのすべてのノードのコピーを取得して、クラスターを開始します。

間違いを避けるために、[Cassy](https://github.com/scalar-labs/cassy) を使用することをお勧めします。
Cassy は [`scalar-admin`](https://github.com/scalar-labs/scalar-admin) とも統合されているため、Cassandra クラスターのアプリケーションに一時停止リクエストを発行できます。
詳細については、[ドキュメント](https://github.com/scalar-labs/cassy/blob/master/docs/getting-started.md#take-cluster-wide-consistent-backups) を参照してください。

**Cosmos DB**

ポイントインタイム復元 (PITR) 機能を使用するには、継続バックアップ ポリシーが有効になっている Cosmos DB アカウントを作成する必要があります。 バックアップは有効になった後も継続的に作成されます
トランザクション整合性のある復元ポイントを指定するには、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup) の説明に従って、ScalarDL サービスを一時停止してください。
ポイントインタイムリストア (PITR) 機能を使用するには、継続バックアップポリシーが有効になっている Cosmos DB アカウントを作成する必要があります。バックアップは継続バックアップポリシーが有効になった後に継続的に作成されます
トランザクション整合性のある復元ポイントを指定するには、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup)の説明に従って、ScalarDL サービスを一時停止してください。

**DynamoDB**

DynamoDB テーブルのポイントインタイム リカバリ (PITR) 機能を有効にする必要があります。 [ScalarDL Schema Loader](https://github.com/scalar-labs/scalardl-schema-loader) を使用する場合、デフォルトで PITR が有効になります。
トランザクション整合性のある復元ポイントを指定するには、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup) の説明に従って、ScalarDL サービスを一時停止してください。
DynamoDB テーブルのポイントインタイムリカバリ (PITR) 機能を有効にする必要があります。[ScalarDL Schema Loader](https://github.com/scalar-labs/scalardl-schema-loader) を使用する場合、デフォルトで PITR が有効になります。
トランザクション整合性のある復元ポイントを指定するには、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup)の説明に従って、ScalarDL サービスを一時停止してください。

## Ledger データベースのバックアップを復元する

バックアップを復元するには、[バックアップの復元](https://scalardb.scalar-labs.com/docs/latest/backup-restore#restore-a-backup) セクションに従う必要があります。
バックアップを復元するには、[バックアップの復元](https://scalardb.scalar-labs.com/docs/latest/backup-restore#restore-a-backup)セクションに従う必要があります。
データベースのバックアップを復元する前に ScalarDL Ledger サービスを停止し、バックアップの復元後に ScalarDL Ledger サービスを開始する必要があります。

## Auditor データベースのバックアップの作成/復元

Auditor を使用する場合は、Ledger データベースに加えて Auditor データベースのバックアップも作成する必要があります。
Ledger データベースと Auditor データベースのバックアップの一貫性を保つには、Ledger と Auditor にトランザクション データベースを使用するか非トランザクション データベースを使用するかに関係なく、Ledger クラスターを常に一時停止する必要があります。
Ledger データベースと Auditor データベースのバックアップの一貫性を保つには、Ledger と Auditor にトランザクショナルデータベースを使用するか非トランザクショナルデータベースを使用するかに関係なく、Ledger クラスターを常に一時停止する必要があります。

バックアップを作成する手順は次のとおりです。
1. Ledgerクラスターを一時停止する
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx';

このドキュメントでは、ScalarDL に登録するための証明書を取得する方法について説明します。

ScalarDL にはいくつかの種類の認証方法があります。認証方法として `digital-signature` を使用する場合は、秘密鍵と証明書ファイルを用意する必要があります。認証方法の詳細については、[ScalarDL 認証ガイド](../authentication.mdx) を参照してください。
ScalarDL にはいくつかの種類の認証方法があります。認証方法として `digital-signature` を使用する場合は、秘密鍵と証明書ファイルを用意する必要があります。認証方法の詳細については、[ScalarDL 認証ガイド](../authentication.mdx)を参照してください。

## 秘密鍵と証明書の要件

Expand Down Expand Up @@ -459,22 +459,22 @@ ScalarDL は証明書の有効期限をチェックしません。そのため
</Tabs>
</TabItem>
<TabItem value="cfssl-server" label="CFSSL サーバー">
[CFSSL サーバー](./caserver-getting-started.mdx) に証明書ファイルの作成を依頼できます。
[CFSSL サーバー](./caserver-getting-started.mdx)に証明書ファイルの作成を依頼できます。

<h3>前提条件</h3>

次の手順では、[cfssl および cfssljson](https://github.com/cloudflare/cfssl) コマンドラインツールをインストールする必要があります。

<h3>秘密鍵と証明書ファイルを作成する</h3>

1. CFSSL や OpenSSL などのツールを使用し、[要件](#private-key-and-certificate-requirements) に基づいて秘密鍵と CSR を作成します。[CFSSL](?methods=self-signed&tools=cfssl) タブで `cfssl` コマンドを使用して秘密鍵と CSR を作成する例を確認できます。また、[OpenSSL](?methods=self-signed&tools=openssl) タブで `openssl` コマンドを使用して秘密鍵と CSR を作成する例を確認できます。
1. CFSSL や OpenSSL などのツールを使用し、[要件](#private-key-and-certificate-requirements)に基づいて秘密鍵と CSR を作成します。[CFSSL](?methods=self-signed&tools=cfssl) タブで `cfssl` コマンドを使用して秘密鍵と CSR を作成する例を確認できます。また、[OpenSSL](?methods=self-signed&tools=openssl) タブで `openssl` コマンドを使用して秘密鍵と CSR を作成する例を確認できます。

1. CFSSL サーバーから証明書を要求します。

:::note

- CFSSL サーバーエンドポイント URI を指定するには、`-remote` オプションが必要です。
- 出力される鍵ファイルのプレフィックスを指定するには、cfssljson の `-bare` オプションが必要です。
- 出力されるキーファイルのプレフィックスを指定するには、cfssljson の `-bare` オプションが必要です。

:::

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx';
}
```

CSR に基づいて自己署名証明書と秘密キーを生成します
CSR に基づいて自己署名証明書と秘密鍵を生成します

```console
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
Expand All @@ -56,9 +56,9 @@ CFSSL は現在、MySQL、PostgreSQL、SQLite をサポートしています。
今回は簡単にするために SQLite を使用します。

```console
go get bitbucket.org/liamstask/goose/cmd/goose
go get bitbucket.org/liamstask/goose/cmd/goose
goose -path $GOPATH/src/github.com/cloudflare/cfssl/certdb/sqlite up
```
```

これにより、現在の場所に certstore_development.db が作成されます。

Expand Down Expand Up @@ -106,7 +106,7 @@ goose -path $GOPATH/src/github.com/cloudflare/cfssl/certdb/sqlite up

TODO: 設定について詳しく調べる

次に、前のセクションで作成したデータベース ファイルを指すデータベースの構成ファイルを作成します
次に、前のセクションで作成したデータベースファイルを指すデータベースの構成ファイルを作成します

```
[db-config.json]
Expand Down Expand Up @@ -147,7 +147,7 @@ cfssl gencert -ca ca.pem -ca-key ca-key.pem -config cfssl-config.json -profile "

### OCSP サーバー証明書を生成する

注記: OCSP は、X.509 デジタル証明書の失効ステータスを取得するために使用されるインターネット プロトコルです
注記: OCSP は、X.509 デジタル証明書の失効ステータスを取得するために使用されるインターネットプロトコルです

```
[ocsp.csr.json]
Expand All @@ -174,7 +174,7 @@ cfssl gencert -ca ca-server.pem -ca-key ca-server-key.pem -config cfssl-config.j

## サーバーを起動する

これで準備は完了です。 サーバーを起動しましょう。
これで準備は完了です。サーバーを起動しましょう。

### CA サーバー

Expand Down
Loading

0 comments on commit 7990fdb

Please sign in to comment.