일반적인 자체 관리형 노드 설정

이 페이지에는 여러 블록체인 네트워크에서 RPC 노드를 실행하기 위한 권장사항이 포함되어 있습니다.

구체적으로 이 튜토리얼에서는 다음을 안내합니다.

  • 노드의 새 VPC를 만듭니다.
  • 노드의 VM을 시작합니다.
  • 노드 관리자의 새 프로필을 설정합니다.
  • 체인 데이터를 위해 VM에 외부 디스크 마운트

이 가이드에서는 결제가 사용 설정된 Google Cloud 프로젝트가 이미 있다고 가정합니다. 자세한 방법은 프로젝트 만들기 및 관리를 참고하세요.

새 VPC 만들기

VPC 생성에 관한 자세한 안내는 VPC 네트워크 만들기 및 관리를 참고하세요.

  1. 다음 권장사항에 따라 노드의 VPC를 만듭니다.

    • 커스텀 VPC 만들기
    • 리전별 라우팅 모드
    • MTU 1460
    • 네트워크에 기본 BLOCKCHAIN_VPC_NETWORK-allow-ssh 방화벽 규칙을 사용 설정합니다. 자세한 내용은 VPC 방화벽 규칙 사용을 참고하세요.

    BLOCKCHAIN_VPC_NETWORK을 노드 리소스를 보유할 VPC의 이름으로 바꿉니다(예: ethereum-vpc).

  2. 네트워크에 IPv4 서브넷을 추가합니다. 서브넷에 선택한 리전이 노드를 배포하려는 리전과 동일한지 확인합니다.

VPC에서 방화벽 규칙 VM을 만드는 방법을 알아보려면 VPC 방화벽 규칙 만들기를 참고하세요.

외부 SSD로 VM 시작

VM 생성 및 외부 디스크 연결에 관한 자세한 안내는 Compute Engine 문서를 참고하세요.

블록체인 네트워크의 특정 요구사항과 일치하는 VM 도형에 관한 구체적인 안내는 블록체인별 노드 페이지의 Hardware Requirements and Recommended Machine Type 섹션에서 확인할 수 있습니다. 블록체인별 문서에서 CPU 및 메모리 요구사항, 노드에 권장되는 VM 셰이프, 노드 생성 명령어를 확인하세요.

SSH를 사용하여 VM에 연결하고 새 사용자 만들기

SSH를 통해 VM에 연결

  1. VM이 프로비저닝되면 Compute Engine 페이지로 이동하거나 Cloud Shell에서 다음 명령어를 실행하여 SSH를 사용하여 VM에 연결합니다.

    gcloud compute ssh NODE_NAME
    

    NODE_NAME을 노드 이름으로 바꿉니다. 소문자, 숫자, 하이픈을 사용하세요. 예를 들면 my-node입니다.

  2. 자체 머신에서 연결하는 경우 gcloud CLI 설치에 설명된 대로 Google Cloud CLI를 설치합니다.

  3. Google Cloud CLI 설치가 완료되면 프로젝트에 로그인하고 VM에 연결합니다.

    gcloud init
    gcloud compute ssh USER@NODE_NAME
    

    USER을 사용자 로그인 이름으로 바꿉니다. Google Cloud

새 사용자 만들기

SSH를 통해 VM에 연결한 후 노드의 모든 리소스를 소유하고 관리할 SSH가 아닌 sudo 사용자를 만듭니다. 이 사용자는 VM 메타데이터에 SSH 키가 없으므로 인증된 Google Cloud 사용자 중 한 명을 통해 먼저 머신에 연결해야만 액세스할 수 있습니다.

  1. 새 sudo 사용자를 만들고 다음을 실행합니다.

    sudo useradd -m NODE_ADMIN
    

    NODE_ADMIN를 새 사용자의 사용자 ID로 바꿉니다. 예를 들면 node-admin입니다.

  2. 사용자를 sudo 그룹에 추가합니다.

    sudo usermod -aG sudo NODE_ADMIN
    
  3. 이 사용자로 전환하여 외부 디스크 마운트를 완료합니다.

    sudo su - NODE_ADMIN
    

외부 디스크 마운트

2단계에서 만든 외부 디스크에 노드의 모든 체인 데이터가 저장됩니다. VM이 종료된 후 노드 간에 데이터를 포팅하고 체인 데이터의 스냅샷 일정을 쉽게 구성할 수 있으므로 이 방법을 사용하는 것이 좋습니다.

  1. 디스크를 마운트합니다. 먼저 VM에서 사용 가능한 모든 디스크를 나열합니다.

    sudo lsblk
    

    외장 디스크는 대부분 /dev/sdb 아래에 있습니다. 2단계에서 만든 디스크의 크기로 외부 디스크를 알 수 있습니다.

  2. 디스크를 포맷합니다.

    sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
    
  3. 디스크의 디렉터리를 만들고 마운트합니다.

    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과 다른 경우 디스크의 위치입니다.
  4. NODE_ADMIN에 쓰기 권한을 할당합니다.

    sudo chmod a+w /mnt/disks/CHAIN_DATA_NAME
    
  5. 디스크의 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
    
  6. 이제 디스크가 마운트되어 준비되었습니다. 마운트된 디스크를 확인하려면 다음을 실행합니다.

    df -h
    

다음 단계

노드의 스켈레톤이 준비되었습니다. 이 시점에서 다음을 확인할 수 있습니다.

  • SSH 액세스가 사용 설정된 노드의 VPC
  • 노드의 요구사항에 맞는 VM입니다.
  • 노드 리소스를 소유하고 관리할 새 노드 관리자 사용자입니다.
  • 노드의 스토리지 요구사항에 맞게 장착된 외부 SSD 디스크입니다.

블록체인별 문서로 돌아가 노드의 배포 명령어 실행을 완료하세요.