必要な機能
16コア=16CPU
256GB のディスク
とのことなので、n2の8コア、ディスク256GBのSSDを追加した。インスタンス3
最初は割り当てが足りていないので、割り当ての設定画面から、希望するリージョンの割り当てを8から16GBに変更した。ディスクについても同様に、500GBから1000GBに変更した。
作ったインスタンス
走らせたコード
solanaインストール
g12takea@instance-2:~$ sh -c “$(curl -sSfL https://release.solana.com/v1.9.4/install)”
downloading v1.9.4 installer ✨ 1.9.4 initializedAdding export
PATH=”/home/g12takea/.local/share/solana/install/active_release/bin:$PATH” to /home/g12takea/.profileClose and reopen your terminal to apply the PATH changes or run the following in your existing shell: export PATH=”/home/g12takea/.local/share/solana/install/active_release/bin:$PATH”g12takea@instance-2 (言われた通りのコマンド入力)
ディスク拡張
https://zizou-book-lab.com/gcegoogle-compute-engine-base/
https://cloud.google.com/compute/docs/disks/add-persistent-disk?hl=ja
まずはフォーマットしたいディスクを探す
sudo lsblk
ディスクのフォーマット(初期化) sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
ディスクのマウント
sudo mkdir -p /mnt/disks/MOUNT_DIR
sudo mount -o discard,defaults /dev/sdb /mnt/disks/MOUNT_DIR
アクセス嫌のわり当て
sudo chmod a+w /mnt/disks/MOUNT_DIR
自動きどうようふぁいるのバックアップ sudo cp /etc/fstab /etc/fstab.backup
UUIDの表示
sudo blkid /dev/sdb
ファイル編集
sudoedit /etc/fstab
ファイルに下記の行を追加
UUID=48caad24-4476-4980-bb60-8d60677b8d9a /mnt/disks/MOUNT_DIR ext4 discard,defaults 0 2
catで編集されたことを確認

マウントされたことを確認
df -h
おそらく、HDDを繋いだ感じで、ここにsolanaのフォルダとか保存できるんだと思う。
プロジェクトフォルダ作成
mkdir solanaproject
cd solanaproject
devnetにて、パブリックキー作成
RPC URL: http://api.devnet.solana.com
WebSocket URL: ws://api.devnet.solana.com/ (computed)
Keypair Path: /home/g12takea/validator-keypair.json
Commitment: confirmed
エアドロ
Authorized address
solana-keygen new -o ~/authorized-withdrawer-keypair.json
Wrote new keypair to /home/g12takea/authorized-withdrawer-keypair.json
=====================================================================
pubkey: 2a4yU2pXzjYNwjAaKbHLdRMKhqJexsTmBEi2Mjz2s6i7
=====================================================================
Save this seed phrase and your BIP39 passphrase to recover your new keypair:
wide six this meat foster syrup water silk art gesture forward emerge
=====================================================================
Create Vote Account
solana-keygen new -o ~/vote-account-keypair.json
/*
Wrote new keypair to /home/g12takea/vote-account-keypair.json
===========================================================================
pubkey: DmMbBsM7WEdNxXjwC6Z8oBNoCAosfmZdvKGwNyJs99mZ
===========================================================================
Save this seed phrase and your BIP39 passphrase to recover your new keypair:
ripple unlock tackle great invest busy spoil quote student doctor text have
===========================================================================
*/
solana create-vote-account ~/vote-account-keypair.json ~/validator-keypair.json ~/authorized-withdrawer-keypair.json
バリデーター開始
solana-validator \
–identity ~/validator-keypair.json \
–vote-account ~/vote-account-keypair.json \
–rpc-port 8899 \
–entrypoint entrypoint.devnet.solana.com:8001 \
–log ~/solana-validator.log \
–limit-ledger-size 50000000 \
–ledger /mnt/disks/MOUNT_DIR
log file: /home/g12takea/solana-validator.log
cat /home/g12takea/solana-validator.log
shredというのは、バリデーター間でやり取りされるデータの最小単位。
1shredが2kbなので、50mshredに抑えれば、100GBの容量で足りる。
//-RocksDBのサイズを400GB未満に保つには: | |
//マージンに2000b / shredを使用すると、約1600b / shredが表示されるため、200mのシュレッドを400gbに保存できます。 | |
// 5kシュレッド/スロットで50ktpsの場合、これは500kスロット(約5時間)です。 | |
//アイドル状態では、60シュレッド/スロットこれは約4mスロット(18日)です | |
//これは十分な時間を与えるために選択されます | |
//-ピアからスナップショットをダウンロードしてそこから起動するバリデーター | |
//-バリデーターが自身のスナップショットから再起動する必要がある場合に、ローカルに十分なスロットがあることを確認します | |
//停止したときの位置に追いつく | |
pub const DEFAULT_MAX_LEDGER_SHREDS:u64 = 200_000_000 ; | |
// 50mまで、またはアイドル状態で3。5日、50kの負荷で1時間、約100GBまで許容 | |
pub const DEFAULT_MIN_MAX_LEDGER_SHREDS:u64 = 50_000_000 ; |
エラー
[2022-01-13T14:08:13.137509182Z ERROR solana_net_utils] Received no response at tcp/8899, check your port configuration: timed out waiting on channel[2022-01-13T14:08:18.137960000Z ERROR solana_net_utils] Received no response at tcp/8900, check your port configuration: timed out waiting on channel[2022-01-13T14:08:23.138473639Z ERROR solana_net_utils] Received no response at tcp/8000, check your port configuration: timed out waiting on channel
checked udp ports: [8000, 8001, 8002, 8003], reachable udp ports: {}
多分portが開いてない
Googleのポート開放とSSH
https://qiita.com/tukiyo3/items/03ceb69e97e8cb89f624
curl https://sdk.cloud.google.com | bash gcloud auth login #webブラウザが起動します gcloud config set project sandbox-project-1234
ファイアウォールルールの追加
https://note.com/kaito_takase/n/n68827cfafd4e
https://console.cloud.google.com/networking/firewalls/list?project=organic-storm-338111
ここで、開いていなかったポートを選択し追加。
- ソースIPの範囲 : ルールで許可する送信元を指定します。初期値は0.0.0.0/0(全ホスト)、空欄の場合は許可なしになります。ソースタグとはorで評価されるため、ソースタグで送信元を絞る場合には空欄にします。
- プロトコルとポート : 許可するプロトコル(tcp/udp/icmp)とポート番号をコロン(:)で区切って記述します。複数指定はセミコロン(;)区切り、ポート番号の複数指定はカンマ(,)、範囲指定はハイフン(-)で記述できます。
- ソースタグ/ターゲットタグ : タグを付与したVMインスタンス単位で送信元/送信先の許可ホストを指定します。まだ未設定の架空のタグを指定することも可能です。
途中で容量がいっぱいになった。
ledgerが一番重い

GCEでsolanaノードを立ててみる
Google Compute Engine は、Google の最先端技術を駆使したデータセンターや世界規模のファイバー ネットワークで運用される仮想マシンを提供します。Compute Engine の仮想マシンは高速で起動します。永続ディスク ストレージを備え、安定したパフォーマンスを実現します。
Compute Engine のツールとワークフローは、1 つのインスタンスからグローバルな負荷分散されたクラウド コンピューティングまでスケーリングできます。Google の仮想サーバーではさまざまな構成で使用できます。事前に定義されたサイズで使用することも、特定のニーズに合わせてカスタム マシンタイプを作成することもできます。また、Compute Engine は業界をリードするローカル SSD パフォーマンスも提供します。同等の IaaS サービスのスループットと比べると、Google の仮想サーバーの違いが明確になります。分単位の課金や柔軟な VM 構成と、自動的に適用される継続利用割引により、Compute Engine は料金とパフォーマンスの両面で競合サービスとは一線を画しています。
ただし、独自の内部使用のために、VMインスタンスで投票しないAPIノードを実行すると便利な場合があります。このユースケースには、Solana上に構築された交換とサービスが含まれます。
実際、チームが運営するmainnet-betaバリデーターは、現在(2021年3月)n2-standard-32
、運用上の便宜のために2048 GB SSDを搭載したGCE (32 vCPU、128 GBメモリ)インスタンスで実行されています。
Google Cloud (旧GCP) とは?
Google Cloud (旧GCP) は Google が提供するパブリッククラウドサービスです。同じ種別のサービスとしては、 Microsoft 提供の「 Azure 」や Amazon 提供の「 AWS 」などが挙げられます。
GCEは、AWSのようなもの。
Google Cloud (旧GCP) は、セキュアで高い安定性を持つ Google の IT プラットフォーム環境を自社で利用することができます。ビッグデータや Google Workspace との連携など、『クラウド利用を越えた先の IT 戦略』をシームレスに実現することが可能です。
また、「 BigQuery 」や「 Google Cloud Storage 」など、優れたデータ解析ツールが用意されているため、一部のエキスパートだけでなく、組織全体でデータを活用し、経営戦略の策定や業務改善に繋げていくことが可能です。
さらに GCE ( Google Compute Engine )を活用することで、高品質な仮想マシンを手間なく効率的に立ち上げることができます。 GCE については、次章以降で詳しくご説明します。
Google Compute Engine ( GCE )とは?
最適なインスタンスを選択するためには、 Google Compute Engine ( GCE )について理解を深めておく必要があります。はじめに GCE の基礎知識に関してご説明します。
サービス概要
Google Compute Engine ( GCE )は Google Cloud (旧GCP) に内包されている機能であり、Google のインフラ上に仮想マシンを立ち上げることができるサービスです。業界トップクラスのコンピューティング性能を誇り、自社の目的に合わせて最適な仮想マシンを構築することが可能です。
他の Google Cloud (旧GCP) サービスとの統合はもちろんのこと、柔軟なスケーリング(状況に応じてリソースを増減すること)やコスト削減など、様々な観点から企業の生産性向上を実現することができます。
インスタンスタイプ
GCE で仮想マシンを作る際はインスタンスのタイプを選択する必要があります。詳しくは後述しますが、インスタンスのタイプは「マシンタイプファミリー」と呼ばれるカテゴリに分けられており、カテゴリごとに様々な特徴を持っています。
GCE を利用する場合は、はじめにマシンタイプファミリーのカテゴリを選んだ上でインスタンスタイプを選択し、デプロイを行います。インスタンスタイプには、事前定義されたインスタンスタイプから選ぶパターンと、カスタマイズ可能なカスタムマシンを作るパターンの2つに分類されます。
料金体系
GCE は100%クラウドで提供されているサービスであり、使った分だけ料金が発生する従量課金の料金体系を採用しています。 GCE にはお得にサービスを利用できる割引制度が設けられており、利用する期間・リソースを事前コミットすれば、「確約利用割引」で料金を大幅に削減することが可能です。
また、コミットをしなくても VM の稼働率に応じて割引が適用される「継続利用割引」というものも存在します。例えば、100%稼働している VM に対しては、最終的に使った料金の30%が割引される仕組みとなっています。
GCE のメリット
正しいビジネス判断をサポート
GCE には VM のインスタンスサイズに関するレコメンデーションが搭載されています。
例えば、自社の利用実績に対して VM のサイズが大きすぎる場合は、コスト観点で損をしてしまいますが、 GCE は利用状況に応じて、自動的に推奨サイズをレコメンド(提案)してくれるため、常に最適な VM サイズで運用を行うことが可能になります。
また、 GCE は柔軟性に優れたサービスであるため、自社の要件に合わせてハイブリッドクラウドやマルチクラウドなどの構成を簡単に作ることができます。つまり、多くの運用パターンを想定することができ、実情に即した正しいビジネス判断を行うことが可能です。
企業にとって必要な機能をすべて提供
詳しくは後述しますが、 GCE に内包されているマシンタイプファミリーには、数多くの種類が存在します。
各タイプごとに様々な特徴や強みがあるため、自社の状況に応じて最適なものを必ず見つけることができます。企業が必要とする機能・リソースを漏れなく提供している点は、 GCE の大きなメリットの一つであると言えます。
継続的なイノベーションを実現
GCE はディープラーニングに必要な AI の機能や組み込み型のデータ分析など、様々な機能を搭載しています。また、 CPU だけでなく GPU や マシンラーニングに特化した TPU も利用できます。
このように、企業が GCE の多様なサービスラインナップを活用することで、継続的なイノベーションを強く推進することが可能になります。
高いパフォーマンスと安全なセキュリティ
GCE は月間60億時間分の動画を再生する YouTube や、10億人のユーザーが利用している Gmail と同じインフラをベースとしているため、高速で安定したパフォーマンスを誇ります。
さらに、第三者認証取得のハイレベルなセキュリティを備えており、「 SSAE16 / ISAE 3402 Type II:SOC 2/SOC 3」「 ISO 27001・FISMA Moderate 」「 PCI DSS v3.0」など、さまざまな年次監査を受けています。
GCE の VM インスタンスの特徴
GCE で提供されている VM インスタンスには、全タイプに共通する2つの特徴があります。
価格性能比が高い
GCE では、 CPU ベンダーが提供しているイノベーションをスピーディーに採用しています。また、 Google 独自の技術をサービスの裏側に活用することで、高いパフォーマンスを維持しながら低価格を実現しています。
このように、 GCE の VM インスタンスは、価格性能比(コストパフォーマンス)が高い点が大きな特徴として挙げられます。
様々なワークロードに対応
GCE の VM インスタンスは様々なタイプがあり、どのような要件にも対応できるラインナップとなっています。また、 VM は単体で利用されることは少なく、「ネットワーク」「ストレージ」「ログ監視」なども並行して運用されるケースが一般的です。
上記に挙げた複数要素を一元的に管理することができ、自社に合ったサービスを選べるように多様な選択肢を用意している点は、 GCE のVM インスタンスの特徴の一つだと言えます。
GCE の VM インスタンスの種類
E2
E2 は汎用型の VM インスタンスであり、一番の特徴はコストパフォーマンスの高さです。他のマシンタイプファミリーと比較すると最大で40%程度も利用料金を抑えることができます。
E2 は web サーバーや中小規模のデータベースなどの構築に適した VM インスタンスであり、最大16個の vCPU と 128 GB のメモリを利用できる他、カスタムマシンタイプを含む柔軟な構成を実現することが可能です。
ただし、 E2 は 少し古い CPU を採用しており、「 Intel Xeon Haswell+ 」や「 AMD Rome+ 」などが使われています。また、 CPU の選択ができないため、 E2 を選ぶときは注意が必要です。
N2 & N2D
N2 & N2D は汎用型の VM インスタンスであり、機能の柔軟性やパフォーマンスを優先するワークロードに最適なソリューションです。利用用途としては、エンタープライズアプリ、中規模データベース、 web サービス、アプリ配信などが挙げられます。
N2 & N2D はコンピューティングとメモリのバランスが良く、多種多様なワークロードに対応可能です。また、 CPU の追加による自動アップグレードに対応しており、新世代の CPU がリリースされた際には自動で新しいものに乗り換えることができます。
そのため、一度ワークフローを動かしてしまえば、常に最新の CPU 技術を手間なく利用できるというメリットがあります。さらに N2 & N2D は E2 と同様にカスタムマシンタイプを選択することが可能です。
N2 と N2D の違いはプロセッサであり、 N2 は Intel を採用しており、 N2D は AMD を採用しています。また、料金面においては N2D の方が少し安めの価格設定となっています。
C2
C2 はワークロード最適型の VM インスタンスであり、強力なコンピューティング能力が大きな特徴です。
ハイパフォーマンスな web サーバー、ゲーム、 HPC (ハイパフォーマンスコンピューティング)、メディアトランスコーディングなど、コアの力が求められる場合に有効な選択肢になります。
M2
M2 はワークロード最適型の VM インスタンスです。メモリ最適化が大きな特徴であり、 SAP HANA のような大量のメモリを必要とするケースにおいて効果を発揮する VM インスタンスです。
M2 は GCE の中でメモリの容量単価が最安であり、なおかつ、最速・最新のメモリ技術を採用しています。また、柔軟なインフラストラクチャで構成されているため、自社の状況に合わせて都度リソースを変更することが可能です。
A2
A2 はワークロード最適型の VM インスタンスであり、アクセラレータ最適型と呼ばれているサービスです。
高性能な GPU を搭載している点が特徴であり、機械学習や超並列計算などに適した VM インスタンスとなっています。
まとめ
前項までにご説明した4種類の VM インスタンスを一覧表にまとめました。
VM インスタンス | 種別 | 特徴 | 主な利用シーン例 |
---|---|---|---|
E2 | 汎用型 | コストが安い | web サービス、業務アプリ、開発・テスト環境 |
N2 & N2D | 汎用型 | 柔軟性やパフォーマンスが高い | エンタープライズアプリ、中規模データベース、 web サービスやアプリ配信 |
C2 | ワークロード最適型 | CPU のパフォーマンスが高い | ハイパフォーマンスな web サーバー、ゲーム、 HPC (ハイパフォーマンスコンピューティング) |
M2 | ワークロード最適型 | 大容量メモリを搭載している | SAP HANA 、リアルタイムデータ分析、インメモリキャッシュ |
A2 | ワークロード最適型 | 高性能な GPU を搭載している | 機械学習、 HPC 、超並列計算 |
各タイプごとに様々な特徴を持っているため、自社の状況や要件に合わせて最適なものを選択することが大切です。次章では、具体的な VM インスタンスの選び方をご説明します。
自社に合った VM インスタンスの選び方
コストを抑えて利用したい場合
極力、コストを抑えて VM インスタンスを利用したい場合は E2 がオススメです。汎用型の VM インスタンスながら、低価格と高いパフォーマンスを同時に実現しています。
カスタムマシンタイプも選択可能なため、自社に状況に応じて構成変更したい場合でも、安心してサービスを運用していくことができます。
最新の CPU を利用したい場合
常に最新の CPU でサービスを利用したい場合は、 N2 & N2D がオススメです。自動アップグレードに対応しているため、手間なく最新の CPU を活用することができます。
また、 N2 & N2D はコンピューティングとメモリのバランスが良いため、あらゆるワークロードに柔軟に対応することが可能です。
高い CPU パフォーマンスが必要な場合
ゲーム開発のような高い CPU パフォーマンスが求められる場合は C2 がオススメです。他のマシンタイプファミリーと比較して、コアあたりのパフォーマンスが40%も高くなります。
C2 はワークロード最適型の VM インスタンスであるため、強力なコンピューティングで企業の生産性向上をサポートします。
大量のメモリが必要な場合
メモリを大量に使う場合は M2 がオススメです。すべてのマシンタイプファミリーの中で M2 のメモリ容量は最大となっています。
数 TB 級のライブマイグレーションにおいてもパフォーマンスが劣化することなく利用でき、安心安全な運用を実現することが可能になります。
最適な VM インスタンスを選ぶための3ステップ
1.アプリケーションに特定の条件がないかを確認
はじめに、アプリケーションに特定の条件がないかを確認してください。例えば、ローカル SSD の必要性や特定のコアタイプへの依存性などが挙げられます。
アプリケーション要件によっては利用できない VM インスタンスも存在するため、十分に注意が必要です。
2.コストとパフォーマンス要件を合わせて検討
次にコストとパフォーマンス要件を合わせて検討します。例えば、パフォーマンスがどこまで求められるのか、どのくらいのメモリ量が必要なのか、といった点が挙げられます。
これらの要件を整理し、さらに予算感とコストを踏まえた上で、自社にとって最適な VM インスタンスを選びましょう。
3.デプロイ計画の策定
最後に具体的なデプロイ計画を立てていきます。例えば、大量にデプロイするときはキャパシティプランニングが必要になるケースがありますし、ワークロードに合わせてマイグレーションのプランニングを行うことも大切です。
無計画に VM インスタンスを選定・利用した場合、将来的に運用効率の低下やコストの増加に直結するリスクがあるため、初期段階で確実にデプロイ計画を検討しておきましょう。
まとめ
本記事では、 GCE の基礎的な内容から、各 VM インスタンスの特徴、種類、具体的な選び方まで一挙にご紹介しました。
GCE で提供されている VM インスタンスの種類は多岐にわたるため、 GCE を最大限活用するためには、各タイプの特徴・強みを正しく理解し、自社にとって最適なものを選択する必要があります。まずは自社の要件を明確化し、求める機能に優先順位を付けて慎重に検討してください。
そして、 Google Cloud (旧GCP) を契約するのであれば、トップゲートがオススメです。トップゲート経由で契約することで
- Google Cloud (旧GCP) の利用料金が3% OFF
- クレジットカード不要で請求書払いが可能
- 導入後サポートが充実
など、様々なメリットを享受することができます。
本記事を参考にして、ぜひ Google Cloud (旧GCP) の導入を検討してみてはいかがでしょうか。
弊社トップゲートでは、 Google Cloud (旧GCP) 、または 20ID以上のGoogle Workspace(旧G Suite) 導入をご検討をされているお客様へ「Google Meet で無料個別相談会」を実施いたします。導入前に懸念点を解決したい方、そもそも導入した方がいいのかをお聞きしたい方はお気軽にお申し込みください!
トップゲート経由でGoogle Cloud (旧GCP) をご契約いただけるとGoogle Cloud (旧GCP) の利用料金はずっと3%オフとお得になります!