Статьи

AWS: раскрутка экземпляра Neo4j с установленным APOC

Одна из первых вещей, которые я делаю после установки Neo4j, — это установка библиотеки APOC , но я обнаружил, что при раскрутке сервера в AWS это немного ручной процесс, поэтому я хотел немного упростить его.

Уже есть Neo4j AMI, который устанавливает Neo4j 3.2.0, и мой коллега Майкл указал, что мы можем загрузить APOC в нужную папку, написав скрипт и отправив его как UserData .

Последние две недели я работал над JavaScript, поэтому решил автоматизировать все этапы с помощью библиотеки AWS. Вы можете найти полный скрипт на GitHub .

Часть сценария UserData на самом деле очень проста:

Этот сценарий создает пару ключей, группу безопасности, открывает эту группу безопасности на портах 22 (SSH), 7474 (HTTP), 7473 (HTTPS) и 7687 (Bolt). Созданный сервер — m3.medium , но вы можете изменить его на что-то другое, если хотите.

1
2
3
#!/bin/bash
curl -L https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/3.2.0.3/apoc-3.2.0.3-all.jar -O
sudo cp apoc-3.2.0.3-all.jar /var/lib/neo4j/plugins/

Мы можем запустить его так:

01
02
03
04
05
06
07
08
09
10
11
12
13
$ node neo4j-with-apoc.js
Creating a Neo4j server
Key pair created. Save this to a file - you'll need to use it if you want to ssh into the Neo4j server
-----BEGIN RSA PRIVATE KEY-----
<Private key details>
-----END RSA PRIVATE KEY-----
Created Group Id:<Group Id>
Opened Neo4j ports
Instance Id: <Instance Id>
Your Neo4j server is now ready!
You'll need to login to the server and change the default password:
https://ec2-ip-address.compute-1.amazonaws.com:7473 or http://ec2-ip-address.compute-1.amazonaws.com:7474
User:neo4j, Password:<Instance Id>

Нам нужно подождать несколько секунд, пока Neo4j раскрутится, но он будет доступен по указанному URI.

Как только он станет доступен, мы можем войти с именем пользователя neo4j и паролем
, Затем нам будет предложено выбрать новый пароль.

Затем мы можем выполнить следующий запрос, чтобы убедиться, что APOC установлен:

1
2
3
4
5
6
7
8
9
call dbms.procedures() YIELD name
WHERE name starts with "apoc"
RETURN count(*)
  
╒══════════╕
"count(*)"
╞══════════╡
214      
└──────────┘

Круто, это сработало, и теперь мы можем Neo4j и APOC в свое удовольствие! Если мы хотим подключить SSH к серверу, мы можем это сделать, сначала сохранив закрытый ключ, напечатанный в командной строке, в файл, а затем выполнив следующую команду:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
$ cat aws-private-key.pem
-----BEGIN RSA PRIVATE KEY-----
<Private key details>
-----END RSA PRIVATE KEY-----
  
$ chmod 600 aws-private-key.pem
  
$ ssh -i aws-private-key.pem ubuntu@ec2-ip-address.compute-1.amazonaws.com
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-1013-aws x86_64)
  
 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
  
  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud
  
106 packages can be updated.
1 update is a security update.
  
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Вы можете запустить / остановить neo4j, выполнив следующую команду:

1
2
$ /etc/init.d/neo4j
Usage: /etc/init.d/neo4j {start|stop|status|restart|force-reload}

Другие команды, которые вы можете найти в папке bin, можно найти здесь:

1
2
3
4
5
6
7
8
$ ls -lh /usr/share/neo4j/bin/
total 48K
-rwxr-xr-x 1 neo4j adm   15K May  9 09:22 neo4j
-rwxr-xr-x 1 neo4j adm  5.6K May  9 09:22 neo4j-admin
-rwxr-xr-x 1 root  root  612 May 12 00:03 neo4j-awspasswd
-rwxr-xr-x 1 neo4j adm  5.6K May  9 09:22 neo4j-import
-rwxr-xr-x 1 neo4j adm  5.6K May  9 09:22 neo4j-shell
drwxr-xr-x 2 neo4j adm  4.0K May 11 22:13 tools

Дайте мне знать, если это полезно, и если у вас есть какие-либо предложения / улучшения.

Опубликовано на Java Code Geeks с разрешения Марка Нидхэма, партнера нашей программы JCG . См. Оригинальную статью здесь: AWS: раскрутка экземпляра Neo4j с установленным APOC

Мнения, высказанные участниками Java Code Geeks, являются их собственными.