Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

posted at

updated at

Google Cloud Platform の無期限無料枠を利用した Virtuoso の構築方法

Google Cloud Platform(以下 GCP といいます)の、Always Free(無期限の無料枠)を利用して、RDFストア Virtuoso を構築する方法を紹介します。初学者向けに丁寧に書いたので冗長な記事になっています。ご了承ください。

外部アプリのインストールは不要。WEBブラウザ内のみですべて完結しますのでお手軽です。
時間のかかる処理が含まれており、すべて完了するまでスムーズにいって3時間くらいかかりますので、時間に余裕のあるときにやりましょう。

この記事の続編は以下の記事です。
Google Cloud Platform に構築した Virtuoso を無料でSSL化

前提条件

  • Googleアカウントの取得
  • クレジットカード(課金はされませんが番号の登録が必要です)

GCPに登録

まずGCPが使えるように登録作業を行います。
Google Cloud Platformにアクセスし、無料トライアル をクリック (無料で開始 でも可)
01.png

次の画面で以下のとおり入力し 続行 をクリック

  • 国:日本
  • 利用規約:チェックを入れる
  • 最新情報をメールで通知:どちらでもよい

02.png

次の画面で以下のとおり入力し 無料トライアルを開始 をクリック

  • アカウントの種類:個人
  • 名前と住所:必要事項を入力
  • お支払い方法:クレジットカードの番号や名義を入力

03.png
以上でアカウント登録の完了です。

プロジェクトの作成

アカウント登録が完了すると、GCPのコンソール画面に遷移します。
GCP上で動かすあらゆるものは プロジェクト の中で動作するようになっています。今回は Virtuoso用のプロジェクトを作成します。
04.png

次の画面で プロジェクト名 を適当に設定し、作成をクリック
05.png

しばらくするとプロジェクトが新規で作られます。
06.png

VMインスタンスの作成

先ほど作成したプロジェクトの中に、VMインスタンスを作成します。
VMインスタンスとは仮想コンピューターのことで、そこでVirtuosoを実行させるためのLinux OS(Ubuntu)を動かします。
左上のナビゲーションメニュー → コンピューティング の中の Conpute EngineVMインスタンス を選択
07.png

しばらく待って準備が完了したら 作成 をクリック
08.png

ブートディスクの選択画面で以下のように設定

  • オペレーティングシステム:Ubuntu
  • バージョン:Ubuntu 16.04 LTS
  • ブートディスクの種類:標準の永続ディスク(これ以外は有料)
  • サイズ:30GB(30GBを超えると有料)

09.png

次にインスタンスの各種設定画面で以下のように設定します。完了したら作成をクリック

  • 名前:instans-1
    (初期状態のままで。変更もできますがあまり重要ではありません。)
  • リージョン:us-central1(アイオワ)
    (変更もできますが、usのいくつかのリージョン以外は無料枠がありません。無料枠があるかどうかは、右側に「今月のf1-microインスタンスの使用量は、最初の○○時間分が無料です。」のメッセージが出るかどうかで確認できます。)
  • ゾーン:us-central1-a
  • シリーズ:N1(これ以外は有料)
  • マシンタイプ:f1-micro(1 vCPU、614MBメモリ)(これ以外は有料)
  • ファイアウォール:HTTP/HTTPS の両方にチェック

11.png

しばらく待つとインスタンスが完成します。この画面に表示されている 外部IPが、インターネット上に公開されるあなたのVirtuosoのIPアドレスになりますので控えておきましょう。
13.png

外部IPの固定

外部IPは、デフォルト設定(エフェメラル)では毎度変更されてしまうので、それを固定します。
左上のナビゲーションメニュー → ネットワーキング の中の VPCネットワーク外部IPアドレス を選択
14.png

種類 を エフェメラル から 静的 に変更。
15.png

次の画面「新しい静的IPアドレスの予約」で適当に名前を設定し、予約 をクリック
16.png
以上で外部IPの固定は完了です。

8890番ポート開放

Virtuosoは ポート8890番 を使用しますので開放してやります。
左上のナビゲーションメニュー → ネットワーキング の中の VPCネットワークファイアウォール を選択
17.png

ファイアウォールルールを作成 をクリック
18.png

次のとおり設定し 作成 をクリック

  • 名前:default-allow-8890
  • 説明:Allow 8890 from anywhere
  • ターゲットタグ:use-8890
  • ソースIPの範囲:0.0.0.0/0
  • プロトコルとポート:tcp: 8890

19.png

左上のナビゲーションメニュー → コンピューティング の中の Conpute EngineVMインスタンス から、あなたが作成したinstans-1 をクリック
07.png
23.png

編集 をクリック
22.png

ネットワークタグ に use-8890 と打ち込みタグ付けします。そして一番下の 保存 をクリック
21.png
以上で、8890番ポートが開放されたファイアウォールのルールが、インスタンスに適用されます。

Virtuoso のインストール

いよいよVirtuosoをインストールしていきます。
左上のナビゲーションメニュー → コンピューティング の中の Conpute EngineVMインスタンス から、SSHブラウザウィンドウで開く を選択
24.png

ブラウザで、以下のようなターミナル画面が開きます。
25.png

以下のコマンドを1行ずつ打ち込んで(又はコピペして)ください。
( 頭の $ はターミナルでコマンドを打つという意味の記号であり、実際には打ち込みません。)

$ sudo apt update
$ sudo apt upgrade     <--「Y」を選択
$ sudo apt-get install libssl-dev gcc autoconf automake libtool flex bison gperf gawk m4 make wget git     <--「Y」を選択
$ git clone git://github.com/openlink/virtuoso-opensource.git
$ cd virtuoso-opensource
$ git checkout stable/7
$ ./autogen.sh
$ CFLAGS=&quot;-O2 -m64&quot;
$ export CFLAGS*./configure --program-transform-name=&quot;s/isql/isql-v/&quot;
( 処理が止まったらEnter )
$ make     <--約1時間かかるので気長に待つ
$ make check     <--これも1時間かかるので気長に待つ
$ sudo make install

Virtuoso の起動

ターミナル画面で以下のコマンドを打ち込みむと、Virutosoが起動します。

$ cd /usr/local/virtuoso-opensource/var/lib/virtuoso/db/
$ sudo /usr/local/virtuoso-opensource/bin/virtuoso-t -f

WEBブラウザで以下のURLを開いてみてください。
http://xxx.xxx.xxx.xxx:8890/ ( xxx.xxx.xxx.xxx はあなたの外部IP に変更する)
起動に成功していれば、Virtuoso のウェルカム画面が表示されます。
26.png

ターミナル画面で Ctrl+C を押下し、Virtuoso を一旦終了させます。
次に、以下のコマンドを打ち込みます。

$ sudo screen /usr/local/virtuoso-opensource/bin/virtuoso-t -f

こうすると、ターミナル画面を落として接続を切っても、バックグラウンドでVirtuoso が動作し続けます。
WEBブラウザでVirtuosoが動いていることを確認し、ターミナル画面を閉じてください。
以上でVirtuosoの構築は完了です。

Virtuoso の停止

上記の設定が完了したら、Virtuosoはほっておいても動作し続けます。
Virtuosoの動作を止めたい場合は、ターミナル画面で以下の通りコマンドを打ち込みます。

$ sudo screen -ls

画面に以下のようなメッセージが表示されます。

There is a screen on:
   4275.pts-0.v112.xx.xx.127  (06/22/2020 02:45:40 PM)
1 Socket in /var/run/screen/S-root.

上記の 4275 の部分の数字をメモって、次のとおりコマンドを打つとVirtuosoが終了します。

$ sudo screen -S 4275-X quit

Virtuosoが不要になった場合に完全に削除する方法

左上のナビゲーションメニュー → IAMと管理設定
20.png

作成したプロジェクトを シャットダウン
27.png

これでプロジェクトごとすっきり消滅します。

注意点

1つのGoogleアカウントで「無料枠」で構築できる Virtuoso用 サーバは1つだけです。
もちろん2つ以上作ることも可能ですが 課金されます ので注意してください。
もし壊れてしまった場合、プロジェクトをシャットダウン(削除)してから、再度同じ手順で構築すれば課金されません。

あと、GCPのConpute Engine(VMインスタンス)の無料枠は、1ヶ月あたり下り(GCPから出ていくトラフィック)1GBまでです。練習用や趣味のアプリなどでちょこちょこ使っている分には1GBを超えることはほとんど無いと思われますが、本格的にガッツリ使うことになったら少し課金されてしまう可能性がありますのでご注意ください。(1GB超過した分について1GBあたり12円程度)

また,中国及びオーストラリアからのアクセスに対する下りトラフィックは無料枠の対象ではありません。もし中国かオーストラリアからアクセスがあったら課金されてしまいますのでご注意ください。(1GBあたり20円程度)
これの対策をされたい場合は以下の記事が参考になります。
[GCP]課金対象国からのアクセスを抑止する
Google Cloud Platformで中国からの通信をブロック

GCPの料金体系の詳細については以下をご覧ください。
Google Cloud - Compute Engine ・・・ すべての料金

独自ドメインとSSLの適用

この記事の続編である以下の記事をご覧ください。

Google Cloud Platform に構築した Virtuoso を無料でSSL化

参考にさせていただいたサイト

【GCP】無期限の無料枠でLinuxサーバを構築
【GCP】任意ポートの開放/確認手順

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?