BaaSってなに?SaaSやPaaSとは何が違うの?
クラウド事業に関係する方でなくても、SaaSやPaaSなどの言葉を耳にしたことがあるかと思いますが、そもそもBaaSとは一体何でしょうか。
〇aaSという言葉が多すぎて混乱する方もいるかもしれませんので、簡単にまとめました。
SaaS(サース / Software as a Service)
クラウドで提供されるソフトウェアのことを指し、GmailなどのWebサービスが該当します。
PaaS(パース / Platform as a Service)
アプリケーション開発のために、OSや開発環境、データベースなどの提供を行うサービスのことです。Microsoft AzureやAWSなどがPaaSを提供しています。
IaaS(アイアース / Infrastructure as a Service)
開発のため、ネットワークやストレージなどのインフラを提供するサービスです。IaaSはPaaSと違い、OSやミドルウェアなどを含んでいないので自由に構築できますが、その分知識が必要になってきます。
BaaS(バース / Blockchain as a Service)
ブロックチェーンの開発環境を提供するサービスで、クラウドで簡単にブロックチェーンのサービスを構築できるもの、と理解しておけばOKです。
現在、Microsoft、Amazon、IBM、OracleなどがBaaSを提供しています。
【余談】
Backend as a Serviceの略のBaaSという言葉もありますが、こちらはスマートフォンのアプリケーションを構築するバックエンド機能を提供するもので、Blockchain as a Serviceとは異なります。
【重要】
従来、Azure上で提供されてきたマネージドBaaS(Blockchain as a Service)の「Azure Blockchain Service」ですが、2021年9月10日を以って提供終了となります(2021年5月10日以降は新規メンバーの作成やデプロイはサポート対象外となりました)。
移行先の選択肢については公式ドキュメントで案内されており、2021年5月現在、開発フェーズに応じて下記が提示されています。
【運用またはパイロット段階のプロジェクト】
・Consensysの提供するマネージドBaaS「Quorum Blockchain Service」
・Azure IaaS VM(ブロックチェーンリソース管理テンプレートが用意されている)
【新規または評価フェーズのプロジェクト】
・Azure Marketplaceで提供されているQuorumテンプレートまたはBesuテンプレート
参考:Azure Blockchain Service を移行する
Microsoftが提供するAzureのBaaS(Blockchain as a Service)とは?
近年に登場したBaaSは、いくつかの大手IT企業によって開発されています。その中でもMicrosoftはかなり早い段階でBaaSの世界に乗り出しており、2015年には既にEthereumのブロックチェーンをAzure上で構築できるサービスを世に送り出しています。他機能の連携(IoTやAIなど)やテンプレートの豊富さなど、 現時点でのブロックチェーンのクラウドサービスではAzureが大きなアドバンテージを持っています。
Microsoft社のスライドでは、Azure BaaSの特徴を以下のように説明しています。
▼Azure上にBlockchain Solutionのための開発・テスト・本番用プラットフォームを提供
Azure上にブロックチェーン開発のための環境プラットフォームを提供、容易な展開を実現
▼ブロックチェーンの検証や開発が可能クラウドを使って低コストかつ早期にブロックチェーンの検証や開発を行うことができます。
▼柔軟なネットワーク設計と世界展開世界中のリージョンとSDNによる柔軟なネットワーク設計によって、ブロックチェーンの多様なトポロジに対応します
参考:
https://info.microsoft.com/rs/157-GQE-382/images/JA-WBNR-SlideDeck-Azure%20BaaS%20Blockchain%20as%20a%20Service-MCW0003701.pdf
上記に加えて、40以上のブロックチェーン企業とパートナーシップを結んでおり、様々なテンプレートが利用可能になっています。
実際にMicrosoftのAzure Marketplaceではブロックチェーンカテゴリーに、
70以上のテンプレートが登録されています。
このテンプレートの豊富さこそ、Azureが他のBaaSをリードしている一因と言えるでしょう。
Azure Marketplaceのブロックチェーンカテゴリーはこちらで確認ができます。
Microsoftが公式で提供しているテンプレートの例として、以下のものがあります。
- Azure Blockchain Workbench
- Dev Test Labs for Blockchain as a Service
- Ethereum on Azure
- HyperLedger Fabric on Azure
Azure Blockchain Workbenchの導入方法は以下を参考にしてください。
参考:
初心者のための Azure Blockchain Workbench 初期導入方法
Azure BaaSが解決する課題
現時点で、ブロックチェーンのサービスを開始するには、ブロックチェーン技術への理解が必要になり、実際に一から構築しようとすると、いくつかの課題に
例えば、
・ブロックチェーンの鍵管理、アクセス管理はどうすればいいのか
・コンソーシアムを構成した場合の、企業間ネットワークの接続
・既存システムとの接続はどのように行えばいいか
・開発環境やプライベートなテスト環境はどうするか
・世界各国の拠点間のP2Pの同期をどうするか
こういった面倒な問題は、Azure BaaSに任せておき、開発者はビジネスの設計やスマートコントラクトの開発などに注力できるようになります。
Azure BaaSをオススメする最も重要なポイント
いままで挙げたポイントに加え、Azure BaaSの最も強いアドバンテージは、他のAzureサービスとの連携にあります。
ブロックチェーンでサービスを構築しようとする場合、提供するサービスの内容によってはオラクル問題に直面するケースがあります。
ブロックチェーンの特徴として、一度チェーン内に入ったデータは信頼性が保てますが、入力時のデータ自体が嘘だっり、間違ったデータを入力しまうケースも考えられます。そうなるとブロックチェーン上のデータの信頼性があったとしても意味がありません。このことをオラクル問題と言います。
例えば、高級ワインの中身のすり替え防止のために、ブロックチェーン技術を使うとします。ブロックチェーン内のデータを誤魔化したり、不正をすることはできませんが、現実世界で誰かがこっそり中身を入れ替えた場合は、ブロックチェーンの外の事なので検知ができません。
上記の対処法として、例えばワイン一本ごとにQRコードを振り、移動ごとにQRを読み込み、さらにコルクが抜かれたら検知するIoTの利用を考えたとします。
その場合はブロックチェーンとIoTの連携が必要になりますが、Azure BaaSの場合、他のAzureサービスとの連携がスムーズに行えるという特徴があります。
実際にブロックチェーンのサービスを考えた場合、他の技術との連携が必要になるケースが多く、その連携部分こそがエンジニアにとってネックになることがあります。そういった場合に、他サービスとの連携が上手く行えることは、大きなメリットになります。
おわりに
Blockchainのビジネスユースが増える中、面倒な作業を省き、ビジネスロジックやコントラクトなど本質的な部分に注力する環境を整えることは、プロジェクトの成否に関わってきます。
今後、BaaSのようなサービスが普及することで、さらに多くの魅力にあふれるサービスやプロダクトが誕生し、より良い世の中を作っていくことを期待しています。