이 페이지에는 여러 블록체인 네트워크에서 RPC 노드를 실행하기 위한 권장사항이 포함되어 있습니다.
구체적으로 이 튜토리얼에서는 다음을 안내합니다.
- 노드의 새 VPC를 만듭니다.
- 노드의 VM을 시작합니다.
- 노드 관리자의 새 프로필을 설정합니다.
- 체인 데이터를 위해 VM에 외부 디스크 마운트
이 가이드에서는 결제가 사용 설정된 Google Cloud 프로젝트가 이미 있다고 가정합니다. 자세한 방법은 프로젝트 만들기 및 관리를 참고하세요.
새 VPC 만들기
VPC 생성에 관한 자세한 안내는 VPC 네트워크 만들기 및 관리를 참고하세요.
다음 권장사항에 따라 노드의 VPC를 만듭니다.
- 커스텀 VPC 만들기
- 리전별 라우팅 모드
- MTU 1460
- 네트워크에 기본
BLOCKCHAIN_VPC_NETWORK-allow-ssh
방화벽 규칙을 사용 설정합니다. 자세한 내용은 VPC 방화벽 규칙 사용을 참고하세요.
BLOCKCHAIN_VPC_NETWORK
을 노드 리소스를 보유할 VPC의 이름으로 바꿉니다(예:ethereum-vpc
).네트워크에 IPv4 서브넷을 추가합니다. 서브넷에 선택한 리전이 노드를 배포하려는 리전과 동일한지 확인합니다.
VPC에서 방화벽 규칙 VM을 만드는 방법을 알아보려면 VPC 방화벽 규칙 만들기를 참고하세요.
외부 SSD로 VM 시작
VM 생성 및 외부 디스크 연결에 관한 자세한 안내는 Compute Engine 문서를 참고하세요.
블록체인 네트워크의 특정 요구사항과 일치하는 VM 도형에 관한 구체적인 안내는 블록체인별 노드 페이지의 Hardware Requirements and Recommended Machine Type
섹션에서 확인할 수 있습니다. 블록체인별 문서에서 CPU 및 메모리 요구사항, 노드에 권장되는 VM 셰이프, 노드 생성 명령어를 확인하세요.
SSH를 사용하여 VM에 연결하고 새 사용자 만들기
SSH를 통해 VM에 연결
VM이 프로비저닝되면 Compute Engine 페이지로 이동하거나 Cloud Shell에서 다음 명령어를 실행하여 SSH를 사용하여 VM에 연결합니다.
gcloud compute ssh NODE_NAME
NODE_NAME을 노드 이름으로 바꿉니다. 소문자, 숫자, 하이픈을 사용하세요. 예를 들면
my-node
입니다.자체 머신에서 연결하는 경우 gcloud CLI 설치에 설명된 대로 Google Cloud CLI를 설치합니다.
Google Cloud CLI 설치가 완료되면 프로젝트에 로그인하고 VM에 연결합니다.
gcloud init gcloud compute ssh USER@NODE_NAME
USER을 사용자 로그인 이름으로 바꿉니다. Google Cloud
새 사용자 만들기
SSH를 통해 VM에 연결한 후 노드의 모든 리소스를 소유하고 관리할 SSH가 아닌 sudo 사용자를 만듭니다. 이 사용자는 VM 메타데이터에 SSH 키가 없으므로 인증된 Google Cloud 사용자 중 한 명을 통해 먼저 머신에 연결해야만 액세스할 수 있습니다.
새 sudo 사용자를 만들고 다음을 실행합니다.
sudo useradd -m NODE_ADMIN
NODE_ADMIN를 새 사용자의 사용자 ID로 바꿉니다. 예를 들면
node-admin
입니다.사용자를 sudo 그룹에 추가합니다.
sudo usermod -aG sudo NODE_ADMIN
이 사용자로 전환하여 외부 디스크 마운트를 완료합니다.
sudo su - NODE_ADMIN
외부 디스크 마운트
2단계에서 만든 외부 디스크에 노드의 모든 체인 데이터가 저장됩니다. VM이 종료된 후 노드 간에 데이터를 포팅하고 체인 데이터의 스냅샷 일정을 쉽게 구성할 수 있으므로 이 방법을 사용하는 것이 좋습니다.
디스크를 마운트합니다. 먼저 VM에서 사용 가능한 모든 디스크를 나열합니다.
sudo lsblk
외장 디스크는 대부분
/dev/sdb
아래에 있습니다. 2단계에서 만든 디스크의 크기로 외부 디스크를 알 수 있습니다.디스크를 포맷합니다.
sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
디스크의 디렉터리를 만들고 마운트합니다.
sudo mkdir -p /mnt/disks/CHAIN_DATA_NAME sudo mount -o discard,defaults /dev/sdb /mnt/disks/CHAIN_DATA_NAME
다음을 바꿉니다.
- CHAIN_DATA_NAME: 체인의 데이터 디렉터리 이름입니다. 예를 들면
my-eth-data
입니다. - /dev/sdb:
/dev/sdb
과 다른 경우 디스크의 위치입니다.
- CHAIN_DATA_NAME: 체인의 데이터 디렉터리 이름입니다. 예를 들면
NODE_ADMIN
에 쓰기 권한을 할당합니다.sudo chmod a+w /mnt/disks/CHAIN_DATA_NAME
디스크의 UUID를 가져와 다시 시작 시 자동으로 다시 마운트되도록
fstab
에 추가합니다.sudo blkid /dev/sdb export DISK_UUID=$(findmnt -n -o UUID /dev/sdb) echo "UUID=$DISK_UUID /mnt/disks/CHAIN_DATA_NAME ext4 discard,defaults,nofail 0 2" | sudo tee -a /etc/fstab
이제 디스크가 마운트되어 준비되었습니다. 마운트된 디스크를 확인하려면 다음을 실행합니다.
df -h
다음 단계
노드의 스켈레톤이 준비되었습니다. 이 시점에서 다음을 확인할 수 있습니다.
- SSH 액세스가 사용 설정된 노드의 VPC
- 노드의 요구사항에 맞는 VM입니다.
- 노드 리소스를 소유하고 관리할 새 노드 관리자 사용자입니다.
- 노드의 스토리지 요구사항에 맞게 장착된 외부 SSD 디스크입니다.
블록체인별 문서로 돌아가 노드의 배포 명령어 실행을 완료하세요.