Oracle Graph を Oracle Cloud の Always Free Services 上に構築する手順はこちらのワークショップで詳しく説明されていますが、日本語で簡潔に書かれている記事もあると便利かと思いますので、こちらにまとめたいと思います。
Oracle Cloud 上では Graph Server の Marketplace イメージが提供されているのでこちらを使うのが簡単です。Always Free Services に含まれる Compute インスタンスを使って起動すれば常時無料で使うことができます。
Oracle Graph はオンプレ/クラウドを問わず全ての Oracle Database のエディション(ただし、12.2 以降)で使うことができます。Oracle Cloud 上では、フルマネージドサービスである Autonomous Database (ADB) が Always Free Services に含まれています。Database Cloud Service (DBCS) を使う場合には こちらの記事 を参考にしてください。
ADB の作成
通常通りに ADB(Autonomous Transaction Processing または Autonomous Data Warehouse)を作成します。この手順については省略します。
ネットワークの作成
ネットワークを作成して必要なポートを開放します。
Networking > Virtual Cloud Networks に進みます。
ウィザードを使用するのが簡単です。Start VCN Wizard > Create VCN with Internet Connectivity > Start VCN Wizard と進んで、特に設定を変更することなく新しい VCN を作成してください。
VCN Name: vcn1
その他の項目: 設定変更は必要ありません
ポート 7007 をアクセス可能にします。Virtual Cloud Networks > vcn1 > Public Subnet-vcn1 > Default Security List for vcn1 > Add Ingress Rules と進み、次のルールを作成します。実利用では、セキュリティを高めるためにクライアントの IP アドレスを制限してください。
Source Type: CIDR
Source CIDR: 0.0.0.0/0
IP Protocol: TCP
Source Port Range: (All)
Destination Port Range: 7007
Description: 例)Graph Server
Graph Server の作成
Marketplace タブに移動し「Graph Server and Client」を検索します。
Stack Information は変更する必要はありません。
Configure variables の画面に進み、作成する Compute インスタンスのシェイプを選択します。Always-free に含まれるシェイプは二種類あり、Use ARM-based compute にチェックをつけると VM.Standard.A1.Flex、つけないと VM.Standard.E2.1.Micro を選択できます。大容量のメモリを搭載できる A1.Flex が取得できればラッキーですが、リジョンによっては空きがないことも多いです。
まずは取得しやすい E2.1.Micro で作成手順を確認しておき、必要に応じて A1.Flex を取得できるかどうか試してみるのがおすすめです。
後に SSH で接続するためにパブリックキーをアップロードして、先に作成した VCN とパブリック・サブネットを選択します。
最後に、JDBC URL は次のように指定しておきます。Graph Server からデータベースへの接続のために Wallet と呼ばれる仕組みを使います。adb1_low
の部分は作成した ADB の名前に合わせて変更してください。/etc/oracle/graph/wallets
はこれから作成される Compute インスタンス上のディレクトリなので、このまま入力してください。後の手順でここに Wallet を格納します。
jdbc:oracle:thin:@adb1_low?TNS_ADMIN=/etc/oracle/graph/wallets
ログの最後に Compute インスタンスの IP アドレスやグラフ可視化アプリの URL が出力されています。
無料インスタンスの空きがない場合には作成が失敗して、ログに「Out of host capacity」のメッセージが出力されます。Edit job でシェイプを変更して再度試してみてください。
ADB Wallet の設置
Oracle Cloud コンソールから対象の ADB のページに移動します。
Instance Wallet を選択してダウンロードします。
ダウンロードした Wallet(ZIP ファイル)を Compute インスタンス上の /etc/oracle/graph/wallets
ディレクトリ(イメージ起動時に指定した場所)にアップロードします。
scp -i <private_key> Wallet_<database_name>.zip opc@<public_ip_for_compute>:/etc/oracle/graph/wallets
例:
scp -i key.pem ~/Downloads/Wallet_adb1.zip opc@203.0.113.14:/etc/oracle/graph/wallets
Wallet を展開するため、Compute インスタンスにログインします。
ssh -i <private_key> opc@<public_ip_for_compute>
例:
ssh -i key.pem opc@203.0.113.14
ZIP ファイルを解凍し、グループ権限を変更します。
cd /etc/oracle/graph/wallets/
unzip Wallet_adb1.zip
chgrp oraclegraph *
ユーザーの作成
管理者権限を用いて、上で作成したロールを持つユーザーを作成します。
Create User ボタンをクリックして、ユーザー名とパスワードを入力します。Graph と Web Access を有効にして表領域のクォータを UNLIMITED に設定しておきます。
後々、ユースケースによっては「グラフを公開して他のセッションとシェアする」ことがあるため、Granted Roles タブから、このユーザーに PGX_SESSION_ADD_PUBLISHED_GRAPH ロールを追加しておきます。
ユーザーを作成したら Database Actions にログインし直します。
グラフ可視化アプリへのログイン
ウェブブラウザで、https://<public_ip_for_compute>:7007/ui
を開きます。http ではなく https であることに注意してください。
Marketplace イメージは自己署名 SSL 証明書とともに配布されているため、実運用では独自の証明書に変更する必要があります。自己署名 SSL 証明書のまま使っている場合、ウェブブラウザには警告が表示されます。
Chrome の場合は、警告ウィンドウが出てきたら「thisisunsafe」とキーを打つと(これはどこにも入力されませんが)画面が遷移します。
Firefox の場合 Advanced > Accept the Risk and Continue をクリックします。
すでに「hr」というサンプルのグラフがロードされているので、そのままクエリの実行ボタンを押すと取得されたサブグラフが描画されます。
以上で構築完了です。他の記事を参考に、様々なグラフの作成や描画を試してみてください!