はじめに
クラウド上でKubernetesを利用できるサービスが各社から提供されていますが、「Azure Kubernetes Service」(AKS)上のHyperledger Fabricテンプレートを使って、Fabricのコンソーシアムネットワークを簡単にデプロイできるサービスが新しくリリースされました。
2020年2月現在、プレビュー版がAzure Kubernetes Serviceのマーケットプレイスで提供されています。なお、Hyperledger Fabricについては他の記事で解説しているので、興味のある方はぜひご覧ください。
▼詳細はこちら
「Hyperledger Fabric」もっとも利用される企業向けブロックチェーンフレームワークの概要
今回の記事では「Hyperledger Fabric on Azure Kubernetes Service」の概要を紹介していきます。
Hyperledger Fabric on Azure Kubernetes Serviceがリリース
2020年1月、Azure Kubernetes Serviceのマーケットプレイスで「Hyperledger Fabric on Azure Kubernetes Service」が新しくリリースされました。このサービスの登場によって、2020年2月現在、「Hyperledger Fabric on Azure template」の利用は非推奨となっています。
柔軟性が向上
提供されるテンプレートによって、利用者はモジュール式でAzure Kubernetes Service(AKS)クラスタ上に、Hyperledger Fabricのブロックチェーンネットワークをデプロイできます。さらに、AzureのVirtual Machinesシリーズやノード数、障害耐性などについて、個別の必要性に合わせたカスタマイズが可能です。
したがって、システム構成の柔軟性を向上するとされています。また、Azure Kubernetes Serviceが提供する、エンタープライズレベルのセキュリティとガバナンスも享受できます。
なお、Hyperledger Fabric on Azure Kubernetes Serviceでサポートされているのは、Hyperledger Fabric v1.4.4です。
最低限の知識でコンソーシアムのセットアップが完了する
Hyperledger Fabric on Azure Kubernetes Serviceでは、いくつかの基本的なパラメータを設定すれば、Hyperledger Fabricのコンソーシアムをセットアップできます(OrdererおよびPeerノードで構成されたOrganizationを数分でプロビジョニング可能)。
AzureやFabricについて最低限の知識しか持たない場合であっても実行可能で、利用者はインフラ部分を時間を割くことなく、アプリケーション開発やビジネスに集中できます。
ソリューション自体への追加料金は無し
料金はAKSクラスタやストレージ、ネットワークなどインフラストラクチャのリソースを消費した際に発生します。Hyperledger Fabric on Azure Kubernetes Serviceを利用すること自体による追加料金はありません。
Hyperledger Fabric on Azure Kubernetes Service templateの主な機能
Hyperledger Fabric on Azure Kubernetes Service templateの主な機能は以下の通りです。
- Hyperledger Fabric v1.4.4(LTS)のデプロイをサポート
- ノード数を構成するオプションを使用して、Orderer OrganizationおよびPeerノードのデプロイをサポート
- デフォルトで自己署名証明書を持つFabric Certificate Authority(CA)をサポートし、Fabric CAを初期化するためにOrganization固有のルート証明書をアップロードするオプションが提供されている
- PeerノードでのワールドステートデータベースのLevelDBとCouchDBの実行をサポート
- Ordering serviceでは、可用性の高いRAFTベースのコンセンサスアルゴリズムが実行される。なお、このテンプレートでは、3、5、7ノードでの構成がオプションとして提供されている
- Azure Kubernetesクラスタのノード数とサイズを構成する方法をサポート
- 他のOrganizationとのネットワーキング用にデプロイされ、各AKSクラスタに対して公開されているパブリックIP
- ネットワークサンプルスクリプトの構築から始め、コンソーシアムとチャネルのワークフローの作成、チャネルへのPeerノードの追加など、デプロイした後の開発手順をサポート
- 新しいユーザIDの生成やカスタムチェーンコードの実行など、いくつかのネイティブなHyperledger Fabric APIの実行をサポートするNode.jsアプリケーションサンプルの提供
なお、コンソーシアムのサンプルスクリプトは、GitHubに公開されています(Apacheライセンス2.0)。
参考:Hyperledger-Fabric-on-Azure-Kubernetes-Service
デプロイされるAzureリソース
Hyperledger Fabric on Azure Kubernetes Service templateのデプロイ時には、以下のAzureリソースがスピンアップされます。
- AKSクラスタ:利用者からの入力パラメーターに従って構成されるAzure Kubernetesクラスタ。AKSクラスタには、Hyperledger Fabricネットワークコンポーネントを実行するための様々なポッドが構成され、作成されるポッドは次の通り
- Fabric tools:Hyperledger Fabricコンポーネントを構成するツール
- Orderer/peer pods: Hyperledger Fabricネットワークのノード
- Proxy:クライアントアプリケーションがAKSクラスタとのインターフェイスを確立できるnginx proxy pod
- Fabric CA:Fabric CAを実行するポッド
- PostgreSQL:Fabric CAのIDを維持するためにデプロイされる
- Azure Key Vault:利用者によって提供されるFabric CAの証明とルート証明書を保存するためにデプロイされ、テンプレートのデプロイの再試行時に使用される(これはテンプレートの仕組みを処理するためのもの)
- Azure Managed disk:台帳やPeerノードのワールドステートデータベースのための永続ストア
- Public IP:クラスタとのインターフェイスを確立するためにデプロイされるAKSクラスタのパブリックIPエンドポイント
なお、Organizationのデプロイやコンソーシアムの構築に関しては、以下のドキュメントで説明されています。
参考:Hyperledger Fabric consortium on Azure Kubernetes Service (AKS)
まとめ:Azure Kubernetes Serviceで柔軟かつ迅速な開発を実現
本記事で概要を紹介したように、Hyperledger Fabric on Azure Kubernetes Serviceによって、Hyperledger Fabricネットワークの構築やアプリ開発を高速化できます。
なお、Hyperledger FabricとKubernetesの組み合わせとしては、今回紹介したAzureの他に「IBM Blockchain Platform」も同様の構成となっています。
どのBaaSを選ぶかは、自社の状況や開発するプロダクトの規模にも拠りますが、以下の記事でBaaSの比較を行っていますので、参考にしてみてください。