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반장
IT/Blockchain2022. 10. 18. 18:02

안녕하세요. IT반장입니다.

이번 시간에는 이더리움 테스트를 위한 테스트 노드 Goerli 설치하는 방법을 소개하겠습니다.

 

 

목차

1. 기본 환경 설정
2. geth 노드 설치 및 실행
3. prysm 모듈 설치 및 실행
4. 기타



0. 설치 환경

- 하드웨어: 최소 CPU 4 core, Mem 8 G, SSD 400 G (AWS c5.xlarge, c5.2xlarge)

- OS: 리눅스(Ubuntu20.04 등)

 

1. 기본 환경 설정

# 관련 패키지 설치
sudo apt-get install
sudo apt-get update

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum

# geth 버전 확인
geth version

#---------------------------
Geth
Version: 1.10.25-stable
Git Commit: 69568c554880b3567bace64f8848ff1be27d084d
Architecture: amd64
Go Version: go1.18.5
Operating System: linux
GOPATH=
GOROOT=go
#---------------------------

 

2. geth 노드 설치 및 실행

# 디렉토리 생성
mkdir ethereum
cd ethereum
mkdir consensus
mkdir execution
cd consensus
mkdir prysm
cd prysm

# 키 생성
openssl rand -hex 32 | tr -d "\n" > "jwt.hex"

# geth 실행
nohup geth --goerli --http --http.api eth,net,engine,admin --authrpc.jwtsecret ./jwt.hex > geth.log &

# --syncmode snap/full/light 선택 가능
# 백그라운드 실행 설정(nohup ... &) 및 로깅 설정( > geth.log)은 필요시 사용한다.

# 로그 확인
tail -f geth.log

 

3. prysm 모듈 설치 및 실행

# 신규 터미널에서 prysm 다운로드
cd ethereum/consensus/prysm
curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh && chmod +x prysm.sh
wget https://github.com/eth-clients/eth2-networks/raw/master/shared/prater/genesis.ssz

# prysm 실행
./prysm.sh beacon-chain --execution-endpoint=http://localhost:8551 --prater --jwt-secret=./jwt.hex --genesis-state=genesis.ssz --suggested-fee-recipient=0x01234567722E6b0000012BFEBf6177F1D2e9758D9

# 관련 동의 후 백그라운드 실행
nohup ./prysm.sh beacon-chain --execution-endpoint=http://localhost:8551 --prater --jwt-secret=./jwt.hex --genesis-state=genesis.ssz --suggested-fee-recipient=0x01234567722E6b0000012BFEBf6177F1D2e9758D9 > prysm.log &

# 수수료 수신할 주소는 변경한다.
# 백그라운드 실행 설정(nohup ... &) 및 로깅 설정( > prysm.log)은 필요시 사용한다.

# 로그 확인
tail -f prysm.log

 

4. 기타

# 블록을 Sync 하는데 약 4-5일 소요된다. 
[2022-10-18 08:05:33]  INFO p2p: Peer summary activePeers=39 inbound=0 outbound=39
[2022-10-18 08:05:36]  INFO initial-sync: Processing block batch of size 63 starting from  0x0f88f3c9... 156800/4131028 - estimated time remaining 116h12m19s blocksPerSecond=9.5 peers=39

# 따라서 geth 실행시 --syncmode light 등을 적용하여 목적에 맞게 노드를 운영한다.
 

 


참고 목록

[1] https://notes.ethereum.org/@launchpad/goerli

[2] https://docs.prylabs.network/docs/install/install-with-script 

[3] https://goerli.net/

[4] https://eth-clients.github.io/checkpoint-sync-endpoints/#goerli

[5] https://goerli-faucet.pk910.de/

 


문서 이력

- v1.0 (20221018) :  최초 등록

- v1.1 (20221027) :  설치 환경 추가

 


도움이 되셨다면 

 눌러 주세요.^^

 


 

반응형
Posted by IT반장