Hyperledger Fabric용 AWS Blockchain 템플릿 사용 - AWS Blockchain Templates

AWS Blockchain 템플릿은 2019년 4월 30일에 중단되었습니다. 이 서비스나 이 지원 문서에 대한 추가 업데이트는 없을 것입니다. AWS에 대한 최고의 관리형 블록체인 경험을 위해서는 Amazon Managed Blockchain (AMB)을 사용하는 것이 좋습니다. Amazon Managed Blockchain을 시작하는 방법에 대해 자세히 알아보려면 하이퍼레저 패브릭 워크숍 또는 이더리움 노드 배포에 관한 블로그를 참조하십시오. AMB에 대해 궁금한 점이 있거나 추가 지원이 필요한 경우에는 AWS Support 또는 AWS 계정 팀에 문의하십시오.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Hyperledger Fabric용 AWS Blockchain 템플릿 사용

Hyperledger Fabric은 Go로 작성되는 chaincode라는 스마트 계약을 실행하는 블록체인 프레임워크입니다. Hyperledger Fabric으로 프라이빗 네트워크를 생성하여 네트워크에 연결하고 참여할 수 있는 피어를 제한할 수 있습니다. Hyperledger Fabric에 대한 자세한 내용은 Hyperledger Fabric 설명서를 참조하십시오. 체인코드에 대한 자세한 내용은 Hyperledger Fabric 설명서의 개발자를 위한 체인코드 항목을 참조하십시오.

Hyperledger Fabric용 AWS Blockchain 템플릿은 docker-local 컨테이너 플랫폼만을 지원합니다. 따라서 Hyperledger Fabric 컨테이너는 단일 EC2 인스턴스에 배포됩니다.

시작 링크

Hyperledger Fabric 템플릿을 사용하여 특정 AWS CloudFormation 지역에서 를 시작하는 링크는 AWS Blockchain 템플릿 시작하기를 참조하십시오.

Hyperledger Fabric용 AWS Blockchain 템플릿 구성 요소

Hyperledger Fabric용 AWS Blockchain 템플릿은 Docker가 있는 EC2 인스턴스를 생성하고, 해당 인스턴스에서 컨테이너를 사용하여 Hyperledger Fabric 네트워크를 시작합니다. 네트워크에는 하나의 명령 서비스 및 3개의 조직이 포함되며, 각각에는 하나의 피어 서비스가 있습니다. 템플릿은 또한 Hyperledger Explorer 컨테이너를 시작하는데, 이를 통해 블록 체인 데이터를 찾을 수 있습니다. PostgreSQL 서버 컨테이너가 시작되어 Hyperledger Explorer를 지원합니다.

다음 다이어그램은 템플릿을 사용하여 생성된 Hyperledger Fabric 네트워크를 보여줍니다.

사전 조건

템플릿을 사용하여 Hyperledger Fabric 네트워크를 시작하기 전에 다음 요구 사항이 충족되는지 확인해야 합니다:

  • 사용하는 IAM 보안 주체(사용자 또는 그룹)는 모든 관련 서비스에서 작업할 수 있는 권한을 가지고 있어야 합니다.

  • EC2 인스턴스 액세스에 사용(예: SSH 사용)할 수 있는 키 페어에 액세스할 수 있어야 합니다. 키가 인스턴스와 같은 리전에 있어야 합니다.

  • Amazon S3 및 Amazon Elastic Container Registry (Amazon ECR)에 액세스하여 컨테이너를 가져올 수 있도록 허용하는 권한 정책이 연결되어 있는 EC2 인스턴스 프로파일이 있어야 합니다. 권한 정책 예시는 EC2 인스턴스 프로파일에 대한 IAM 권한 예제 단원을 참조하십시오.

  • S3, AWS CloudFormation 및 Amazon ECR에 액세스할 수 있도록 퍼블릭 서브넷이 있는 네트워크 또는 NAT 게이트웨이와 Elastic IP 주소가 있는 프라이빗 서브넷이 있어야 합니다.

  • SSH를 사용하여 인스턴스에 연결하는 데 필요한 IP 주소에서 오는 SSH 트래픽(포트 22)를 허용하는 인바운드 규칙과 함께 EC2 보안 그룹이 있어야 하며, Hyperledger Explorer(포트 8080)에 연결하는 데 필요한 클라이언트에 대해서도 동일한 보안 그룹이 있어야 합니다.

EC2 인스턴스 프로파일에 대한 IAM 권한 예제

Hyperledger Fabric용 AWS Blockchain 템플릿을 사용할 때 파라미터 중 하나로 EC2 인스턴스 프로파일 ARN을 지정합니다. EC2 역할 및 인스턴스 프로파일에 연결된 권한 정책에 대한 시작점으로 다음 정책 설명을 사용합니다.

{ "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 리소스에 연결하기

템플릿을 사용하여 생성한 루트 스택에 CREATE_COMPLETE이 표시된 후 EC2 인스턴스에서 Hyperledger Fabric 리소스에 연결할 수 있습니다. 퍼블릭 서브넷을 지정한 경우 다른 EC2 인스턴스처럼 EC2 인스턴스에 연결할 수 있습니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서SSH를 사용하여 Linux 인스턴스에 연결하기를 참조하십시오.

프라이빗 서브넷을 지정한 경우 Bastion Host를 설정하고 사용하여 Hyperledger Fabric 리소스에 대한 연결을 프록시해야 합니다. 자세한 내용은 아래 Bastion Host를 사용한 프록시 연결 섹션을 참조하세요.

참고

템플릿이 Hyperledger Fabric 서비스를 호스팅하는 EC2 인스턴스에 퍼블릭 IP 주소를 할당하는 것을 알 수 있습니다. 하지만 지정한 프라이빗 서브넷의 라우팅 정책이 이 IP 주소와 퍼블릭 소스 사이의 트래픽을 허용하지 않기 때문에 이 IP 주소는 공개적으로 액세스할 수 없습니다.

Bastion Host를 사용한 프록시 연결

어떤 구성은 공용 Hyperledger Fabric 서비스가 제공되지 않습니다. 이러한 경우 Bastion Host를 통해 Hyperledger Fabric 리소스에 연결할 수 있습니다. Bastion Host에 대한 자세한 내용은 Linux Bastion Host 퀵 스타트 가이드Linux Bastion Host 아키텍처를 참조하십시오.

Bastion Host는 EC2 인스턴스입니다. 다음 요구 사항을 충족하는지 확인합니다:

  • Bastion Host의 EC2 인스턴스는 퍼블릭 IP 자동 할당이 활성화되어 있고 인터넷 게이트웨이가 있는 퍼블릭 서브넷 내에 있습니다.

  • Bastion Host에는 ssh 연결을 허용하는 키 쌍이 있습니다.

  • Bastion Host는 연결하는 클라이언트의 인바운드 SSH 트래픽을 허용하는 보안 그룹과 연결됩니다.

  • Hyperledger Fabric 호스트에 할당된 보안 그룹(예: ECS가 컨테이너 플랫폼인 경우 또는 Application Load Balancer 또는 docker-local이 컨테이너 플랫폼인 경우 호스트 EC2 인스턴스)은 VPC 내 소스의 모든 포트에 인바운드 트래픽을 허용합니다.

Bastion Host를 설정한 후 연결하는 클라이언트가 Bastion Host를 프록시로 사용하는지 확인하십시오. 다음은 Mac OS를 사용하여 프록시 연결을 설정한 예입니다. BastionIP를 배스천 호스트 EC2 인스턴스의 IP 주소로, MySshKey.pem을 배스천 호스트에 복사한 키 페어 파일로 대체합니다.

명령줄에 다음을 입력합니다:

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

이렇게 하면 로컬 시스템의 포트 9001에 대한 포트 포워딩이 Bastion Host로 설정됩니다.

다음으로 localhost:9001에 대한 SOCKS 프록시를 사용하도록 브라우저 또는 시스템을 구성하십시오. 예를 들어, Mac OS의 경우, [System Preferences]와 [Network], [Advanced]를 선택하고 [SOCKS proxy]를 선택하여 localhost:9001을 입력합니다.

Chrome에서 FoxyProxy 스탠다드를 사용하여 추가 도구, 확장 프로그램을 선택합니다. FoxyProxy 표준에서 세부 정보, 확장 옵션, 새 프록시 추가를 선택합니다. [Manual Proxy Configuration]을 선택합니다. [Host or IP Address]에 localhost를 입력하고 [Port]에는 9001을 입력합니다. [SOCKS proxy?], [Save]를 선택합니다.

이제 템플릿 출력에 나열된 Hyperledger Fabric 호스트 주소에 연결할 수 있습니다.