[レポート] AWS 上の Blockchain アプリケーション実装 #AWSSummit
当エントリでは2018年5月31日に行われた『AWS上のBlockchainアプリケーション実装』に関する内容をレポートしたいと思います。
当セッションの登壇者及び概要は以下の通りです。
塚田 朗弘
アマゾン ウェブ サービス ジャパン株式会社
技術統括本部 ソリューションアーキテクト
Blockchain を使ったアプリケーションを開発したいとき、AWS 上で何をどのようにすればよいでしょうか。このセッションでは、Amazon EC2 等を使って Blockchain アプリケーションを構築する際の具体的な実装方法や手順について解説します。
セッションレポート
このセッションについて
- AWS上にどうブロックチェーンアプリケーションを作るべきか
- EthereumやSolidityを想定
- コードの書き方は話しません
AWSのスタンス
- Q. 「AWSではマネージドなブロックチェーンサービスはださないの?」
- 「分散台帳はイノベーションの最先端」
- サービスを出すことで、ワークロードが絞られることを懸念
- 最先端分野の発展を助けたい
- 選択肢を揃え、成長を促す
- 「分散台帳はイノベーションの最先端」
事例
- T-mobile
- Bank of England
- coinbase
- IAMの活用
- Kinesisでログを集約
- ConsenSys
- INFURA
- Initial Blockchain Sync
- ノードのIO性能を動的に制御
- sync時のみIO性能を高く
- syncが終わった後は低く
- ノードのIO性能を動的に制御
- Initial Blockchain Sync
- Kaleido
- エンタープライズ向け
- AWSと提携
- INFURA
AWSが提供するリソース
- Blockchain Partners Portal
- Blockchain関連のAPNパートナーソリューションポータル
- 2017年12月~
- CFnテンプレート
- EthereumとHyperledger Fabricに対応
- 他フレームワークもリクエストに応じて追加予定
- すぐにBlockchainが使える
- 管理やモニタリングのための追加コンポーネントも
- 2018年4月発表
- EthereumとHyperledger Fabricに対応
Dapps開発にAWSを生かす
環境について
- ツール フレームワーク
- go-ethereum-geth
- Truffle
- AWS サービス
- CodePipeline
- CodeCommit
- CodeBuild
開発シナリオ
- セキュリティを意識した開発
- Smart Contractはロールバックが難しい
- バグが大規模事故、損害に発展
- 継続的なCIが重要
- アーキテクチャについては、以下を参照
- https://aws.amazon.com/jp/compliance/fintech/
- 開発シナリオ
- ローカル開発
- CIを利用したテスト
- PrivateNetにデプロイ
- 動作確認 <<承認プロセス>>
- TestNetにデプロイ
- 動作確認 <<承認プロセス>>
- MainNetにデプロイ
- 動作確認 <<承認プロセス>>
- ローカル環境
- Code CommitにRepository作成
- truffleをセットアップ & 開発環境を作成
- CodePipeline作成
- CodeCommitからCodeBuildへ
- デプロイ先はとりあえずなしで
- PrivateNetへのデプロイ設定
- CodeBuildからデプロイステージを選択
- CodePipelineでの承認プロセス
- 他環境(TestNet, Mainnet)も同様
- まとめ
- 自動テスト
- デプロイフロー
- 手動部分は承認プロセスで対応
- 自動化の恩恵
全体のまとめ
- AWSは幅広いBlockchainのワークロードをサポートしていく
- 開発用にすぐ利用できるリソースを提供
- 開発時にAWSを使うことで、開発の自動化による効率やセキュリティを向上
おわりに
AWSのBlockchainに対する方針や提供するリソース、セキュアな開発を行うためのフローなどを理解することができました。特に開発の部分に関しては、Blockchainのみならずセキュリティを求められるプロダクト全般に関して応用可能な話だと思います。