IT/Blockchain2023. 2. 17. 12:29

이 문서는 Klaytn Cypress 노드를 AWS 스팟 인스턴스를 이용하여 비용 효율적으로 구축할 수 있는 방법에 대해서 설명합니다.

: EN(Endpoint Node)을 구축하는 방법을 설명합니다.

: [AWS 시스템 구축 관련] AWS 스팟 인스턴스 구성 방법

목차
0. 설치 요구 사항
1. 다운로드
2. 방화벽 설정
3. 압축 해제 및 환경 설정
4. 노드 실행 및 확인
5. Chain 데이터 활용
6. 기타
참고문서

 

0. 설치 요구사항

- 하드웨어: 8vCPU, 64 GiB Mem

- 스토리지: 3 TB SSD + 2.5 GiB/일(Chaindata를 압축해제하려면 초기 5 TiB 필요) 

- OS: Amazon Linux 2, Ubuntu 등

1. 다운로드

wget -c https://packages.klaytn.net/klaytn/v1.9.1/ken-v1.9.1-0-linux-amd64.tar.gz

wget -c https://s3.ap-northeast-2.amazonaws.com/klaytn-chaindata/cypress/klaytn-cypress-chaindata-20230215010212.tar.gz

- 패키지 다운로드 페이지 에서 최신 Cypress 노드 패키지를 다운로드 합니다.

- Klaytn Cypress Chain Data 페이지에서 체인 데이터를 다운로드 합니다. 

  : 다운로드 시간이 약 7시간 정도 소요되네요. (35 MB/s 속도 기준)

 

2. 방화벽 설정

// 노드간 블록 및 Tx 싱크 (IN, OUT 전체(0.0.0.0/0) 오픈)
P2P: 32323, 32324

// JsonRPC, WebSocket 통신 (서비스 허용할 특정 IP 오픈)
RPC: 8551 
WS: 8552

// 서비스 체인 설정
Service Chain Bridge Port: 50505

 

3. 압축 해제 및 환경 설정

// 압축 해제
tar xvfz ken-v1.9.1-0-linux-amd64.tar.gz

// pigz 설치(압축 해제 속도 향상)
sudo apt-get install pigz

// chaindata 압축 해제
nohup tar -I pigz -pxf klaytn-cypress-chaindata-20230215010212.tar.gz -C ./kend_home/ &

// 폴더 생성
mkdir kend_home

// 환경 설정
vi ~/.bash_profile

export PATH=$PATH:$HOME/ken-linux-amd64/bin

source ~/.bash_profile

 

4. 노드 실행 및 확인

// 노드 실행
kend start

// 노드 상태 확인
kend status

// 로그 확인
tail -f ~/kend_home/logs/kend.out

 

5. Chain 데이터 활용

tar xvfz klaytn-cypress-chaindata-20230215010212.tar.gz

mv [압축해제 폴더명] kend_home

kend start

* Chaindata Migration : 체인 데이터 용량을 줄이기 위한 방법을 제공한다.

 

6. 기타

- 블록체인 데이터들이 몇 년만에 수 테라바이트가 되었다.

- 상태 정보를 요약하여 용량을 줄이는 방법을 제공하지만 신뢰성과 시간, 비용을 맞바꾼 것이다.

- 블록체인은 태생적으로 여러 노드에 동일한 데이터를 저장, 검증하는 구조이기 때문에 비효율적인 면이 있다.

- 정기적으로 특정 시점의 상태 정보를 가지고 다시 시작할 수 있는 프로세스가 필요하다.  

 

[참고 문서]

1. Klaytn 노드 하드웨어 요구사항

2. Klaytn 노드 패키지 다운로드

3. Klaytn EN 설치  

 

[작성 이력]

- 2023.02.20 v1.0.0 : 초기 내용 작성

- 2023.02.21 v1.0.1 : chaindata 압축 해제 방식 수정  

 

기타 문의 사항 등은 덧글 달아주시구요.

도움이 되셨으면 ♥ 눌러주세요.   

반응형
Posted by IT반장
IT/AWS2023. 2. 16. 16:51

이 문서는 Ethereum 호환 블록체인 노드를 운영하기 위해 AWS 환경에서 비용 효율적으로 구축할 수 있는 방법에 대해서 설명합니다.

: AWS에서는 남는 자원을 활용하여 대략 65% ~ 80% 할인된 가격으로 인스턴스(서버)를 사용할 수 있는 "스팟 요청"을 제공합니다.

목차
1. 스팟 인스턴스 요청
2. 추가 시작 파라미터
3. 목표 용량
4. 네트워크
5. 인스턴스 유형
6. 기타

 

1. 스팟 인스턴스 요청

- AWS 웹 콘솔 화면에서 "EC2 > 스팟 요청 > 스팟 인스턴스 요청" 메뉴로 들어갑니다.

- 시작 파라미터 수동 구성을 선택합니다.

- AMI 에서 리눅스 이미지를 선택합니다.

  : Amazon Linux 2, Ubuntu Server 22, 또는 이전 생성한 AMI 를 선택합니다.

- 키 페어를 선택합니다.

 : 키 페어가 없으면 EC2 > 키 페어 에서 생성합니다.

 

2. 추가 시작 파라미터

- 시스템 모니터링이 필요하면 "CloudWatch 세부 모니터링 활성화"를 체크합니다.

- 보안 그룹을 선택합니다.

  : 노드간 연결을 위한 Port 및 노드 RPC 연결을 위한 포트를 오픈합니다.

  : ex) geth 의 경우 노드간 연결은 30303, RPC는 8545 입니다. 

- 퍼블릭 IP 자동 할당을 활성화합니다.

  : IP 비용 및 자동 재실행시 블록 싱크 등에 효율적입니다. 

- 필요 시 태그를 생성합니다.

 

3. 목표 용량

- 원하는 시스템(인스턴스)의 개수(목표 용량)를 설정합니다.

- 목표 용량 유지를 체크하여 인스턴스가 중단되면 자동으로 대체되도록 설정합니다.

 

4. 네트워크

- 네트워크는 외부 통신이 가능한 Public Zone의 VPC 및 Subnet을 선택합니다.

 

5. 인스턴스 유형

- 여기서는 비용 효율적인 노드 구성을 목표로 하므로 8vCPU 정도의 메모리 16G 이상의 인스턴스 유형을 선택합니다.

  : 8개 이상 많이 사용하는 인스턴스를 선택하는 것을 권장합니다. c5.2x, m5d.2x, t3.2x 등 비용 순으로 선택합니다.

- 할당 방식은 "가격 용량 최적화(권장)"을 선택합니다.

 

6. 기타

- 해당 설정 등은 AWS Seoul 리전에서 수 개월간 Ethereum 테스트 노드들을 운영하면서 최적화한 설정입니다.

- 시스템 용량은 2 TB 이상을 권장합니다.

- 사전에 리눅스 AMI를 생성하여 노드 구성을 테스트 한 후에 AWS Spot 구성을 하여 비용 효율적으로 운영하는 것을 추천합니다.

- 시스템 비용은 시간당 약 $0.13 이므로 월간 $100 로 안정적으로 이더리움 호환 노드를 운영할 수 있습니다.

- 스토리지 비용은 2 TB SSD 약 단가 $0.114 * 2,000 GiB = $228 입니다.

 

기타 문의 사항 등은 덧글 달아주시구요.

도움이 되셨으면 ♥ 눌러주세요.   

반응형
Posted by IT반장