HarperDBをAkamai Cloud Computing Servicesにインストールしてみた

## はじめに
[HarperDB](https://www.harperdb.io/) は、アプリケーションとデータベースを一つのパッケージに統合した「分散型データベースアプリケーションプラットフォーム」です。データ処理の効率化、パフォーマンスの向上、コスト削減などの効果が期待できます。
このブログでは、HarperDBをAkamai Cloud Computing Services（Linode)にインストールする手順を紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/09c37a42-f855-d2d3-5565-73d45cead26a.png)

## Akamai Cloud Computing ServicesへHarperDBのインスタンスを構築
まずは[Akamai Cloud Computing Services(Linode)](https://www.linode.com/)上にVMを立ち上げます。
今回は、大阪リージョンにUbuntu 24.04を選択しました。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/8261ddaa-a774-c7e4-1793-ae1cb74cfbe3.png)
VMを立ち上げ、root以外のsudoが可能なUserを作成します。
今回は「acc」というUserを作成しsudo権限を付与しました。
```
root@localhost:~# adduser acc
root@localhost:~# gpasswd -a acc sudo
```
accのHomeディレクトリーにNVM、Node.js、HarperDBを構築していきます。
```
root@localhost:~# su - acc
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

acc@localhost:~$
```

まずはOSのパッケージアップデートを行います。
```
acc@localhost:~$ sudo apt update && sudo apt upgrade -y
```
HarperDBはNode.js上で動作しますので、nvmを使ってNode.jsをインストールします。
以下のコマンドでnvmをインストールします。
```
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/90629039-d00b-e09a-3552-2ce457278b62.png)

nvmのインストールが完了したら、ユーザーaccから一度ログアウトし、再度ログインします。
```
acc@localhost:~$ exit
logout
root@localhost:~# su - acc
acc@localhost:~$
```
次に以下のコマンドでnvmを使ってNode.jsの18.15.0をインストールします。
```
acc@localhost:~$ nvm install 18.15.0
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/ee08f9c9-3564-1780-2c9b-48ab74b79eb0.png)

以下のコマンドでHarperDBをインストールします。
```
linode@localhost:~$ npm install -g harperdb
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/b95c5b90-feb5-4a3c-0f5c-aca0e929d662.png)

次に、harperdbを実行し設定内容を入力しインスタンスを立ち上げます。
問いかけには次のようにデフォルトの値をそのまま入力し、最後のHDM_ADMINのpasswordは独自のパスワードを入力します。
```
acc@localhost:~$ harperdb

I Agree to the HarperDB Terms and Conditions. (yes/no) yes
Please enter a destination for HarperDB: /home/linode/hdb
Please enter a server listening port for HarperDB: 9925
Please enter a username for the HDB_ADMIN: HDB_ADMIN
Please enter a password for the HDB_ADMIN: [hidden]　”PASSWORD入力”
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/6164a6df-38b2-6240-43fb-a5a6cc679353.png)

インストールが完了したら、Ctrl+Cを押して一旦コマンドプロンプトに戻ります。
デフォルトではHTTPのみの設定になるため、インスタンスがHTTPS接続できるように設定ファイルを変更します。　そのため以下のコマンドで一旦HarperDBを停止させます。
```
acc@localhost:~$ harperdb stop
```
HarperDBのインストールディレクトリー（/home/acc/hdb/)に移動し、HarperDBの設定ファイル（harperdb-config.yaml）を変更します。
```
acc@localhost:~$ ls
hdb
acc@localhost:~$ cd hdb
acc@localhost:~/hdb$ ls
backup      components  doc                   keys  node_modules  trash
clustering  database    harperdb-config.yaml  log   transactions
```


テキストEditorで「harperdb-config.yaml」を開いて、operationsApi:セクションに"https: true"を追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/dd661421-a4cf-9944-79e5-e37c93e8b259.png)

次にHarperDBのインスタンスを再起動させると変更した設定ファイルが適用され、インスタンスへHTTPS接続が可能な状態になります。
```
acc@localhost:~/hdb$ harperdb start
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/2a4e0e0b-2f00-0a9d-b517-df8d00e74e92.png)

これでAkamai Cloud Computing Services（Linode)へHarperDBのインスタンスのインストール作業が終わりました。

## HarperDB studioを使ってインスタンスを管理
ブラウザーから[HarperDB Studio](https://studio.harperdb.io/)に接続しHarperDBのインスタンスを管理することができます。
HarperDB Studioを利用するためには無料のアカウントの作成が必要です。
[https://studio.harperdb.io/sign-up](https://studio.harperdb.io/sign-up)からアカウントを申請して取得します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/4425005c-2fe0-e0a4-b3d1-edf833ba4e41.png)

取得したアカウントを用いて[Harperdb Studio](https://studio.harperdb.io/)へログインします。

ログイン後、Register Enterprise Instanceをクリックし、Akamai Cloud Computing Services（Linode）で作成したHarperDBインスタンスの情報を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/2aace15e-ed36-e3a6-aaa3-958dffd6277f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/d58cd6e5-21f8-ff6b-5847-9fed2b89d16f.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/0c54e7c3-b7e1-e7e5-7480-15dd622e47ba.png)
Instance情報を入力します。

Instance name: 任意の名前
Username: HDB_ADMIN
Password: 設定したパスワード
Host: LinodeのIPアドレス
Port: 9925
SSL：　チェックする

インスタンズの情報入力後に、Instance Detailsをクリックすると、下に”You may need to accept the instance's self signed cert”と警告がでるので、その警告の右にある矢印アイコンをクリックするとブラウザーの別のタブでHarperdbのインスタンスへSSL接続をします。
別のタブでインスタンスへ接続すると、証明書の警告がでるので、証明書エラーを無視してインスタンスサーバーへ接続したあと、元のタブに戻り、もう一度Instance Detailsをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/e75606ea-dc90-3832-0e6a-cce2b520e065.png)


次に、Instance Specsで使用するRAMを選択しますが、今回はテストのためFREEの0.5GB RAMを選んでConfirm Instance Detailsを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/9dc824b9-0fd2-58f5-8593-d3e9f59002ac.png)

設定内容と、プライバシーポリシーを確認して、Add Instanceをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/96c27bbc-4826-266d-f722-353d2fbd8e57.png)

これでHarperDB StudioにAkamai Connected CloudのHarperDBインスタンスが追加され、インスタンスの管理、DBの操作などができるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2820036/fb0cac0d-9132-50dd-e301-d1b1268d6f17.png)

##  おわりに
今回はAkamai Cloud Computing Services（Linode)上にHarperDBのインスタンスを構築し、HarperDB Studioに構築したインスタンスを追加してみました。次回は実際にHarperDB（分散型データベースアプリケーション）の活用方法について紹介したいと思います。

# 関連記事

アカマイ・テクノロジーズ合同会社はQiitaでAkamai Cloud Computing Services関連など開発者向けの記事を掲載しております。

https://qiita.com/xenbase/items/52e2956a64cedc772bd9