2020/02/07 追記
$PAC →PAC Globalへのリブランドに伴い、ブロックチェーンのプロトコルもMasternode+PoW→Masternode+Posに変更されました。
PAC Globalのマスターノード構築については別途記事がありますのでこちらを参考にしてください。
関連記事
以前GCPの無料枠で$PACのマスターノードを構築する記事を書きましたが、今回はAWS(Amazon Web Services)で同じように$PACのマスターノードを立ててみたいと思います。
2018/10/9追記
10/3に$PACのネットワークに攻撃があり、少ないメモリのノードがダウンするという事例が発生しました。
AWSの無償枠は通信費用がかかるのと、現在のマスターノードに必要なメモリのマシンは高価になる為この方法は非推奨とさせて頂きます。
無償で構築したい場合はマシンスペック不問で$300まで無償のクレジットが提供されるGCPをおすすめします。
こちらの記事からどうぞ↓
2018/9/10追記
上記の記事でも書きましたが、AWSは完全無料では無く通信費用が発生していました!
完全無料でマスターノードを立てたい場合はGCPで構築しましょう。
AWSの無料枠
AWSはアカウント作成から12ヶ月間の無料枠があります。
公式の説明はこちら↓
12ヶ月間無料と言っても全てが自由に使える訳ではありません。
条件や制限事項があります。
また、1ヶ月毎に無料で使用可能な時間が設定されています。
マスターノードを立てる時はEC2というサービスでLinuxの仮想マシンを作成する必要がありますが、EC2の制限事項は以下です。
AWS は、AWS の新規お客様を対象として無料利用枠をご提供しています。AWS 無料利用枠は毎月以下をカバーします:
Amazon EC2 Linux または RHEL または SLES t2.micro インスタンス使用(1 GiB メモリと、32 ビットと 64 ビットプラットフォームサポート)750 時間 – 毎月の連続実行に十分な時間*
CPUはt2.micro、メモリは1GBの制限があります。750時間は24時間で割ると31.25日なので、仮想マシンのインスタンス(実体)1つだけなら1ヶ月の無料枠に収まります。
マスターノードは24時間稼働させる必要があるので、他のインスタンスの無料枠と併用していると課金されるので注意してください。
AWSは無料枠を超えた分は従量課金制で支払う必要があるようなので、無料枠を超えると課金せずに停止してくれるGCPの方が親切かもしれません。
サービスは停止したくない!という方もいると思うので考え方によりますが…
AWSアカウント作成
無料枠を得るためにAWSアカウントを新規作成します。
AWSアカウント作成方法は公式が画像付きでわかりやすい説明をしているので参考にしましょう。
AWS アカウント作成の流れ
EC2インスタンス作成
EC2はいわゆる仮想マシンで、VMとかVPSとか言われるものです。
まずホーム画面からEC2を選択します。
もしホーム画面が異なったりして見つからない場合は上部のサービスから検索バーに入れる等をして探して選択してください。
EC2のダッシュボードが開かれたらインスタンスの作成を選択します。
マシンイメージの選択
複数のイメージ(OSの構成)候補が出てきます。「無料利用枠の対象」とついたイメージを選択しましょう。
基本的にはLinuxであればよいのですが、Amazon Linux/Linux2かUbuntuあたりが無難でしょうか。
私はUbuntuを選択しました。
選択するとインスタンスタイプ(マシンスペック)の選択画面になります。
デフォルトで無料利用枠の対象の構成がチェックされているので、そのまま右下の確認の確認と作成ボタンを押します。
するとインスタンス作成の確認画面になるので、そのまま作成ボタンを押します。
基本的にデフォルト設定で問題ありません。
後ほどセキュリティグループの作成と割り当てというのを行いますが、今の時点で作成・割り当てしても問題ありません。
キーペアの作成
ここは重要です!
キーペアの作成を行いますが、このキーは作成したインスタンスに接続するのに必要となります。
新しいキーペアの作成を選択し、任意のキーペア名を入力しましょう。
キーペアのダウンロードを行うまでインスタンスの作成はできません。
ダウンロードしたキーペア(.pem)ファイルは大事に保管しましょう。
後から接続する時に使います。
ダウンロードしたらインスタンスの作成を押すとインスタンスが作成されます。
作成したインスタンスの確認
インスタンスを作成すると以下の画面になるので、インスタンスの表示ボタンを押してインスタンス画面に行きます。
またはEC2ダッシュボードのxx個の実行中のインスタンスか、左側のナビゲーションメニューからインスタンスを選択します。
無料利用枠対象のt2.microでインスタンスが作成されている事が確認できます。
Nameの欄にマウスを持っていくと鉛筆マークが出るので、クリックしてMNxxなど分かりやすい名前をつけておきましょう。
IPアドレス固定
固定IPアドレスの作成
GCPでもそうでしたが、AWSもインスタンス作成時のデフォルトではIPアドレスが動的になっています。
静的な固定IPアドレスに設定しましょう。
左側メニューのElastic IPを選択します。
新しいアドレスの割り当てを選択します。
そのまま割り当てを選択しましょう。
固定されたIPアドレスが生成されます。
これもNameに名前をつけて管理しましょう。
アドレスの関連付け
このままだとIPアドレスはどのマシンにも割付いていない為、先程作成したインスタンスに関連付けをします。
インスタンスが割付いているものはインスタンスのIDが表示されています。
右クリックを押すかアクションからアドレスの関連付けを選択しましょう。
リソースタイプはインスタンス、インスタンスは先程作成したものを選択し、関連付けします。
この画面になれば無事関連付け成功です。
セキュリティグループの作成・割り当て(ポート開放)
セキュリティグループの作成
$PACのマスターノードはポート7112番を使って通信をするので、ポートを開放する必要があります。
左側メニューのセキュリティグループを選択してください。
セキュリティグループの作成を選択します。
セキュリティグループ名、説明は管理しやすいような記載をしてださい。※使える文字には制限があります。
インバウンド(他端末→インスタンス方向の通信)タブのルールの追加を押し、カスタムTCPでポート範囲を7112、ソースを任意の場所にして作成を選択します。
ちなみにアウトバウンド(インスンタンス→他端末方向への通信)の設定はデフォルトで全ての通信が許可されているのでそのままでOKです。
インスタンスへのセキュリティグループ割り当て
作成したセキュリティグループをインスタンスに割り当てます。
インスタンスの画面を開き、割り当てたいインスタンスを右クリックしてネットワーキング -> セキュリティグループの変更を選択してください。
ここで先程作成したセキュリティグループにチェックを入れてセキュリティグループの割り当てを選択します。
デフォルトで割付いているものはそのままでOKです。
PuTTYを使用したWindowsからLinuxインスタンスへのSSH接続
GCPではブラウザからSSH接続が出来ましたが、AWSはローカルにSSHクライアントをインストールして接続する必要があります。
ここではWindowsからPuTTYというクライントを使ってSSH接続する方法を書きます。
PuTTYのインストール
以下のURLからWindows 32bit/64bitに合わせてインストーラをダウンロードしてください。
ダウンロードしたら実行してインストールします。
設定は基本的にデフォルトのままでOKです。
キーペアファイルの変換(.pem→.ppk)
AWSでインスタンスを作成した時にダウンロードしたファイルは.pemという形式で、そのままではPuTTYで使用できません。
まずはPuTTYをインストールした時に一緒に入ったputtygen.exeを起動します。
Parametersは欄はRSAを選択し、Loadボタンを押します。
ファイルを選択するダイアログが開きますがデフォルトではファイルの種類が.ppkになっていますので、All Filesに変更してダウンロードした.pemファイルを選択します。
以下のポップアップが出ればLoad成功です。
Save private keyボタンを押して.ppkファイルを保管します。
passphraseを入力していない場合は以下のメッセージが出ますが、問題無ければそのままはいを押します。
.ppkファイルが生成されていれば.pem→.ppkへの変換は成功です。
PuTTYでのSSH接続
では先程作成した.ppkファイルを使ってSSH接続を行います。
まずputty.exeを起動します。
左側メニューのConnection -> SSH -> Authを選択し、Browseボタンを押して作成した.ppkファイルを選択します。
次に左側メニューのSessionを選択し、Connection TypeがSSH、Portが22になっている事を確認します。
基本的にはデフォルト設定のままでOKです。
AWSにはHost Nameにuser_name@public_dns_nameを入力して接続します。
public_dns_nameはインスタンスを選択した時に下に表示される説明のパブリックDNS設定(IPv4)が該当します。
user_nameですが、公式ガイドによるとインスタンスのAMIによってデフォルトのユーザ名が異なります。
- インスタンスの起動に使用した AMI のデフォルトのユーザー名を取得します -
・Amazon Linux 2 または Amazon Linux AMI の場合は、ユーザー名は ec2-user です。
・Centos AMI の場合、ユーザー名は centos です。
・Debian AMI の場合は、ユーザー名は admin または root です。
・Fedora AMI の場合、ユーザー名は ec2-user または fedora です。
・RHEL AMI の場合は、ユーザー名は ec2-user または root のどちらかです。
・SUSE AMI の場合は、ユーザー名は ec2-user または root のどちらかです。
・Ubuntu AMI の場合は、ユーザー名は ubuntu です。
・それ以外の場合で、ec2-user および root が機能しない場合は、AMI プロバイダーに確認してください。
私はUbuntuを選択したのでユーザー名はubuntuです。
Host NameやSSHのprivate keyのパス等を記憶させておくため、MNxxなど名前をつけてSaveしておきましょう。
これでOpenを押すと以下の画面が出てくるのではいを押せば接続できます。
無事接続できると以下のようなコンソール画面になります。
もし接続が成功しない場合はprivateキーやPuTTYの設定が間違っているか、22番のポートがファイアウォールに引っかかっている等が考えられます。
ウォレット、インスタンスのマスターノード設定
結局AWSのEC2インスタンスへのSSH接続の方法のみの記事になってしまいましたが、これでAWSでもマスターノードを構築できます。
関連記事