tacckです。
各クラウドでブロックチェーンの実行環境を構築するためのサービスを提供していますが、ついにAWSでもサービスが開始されました!
AWS Blockchain Templates
新しい AWS ブロックチェーンテンプレートを使用してブロックチェーンを始める
上記の記事が、2018/04/22に公開されました。
こちらの記事では”Ethereum”の開始方法が書かれてあるので、今回は弊社でも使っている”Hyperledger Fabric”の構築をやってみます。
準備
概要については、AWSのドキュメントに記載されているので、これに従ってやってみます。
Using the AWS Blockchain Template for Hyperledger Fabric
また、上記のドキュメントにありますが、このテンプレートではEC2を一つ立ち上げて、その中でDockerベースで”Hyperledger Fabric”が動くようになるようです。
リージョン選択
現在は実行できるリージョンが限定されているようで、
- Launch in US East (N. Virginia) region (us-east-1)
- Launch in US East (Ohio) region (us-east-2)
- Launch in US West (Oregon) region (us-west-2)
の3つから選ぶようになっています。
今回は、”us-east-2″のオハイオリージョンでの構築を進めます。
まずは、ドキュメント内の”Prerequisites“を参照しながらAWSの環境を整えていきます。
IAM: ポリシーとロールの作成
リージョンをオハイオにしておきます。
上記ドキュメント内で、”IAMのポリシー”を設定するように書いてあるので、ドキュメント通りのポリシーを作成します。
ポリシーができたら、これをアタッチしたロールを作成します。
“インスタンスプロファイルARN”の値を後ほど使うので、忘れないようにしておきます。
EC2: キーペア作成
次に、EC2へアクセスするキーペアを作成します。
“PEM”ファイルがダウンロードされるので、無くさないようにしておいてください。
EC2: セキュリティグループ作成
前準備の最後として、セキュリティグループを作成します。
ここでは、”22″番ポートと”8080″番ポートをインバウンドで通過するように設定します。
スタック作成と実行
いよいよ本番です。
CloudFormationのスタックのテンプレートを使い、”Hyperledger Fabric”の構築を行ないます。
今回はLaunch in US East (Ohio) region (us-east-2)からスタックを作成します。
リンクをクリックすると、下記画面に進みます。
それぞれ、下記のように情報を入力していきます。
- スタックの名前: bco-sample
- Fabric Channel Name: mychannel
- Domain: example.com
- Peer Organization 1 Domain: org1
- Peer Organization 2 Domain: org2
- Peer Organization 3 Domain: org3
- VPC ID: 自分のVPC ID (今回はデフォルト)
- VPC Subnet to Use: 自分のサブネット (今回はデフォルト)
- EC2 Key Pair: bco-sample-key
- EC2 Security Group: bco-sample-sec
- EC2 Instance Profile ARN: 作成したロールのインスタンスプロファイルARN
- Platform EC2 Instance Type: t2.medium
- TemplateVersion: latest
- Capability: チェック
入力できたら「作成」ボタンをクリックします。
上図のように、”CREATE_COMPLETE”と出たら完了です。
確認
動作確認として、Webでの確認と、SSHでログインしての確認を行ないます。
まずは、EC2のコンソールで、接続するドメイン名を調べます。
対象のインスタンスをクリックし、「パブリックDNS」の値を記録します。
ブラウザで「http://”パブリックDNS”:8080/」へアクセスしてみます。
上記のような、ダッシュボードページが見えたら成功です。
続いて、SSHで接続します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ ssh -i bco-sample-key.pem ec2-user@ec2-XX-XX-XX-XX.us-east-2.compute.amazonaws.com The authenticity of host 'ec2-XX-XX-XX-XX.us-east-2.compute.amazonaws.com (X.X.X.X)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ec2-XX-XX-XX-XX.us-east-2.compute.amazonaws.com,X.X.X.X' (ECDSA) to the list of known hosts. __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2017.09-release-notes/ 11 package(s) needed for security, out of 18 available Run "sudo yum update" to apply all updates. Amazon Linux version 2018.03 is available. [ec2-user@ip-172-31-9-201 ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4b389d6f1d03 763976151875.dkr.ecr.us-east-2.amazonaws.com/fabric-tools:latest "/bin/bash" 6 hours ago Up 6 hours cli c2927fd0c25d 763976151875.dkr.ecr.us-east-2.amazonaws.com/fabric-explorer:latest "/bin/sh -c /opt/blo…" 6 hours ago Up 6 hours 0.0.0.0:8080->8080/tcp fabric-explorer 2fdfef1a8630 763976151875.dkr.ecr.us-east-2.amazonaws.com/fabric-peer:latest "peer node start" 6 hours ago Up 6 hours 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org3.example.com 500e04c6272e 763976151875.dkr.ecr.us-east-2.amazonaws.com/fabric-explorer-db:latest "docker-entrypoint.s…" 6 hours ago Up 6 hours 0.0.0.0:5432->5432/tcp fabric-explorer-db e23bb1a2cd99 763976151875.dkr.ecr.us-east-2.amazonaws.com/fabric-orderer:latest "orderer" 6 hours ago Up 6 hours 0.0.0.0:7050->7050/tcp orderer.example.com 6ffc1955c78a 763976151875.dkr.ecr.us-east-2.amazonaws.com/fabric-peer:latest "peer node start" 6 hours ago Up 6 hours 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com 6e0c6bff46c2 763976151875.dkr.ecr.us-east-2.amazonaws.com/fabric-peer:latest "peer node start" 6 hours ago Up 6 hours 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer0.org2.example.com |
“docker”コマンドを使うと、設定通りに”Peer”が3台いることがわかります。
“Orderer”サーバはいますが、”CA”サーバは無いようですね。
“fabric-explorer”というのが、Webのサーバとなっています。
まとめ
簡単でしたが、使い方を紹介しました。
「Fabricの環境を作りたい」という時には、すぐに使えるので便利そうですね。
構成から考えると本番向けでは無いので、実運用できるTemplateも出てくることを期待しています。
- 【速習】AWS Blockchain Templatesを使ってHyperledger Fabricを構築してみる - 2018年4月24日
- Hyperledger Fabric 1.0.6 を Raspberry Pi で実行する環境の構築 - 2018年1月22日
- JSON-RPC API で geth を便利に使う - 2017年2月15日
本記事に対するコメントはまだありません