

AWS Blockchain Templates は 2019 年 4 月 30 日に廃止されました。このサービスやサポートドキュメントは今後更新されません。で最高の Managed Blockchain エクスペリエンスを得るには AWS、[Amazon Managed Blockchain (AMB)](https://aws.amazon.com/managed-blockchain/) を使用することをお勧めします。Amazon Managed Blockchain の開始方法の詳細については、[Hyperledger Fabric に関するワークショップ](https://catalog.us-east-1.prod.workshops.aws/workshops/008da2cb-8454-42d0-877b-bc290bff7fcf/en-US)、または[イーサリアムノードのデプロイに関するブログ](https://aws.amazon.com/blogs/database/deploy-an-ethereum-node-on-amazon-managed-blockchain/)をご覧ください。AMB に関するご質問やサポートが必要な場合は、 または AWS アカウントチーム[にお問い合わせください サポート](https://console.aws.amazon.com/support/home#/case/create?issueType=technical)。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Hyperledger Fabric 用の AWS Blockchain Template の使用
<a name="blockchain-templates-hyperledger"></a>

Hyperledger Fabric は、チェーンコードというスマートコントラクトを実行するブロックチェーンフレームワークであり、Go で記述されます。Hyperledger Fabric を使用してプライベートネットワークを作成し、ネットワークに接続して参加できるピアを制限することができます。Hyperledger Fabric の詳細については、[Hyperledger Fabric](https://hyperledger-fabric.readthedocs.io/en/release-1.1/) のドキュメントを参照してください。チェーンコードの詳細については、[Hyperledger Fabric](https://hyperledger-fabric.readthedocs.io/en/release-1.1/) のドキュメントの [Chaincode for Developers (開発者向けのチェーンコード)](https://hyperledger-fabric.readthedocs.io/en/release-1.1/chaincode4ade.html) トピックを参照してください。

Hyperledger Fabric 用の AWS Blockchain Template では *docker-local* コンテナプラットフォームのみがサポートされているため、Hyperledger Fabric コンテナは単一の EC2 インスタンスにデプロイされます。

## 起動へのリンク
<a name="blockchain-hyperledger-launch"></a>

Hyperledger Fabric [テンプレートを使用して特定のリージョンで起動するリンクについては、「AWS ブロックチェーンテンプレートの開始方法](https://aws.amazon.com/blockchain/templates/getting-started/)」を参照してください。 CloudFormation 

## Hyperledger Fabric 用の AWS Blockchain Template のコンポーネント
<a name="blockchain-hyperledger-architecture"></a>

Hyperledger Fabric 用の AWS Blockchain Template は Docker で EC2 インスタンスを作成し、そのインスタンスのコンテナを使用して Hyperledger Fabric ネットワークを起動します。ネットワークには 1 つの注文サービスと 3 つの組織が含まれており、それぞれが 1 つのピアサービスを持っています。テンプレートはまた、ブロックチェーンデータを参照するための Hyperledger Explorer コンテナも起動します。PostgreSQL サーバーコンテナが起動されて Hyperledger Explorer をサポートします。

次の図は、テンプレートを使用して作成された Hyperledger Fabric ネットワークを示しています。

![\[AWS architecture diagram showing EC2 instance with containers in a VPC, connected to ECR and S3.\]](http://docs.aws.amazon.com/ja_jp/blockchain-templates/latest/developerguide/images/hyperledger-docker-local-arch.png)


## 前提条件
<a name="blockchain-hyperledger-prerequisites"></a>

テンプレートを使用して Hyperledger Fabric ネットワークを起動する前に、以下の要件が満たされていることを確認します。
+ 使用する IAM の原則 (ユーザーまたはグループ) には、関連するすべてのサービスを処理するためのアクセス許可が必要です。
+ EC2 インスタンスにアクセスするために使用できるキーペア (たとえば、SSH を使用) にアクセスできる必要があります。キーは、インスタンスと同じリージョンに存在する必要があります。
+ コンテナをプルするための Amazon S3 へのアクセスと Amazon Elastic Container Registry (Amazon ECR) へのアクセスを許可するアクセス許可ポリシーがアタッチされた EC2 インスタンスプロファイルが必要です。アクセス許可ポリシーの例については、「[EC2 インスタンスプロファイルの IAM アクセス許可の例](#blockchain-hyperledger-ec2profile)」を参照してください。
+ Amazon S3、および Amazon ECR にアクセスできるようにするには CloudFormation、パブリックサブネットを持つ Amazon VPC ネットワーク、または NAT ゲートウェイと Elastic IP アドレスを持つプライベートサブネットが必要です。
+ SSH を使用してインスタンスに接続する必要がある IP アドレスからの SSH トラフィック (ポート 22) を許可するインバウンドルールが EC2 セキュリティグループに必要です。Hyperledger Explorer (ポート 8080) に接続する必要があるクライアントでも同様です。

### EC2 インスタンスプロファイルの IAM アクセス許可の例
<a name="blockchain-hyperledger-ec2profile"></a>

Hyperledger Fabric 用の AWS Blockchain Template を使用するときは、EC2 インスタンスプロファイル ARN をパラメータの 1 つとして指定します。EC2 のロールとインスタンスプロファイルにアタッチされているアクセス許可ポリシーの開始点として、次のポリシーステートメントを使用します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetRepositoryPolicy",
                "ecr:DescribeRepositories",
                "ecr:ListImages",
                "ecr:DescribeImages",
                "ecr:BatchGetImage",
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Hyperledger Fabric のリソースへの接続
<a name="blockchain-hyperledger-connecting"></a>

テンプレートで作成したルートスタックのステータスが **[CREATE\$1COMPLETE]** になったら、EC2 インスタンスの Hyperledger Fabric リソースに接続できます。パブリックサブネットを指定した場合は、他の EC2 インスタンスと同じように EC2 インスタンスに接続できます。詳細については、「*Amazon EC2 ユーザーガイド*」の「[SSH を使用した Linux インスタンスへの接続](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)」を参照してください。

プライベートサブネットを指定した場合は、*踏み台ホスト*をセットアップして、Hyperledger Fabric リソースへのプロキシ接続に使用できます。詳細については、以下の [踏み台ホストを使用したプロキシ接続](blockchain-templates-ethereum.md#ethereum-create-bastion-host) を参照してください。

**注記**  
テンプレートは、パブリック IP アドレスを Hyperledger Fabric サービスをホスティングする EC2 インスタンスに割り当てますが、指定したプライベートサブネット内のルーティングポリシーは、この IP アドレスとパブリックソースとの間のトラフィックを許可しないため、この IP アドレスはパブリックにアクセスすることはできません。

### 踏み台ホストを使用したプロキシ接続
<a name="hyperledger-create-bastion-host"></a>

一部の構成では、Hyperledger Fabric サービスが一般公開されない場合があります。このような場合は、*踏み台ホスト*を介して Hyperledger Fabric リソースに接続できます。踏み台ホストの詳細については、*Linux 踏み台ホストクイックスタートガイド*の [Linux 踏み台ホストアーキテクチャ](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/architecture.html)を参照してください。

踏み台ホストは EC2 インスタンスです。以下の要件が満たされていることを確認してください。
+ 踏み台ホストの EC2 インスタンスが、[Auto-assign Public IP] (自動割り当てパブリック IP) が有効な状態でインターネットゲートウェイを持つパブリックサブネット内にある。
+ 踏み台ホストに、ssh 接続を許可するキーペアがある。
+ 接続するクライアントからのインバウンド SSH トラフィックを許可するセキュリティグループに踏み台ホストが関連付けられている。
+ Hyperledger Fabric ホストに割り当てられたセキュリティグループ (例えば、ECS がコンテナプラットフォームの場合は Application Load Balancer、docker-local がコンテナプラットフォームの場合はホスト EC2 インスタンス) は、VPC 内のソースからのすべてのポートでのインバウンドトラフィックを許可します。

踏み台ホストを設定したら、接続するクライアントが踏み台ホストをプロキシとして使用していることを確認します。次の例では、Mac OS を使用してプロキシ接続を設定しています。*BastionIP* を踏み台ホストの EC2 インスタンスの IP アドレスと置き換え、*MySshKey.pem* を踏み台ホストにコピーしたキーペアファイルと置き換えます。

コマンドラインで、以下のように入力します。

```
ssh -i mySshKey.pem  ec2-user@BastionIP -D 9001
```

これにより、ローカルマシン上のポート 9001 の踏み台ホストへのポート転送が設定されます。

次に、`localhost:9001` の SOCKS プロキシを使用するようにブラウザまたはシステムを設定します。たとえば、Mac OS を使用して、[**システム環境設定**]、[**ネットワーク**]、[**詳細**]、[**SOCKS プロキシ**] の順に選択し、「**localhost:9001**」と入力します。

Chrome で FoxyProxy Standard を使用して、[**その他のツール**]、[**拡張機能**] の順に選択します。[**FoxyProxy Standard**] で、[**詳細**]、[**拡張機能のオプション**]、[**プロキシを新規追加**] の順に選択します。[**手動プロキシ設定**] を選択します。[**ホストまたは IP アドレス**] に「**localhost**」と入力し、[**ポート**] に「**9001**」と入力します。[**SOCKS Proxy?**]、[**保存**] を選択します。

これで、テンプレート出力で示した Hyperledger Fabric ホストアドレスに接続できるようになります。