Hyperledger Fabric on Azure Kubernetes Serviceとは?

Hyperledger Fabric on Azure Kubernetes Serviceとは?

はじめに

クラウド上でKubernetesを利用できるサービスが各社から提供されていますが、「Azure Kubernetes Service」(AKS)上のHyperledger Fabricテンプレートを使って、Fabricのコンソーシアムネットワークを簡単にデプロイできるサービスが新しくリリースされました。

2020年2月現在、プレビュー版がAzure Kubernetes Serviceのマーケットプレイスで提供されています。なお、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」の利用は非推奨となっています。

https://docs.microsoft.com/en-us/azure/blockchain/templates/hyperledger-fabric-consortium-blockchain

柔軟性が向上

提供されるテンプレートによって、利用者はモジュール式で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を数分でプロビジョニング可能)。

選択した画像
https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoft-azure-blockchain.azure-blockchain-hyperledger-fabric-aks-based?tab=Overview

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の比較を行っていますので、参考にしてみてください。

BaaSカテゴリの最新記事