このページでは、複数のブロックチェーン ネットワークで 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 ディスク。
ブロックチェーン固有のドキュメントに戻って、ノードのデプロイ コマンドの実行を完了してください。