AWSでSymbolノードを立ち上げた後、独自ドメインと報酬条件を反映する

#はじめに

AWSでSymbolノードを立ち上げた後、独自ドメインを反映するのに手間取ったので、
忘れないようにまとめておこうと思います。

AWSノードの立ち上げは、こちらの記事がとても参考になりました。。

https://qiita.com/keiyow/items/8c7568bdd4055f59f32f

この記事でノードを起動させると
SymbolのノードリストにIPアドレスが反映されています。
以下のリンクから確認しておきましょう。


■ Symbol mainnet nodelist
https://symbolnodes.org/nodes/

■ Symbol Block Explorer
http://explorer.symbolblockchain.io

*Cloudformationのリンクをクリックするとロード中の画面から
変わらないことがありましたが、少し時間をおいて再度試したらできました。

#独自ドメインを取得し、ホストゾーンを作成する

Route53から、希望するドメインを入力。

![$R7GMP9M.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/ca339130-c1c4-cb70-9c64-46b3bcce0262.png)

個人情報を入力し、確認画面にいって登録完了です。

![$R8AAA52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/58ca6cba-d616-37dd-fc6e-e8874ed17c23.png)

次は、独自ドメインのトラフィックを設定します。ホストゾーンをクリック。

![sss.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/d3702a31-a10d-3e03-2cb5-e664cf258736.png)

反映させたいドメインを選択し、ホストゾーンの作成  (現時点では、レコード数は2になっています)

![44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/41fefd76-67e8-a39d-e809-8faedfb57236.png)

取得した独自ドメインを入力し、ホストゾーンの作成。

![88.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/8f4310d0-b802-b8e8-a49e-e636ecd007e3.png)



レコードを作成で、Aレコードを作成し、DNSで定義したい独自ドメインについての情報を入れていきます。

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/c9aad965-7472-fa26-fb4f-a18cd74d4f07.png)

シンプルルーティングを選択後、次へ。

![シンプルルーティング.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/21acd938-027b-9d29-c06e-dbcdb1cf35d1.png)

シンプルなレコードの定義を設定します。

![シンプルなレコードの定義.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/ebf361a8-bce2-6d09-ae74-46e7efe60ffe.png)


レコードタイプをAにして、値/トラフィックのルーティング先にパブリック IPv4アドレスを入力します。パブリック IPv4 アドレスは、EC2管理画面で確認可能です。

![パブリック.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/212ab07c-bb4d-b139-13f0-50544578b877.png)

シンプルなレコードを定義をクリックし、ホストゾーンにAレコードが追加完了です。最後に、【ホストゾーン】と【独自ドメイン】のネームサーバーの値が一致しているかを確認しましょう。【独自ドメイン】のネームサーバーの値を変更して一致させます。

Route 53 ダッシュボードから確認できます。

![ホストゾーン　ネームサーバー３.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/3362c3c6-db28-9037-bb4b-75b755774ba5.png)

【ホストゾーンのネームサーバー】
![ホストゾーン　ネームサーバー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/e7c01038-c98a-c9df-b18c-729a4337aee3.png)

【独自ドメインのネームサーバー】

![ホストゾーン　ネームサーバー２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/a66dcb93-1521-0b58-5064-ae1b5c451af0.png)



これで、ホストゾーンの設定が完了です。
http://{独自ドメイン}:3000/chain/info
でアクセスできるようになりますので確認してみましょう。
nodelistには、独自ドメインはまだ反映されていない状態です。

#報酬条件と独自ドメインを設定する
次に報酬設定や独自ドメインを反映していきます。
EC2の管理画面で、インスタンスを選択後、接続をクリック。
![ssss.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/dca179e2-b844-8c11-f21e-209ea30bd517.png)

セッションマネジャーを選択し、接続をクリック。

![セッション.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/8368a701-ae39-2632-912c-503a1c7110c7.png)
正常な状態では$
が表示されコマンドを打ち込める状態になりますが、
まれに$が表示されない時がありました。
時間をおいたら改善されました。
![コマンド.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245653/08965814-22bf-c814-46ac-af59ca2a264e.png)

まずは、報酬条件の設定を行います。

```
sudo su - symbol
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

symbol@sv-dual:~$ cd /mnt/symbol/data
symbol@sv-dual:/mnt/symbol/data$
vi target/nodes/node/server-config/resources/config-harvesting.properties 

```



編集する箇所は、以下の3つ。【 i 】でインサートモードにして、編集します。

◆ maxUnlockedAccounts = 10 (委任を受け入れる上限)
◆ delegatePrioritizationPolicy = Age or Importance  (先着順かインポータンス順か)
◆ beneficiaryAddress = ハーベスト報酬を受け取るアドレス

変更したら、Escでコマンドモードにし、【 :wq 】で上書き保存して完了です。

```
[harvesting]

harvesterSigningPrivateKey = ***
harvesterVrfPrivateKey =  ***

enableAutoHarvesting = true
maxUnlockedAccounts = 20
delegatePrioritizationPolicy = Age
beneficiaryAddress = NDC********************************

```

次に独自ドメインを反映させる操作です。
~/symbol-bootstrap/target 下に my-preset.ymlを作成して、そこに記述することで反映されます。

```
$ cd ~/
$ mkdir -p ~/symbol-bootstrap/target
// ~/symbol-bootstrap/targetに移動
$ vi my-preset.yml
```

hostの部分に独自ドメインを入力して、上書き保存します。
v.1.0.2の時は、docker-compose.yml も設定する必要がありましたが、今は編集しなくてもよさそうです。

```
nodes:
    -
        friendlyName: ******
        host: '********.com'
```

最後にこれらの条件を反映させます。

```
// 設定ファイル反映
symbol-bootstrap config -p mainnet -a dual -c my-preset.yml --upgrade
// docker-compose.yml再構築
symbol-bootstrap compose --upgrade
// 起動
symbol-bootstrap run -d
// ヘルスチェック
symbol-bootstrap healthCheck
// 疏通確認
http://[ip または host]:3000/node/info
http://[ip または host]:3000/node/unlockedaccount
```


nodelistを確認し、独自ドメインが反映されているのを確認して完了です。

#参考サイト
◆ Symbol node list : https://symbolnodes.org/nodes/
◆ Symbol Block Explorer : http://explorer.symbolblockchain.io
◆ カスタムプリセットの公式ガイド : https://github.com/nemtech/symbol-bootstrap/blob/main/docs/presetGuides.md
◆ Slack (Tanuson ) : https://tanuson.slack.com/ssb/redirect
◆ Qiita | Symbolノードを30分でAWS上に立ち上げる : https://qiita.com/keiyow/items/8c7568bdd4055f59f32f