AWS EC2にNeo4j環境を構築[Neo4j]

7月 26, 2020

本記事では、データをグラフとして管理するためのWebアプリケーションであるNeo4jをAWS EC2にインストールするまでの手順を示します。

実行環境

  • Instance-type: g4dn.8xlarge
  • OS: Ubuntu16.04
  • Neo4j: 4.0.4

Neo4jのインストール

wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -

echo 'deb https://debian.neo4j.com stable latest' | sudo tee -a /etc/apt/sources.list.d/neo4j.list

sudo apt-get update

# To install Neo4j Community Edition
sudo apt-get install neo4j=1:4.0.4

インストール後の環境設定

ローカルPCのWebブラウザから、Neo4jをインストールしたインスタンスにリモート接続するためには、neo4j.conf の編集が必要。

/etc/neo4j/neo4j.conf

#*****************************************************************
# Network connector configuration
#*****************************************************************

# With default configuration Neo4j only accepts local connections.
# To accept non-local connections, uncomment this line:
dbms.default_listen_address=0.0.0.0 << ここをアンコメント

# You can also choose a specific network interface, and configure a non-default
# port for each connector, by setting their individual listen_address.

# The address at which this server can be reached by its clients. This may be the server's IP address or DNS name, or
# it may be the address of a reverse proxy which sits in front of the server. This setting may be overridden for
# individual connectors below.
#dbms.default_advertised_address=localhost

# You can also choose a specific advertised hostname or IP address, and
# configure an advertised port for each connector, by setting their
# individual advertised_address.

# By default, encryption is turned off.
# To turn on encryption, an ssl policy for the connector needs to be configured
# Read more in SSL policy section in this file for how to define a SSL policy.

# Bolt connector
#dbms.connector.bolt.enabled=true
#dbms.connector.bolt.tls_level=OPTIONAL
dbms.connector.bolt.listen_address=0.0.0.0:7687 << ここをアンコメント

# HTTP Connector. There can be zero or one HTTP connectors.
dbms.connector.http.enabled=true << ここをアンコメント
dbms.connector.http.listen_address=0.0.0.0:7474 << ここをアンコメント

Neo4jの設定が終わったら、下記コマンドで再起動する。

sudo systemctl restart neo4j

ちなみに最初から立ち上げなおす際は、以下を入力する。

sudo systemctl enable neo4j

sudo systemctl start neo4j

AWSのインスタンスのインバウンド設定で、7474と7687を開放する。

次にファイアウォール設定を行う。見落としがちだが、ここの設定をしっかりと行わないとブラウザでNeo4jを立ち上げたときにWeb socketエラーが発生する。

sudo firewall-cmd --add-port=7474/tcp --zone=public --permanent

sudo firewall-cmd --add-port=7687/tcp --zone=public --permanent

sudo firewall-cmd --reload

以上の操作を終えて、http://xx.xx.xx.xx:7474 をWebブラウザに入力し、アクセスすると、Neo4jのGUIが立ち上がる。このとき、ユーザ名とパスワードがもとめられる。初期の場合は、user:neo4j, pwd:neo4jである。

さらに、どこのアドレスにアクセスするかを入力する必要があるので、bolt:// /xx.xx.xx.xx :7687 を入力する。初期の起動の場合、ボックスの中に neo4j:// /xx.xx.xx.xx :7687 がデフォルトで入っていたが、neo4jの部分をboltにしてあげないと、後にエラーがでてしまう。

この原因は不明だが、後のために記述だけ残しておく。

以上の設定をすべて終えると、Neo4jが使えるようになっているはずだ。Movie graphなどを表示してみて、正常に動作していることを確認してみよう。動作の確認に関しては、以下の記事の最後の方で説明しているので、参考にしてみてください。

参考

Uncategorizedneo4j

Posted by vastee