2.2.5.3. AWS MarketPlace mijin Catapult(v.2) アーキテクチャパターンによるリカバリ戦略¶
AWS MarketPlaceで展開する mijin Catapult(v.2) は、デプロイ時のパラメーターによって様々なアーキテクチャパターンがあります。
本章では、アーキテクチャパターンを学び、ディザスタリカバリなどのBCP対策によるリカバリ戦略を説明します。
- 作成日:
2022/8/1
- 更新日:
2022/9/15
2.2.5.3.1. mijin Catapult(v.2) の高可用性と耐障害性¶
mijin Catapult(v.2) は、全ノードに同じブロックチェーンデータを保持するため、最低でもPEERノード1台あれば、ブロックチェーンの更新は継続します。(分散型フォールトトレランス)
ブロックチェーンは。RDBなどレコード単位でデータ保存はせず、ブロック単位で纏めてデータ保存をする特徴があります。
そのため、障害があった状況によって、最新のブロックチェーンデータが必ずしも最新かつ正しいデータであるとは限りません。
理由としては、デプロイ時に設定したおよその秒数でブロックチェーンのブロックデータが生成され、ブロック生成するノード(ハーベスティングノード)、生成したブロックを受信するノードに分かれます。
ブロックチェーンデータを作成するノードはコンセンサスアルゴリズム(Proof-of-Stake Plus)によって、ブロックを生成するノード(ハーベスティングノード)が剪定されます。
コンセンサスアルゴリズムについて詳しく知りたい場合は、SymbolのDocumentを参照してください。
mijinにもブロック生成の仕組みによる報酬は存在しますが、プライベートブロックチェーンでは必要ないため、機能的に報酬プロセスが動いているだけの状態となります。
以下の図では、PEER3でブロックチェーンを生成し、各ノードにブロックチェーンデータを送信する図です。

PEER3から生成したブロックデータを受信していない状態でPEER2のみが残った状況で障害になった場合、最低でも1ブロック分の差分が出る可能性があります。
その際、PEER2はPEER1とPEER3を認識できないため、新たなブロックチェーンデータを生成し、独立したノードに変わります。(フォーク)
ただし、PEER1とPEER3がすぐに復旧した場合、正しいブロックデータを持っているPEER3を正としてロールバックし、正常のブロックチェーンデータへとリカバリします。
APIノードが全てダウンした場合は、プログラムなどからアクセスはできませんが、PEERノードがいる限りはブロック生成は進みます。
2.2.5.3.2. マルチAZによるリカバリ戦略¶
目標復旧時間 (RTO) |
ほぼ 0 |
目標復旧時点 (RPO) |
ほぼ0 |
Marketplaceに展開する mijin Catapult(v.2) は、マルチAZ環境にノードをそれぞれ配置します。
片方のAZ側に障害が発生したとしても、分散型フォールトトレランスである mijin Catapult(v.2) はサービス継続することが可能です。
APIノードへの接続を継続したい場合は、Elastic Load Balanceを有効にすることで、可用性が向上します。

2.2.5.3.3. マルチリージョンにリカバリ戦略¶
2.2.5.3.3.1. リージョン間バックアップ¶
目標復旧時間 (RTO) |
1日 |
目標復旧時点 (RPO) |
2時間 |
Marketplaceに展開する mijin Catapult(v.2) は、いずれかのノード一つからブロックチェーンデータをバックアップすることで全復旧することができます。
AWS Backupを使用することで、ノードにあるブロックチェーンデータを別リージョンに容易にバックアップすることが可能です。
バックアップ方法は、 mijin Catapult(v.2) の定期的なノードのバックアップ を参照してください。
バックアップするまでの復元方法については、以下を参照してください。

2.2.5.3.3.2. アクティブ/アクティブによるコンソーシアムチェーン¶
目標復旧時間 (RTO) |
ほぼ0 |
目標復旧時点 (RPO) |
ほぼ0 |
警告
手動で、別リージョンにmijinを構築し、コンソーシアムチェーンを実現することで 0ダウンタイム を実現します。
以下図で例を示していますが、構築手順は環境によって異なるため、有償サポートによる支援も可能ですので、以下よりお問合せください。
Marketplaceに展開する mijin Catapult(v.2) は、世界21カ国のリージョンに設置することができますが、リージョン間でノードを構築する仕組みにはなっていません。
手動でメインリージョン以外に mijinノードを構築することで、マルチリージョンによるディザスタリカバリ戦略を構築することができます。
APIノードも併せて設置することでコンソーシアムチェーンとなり、リージョン間でもアクティブ/アクティブ構成となります。
