Подключитесь к Нептуну на AWS с локального компьютера
Я пытаюсь подключиться к базе данных Neptune в экземпляре AWS с локального компьютера в офисе, например, подключить RDS из офиса. Можно ли подключить базу данных Neptune с локального компьютера? Является ли Neptune db общедоступным. Есть ли способ, которым разработчик может подключить neptune db из офиса.
5 ответов
Neptune не поддерживает общедоступные конечные точки (конечные точки, доступные вне VPC). Однако существует несколько архитектурных опций, с помощью которых вы можете получить доступ к своему экземпляру Neptune вне вашего VPC. Все они имеют одну и ту же тему: настройте прокси (компьютер EC2, или ALB, или что-то подобное, или их комбинацию), который находится внутри вашего VPC, и сделайте этот прокси доступным вне вашего VPC.
Похоже, вы хотите общаться с вашим экземпляром исключительно в целях разработки. Самым простым вариантом для этого было бы раскрутить ALB и создать целевую группу, которая указывает на IP вашего экземпляра.
Краткие шаги (Это намеренно не подробно, пожалуйста, обратитесь к документации AWS для получения подробных инструкций):
dig +short <your cluster endpoint>
Это даст вам IP-адрес текущего мастера.Создайте ALB (см. Документацию AWS о том, как это сделать).
- Сделайте так, чтобы целевая группа вашего ALB указывала на IP-адрес, полученный на шаге 1. К концу этого шага вы должны прослушивать ALB
PORT-A
, что бы пересылать запросыIP:PORT
, гдеIP
IP вашей базы данных (из шага 1) иPORT
порт вашей базы данных (по умолчанию8182
). - Создайте группу безопасности, которая позволяет входящий трафик отовсюду. т.е. правило входящего TCP для
0.0.0.0
наPORT-A
, - Присоедините группу безопасности к вашему ALB
Теперь из ящиков разработчика вы можете подключиться к конечной точке ALB в PORT-A, которая внутренне перенаправит запрос вашему экземпляру Neptune.
Изучите документы ALB для получения подробной информации о том, как вы можете его создать, и о концепциях, которые к нему относятся. Если вы хотите, чтобы я разработал какой-либо из шагов, не стесняйтесь спрашивать.
ПРИМЕЧАНИЕ. Это не рекомендуемое решение для настройки производства. IP-адреса, используемые экземплярами Neptune, должны меняться в зависимости от отработки отказа и замены хоста. Используйте это решение только для тестирования. Если вы хотите подобную установку для производства, не стесняйтесь задавать вопрос, и мы можем обсудить варианты.
Ссылка: https://github.com/M-Thirumal/aws-cloud-tutorial/blob/main/neptune/connect_from_local.md
Подключитесь к AWS Neptune из локальной системы
Есть много способов подключиться к
Amazon Neptune
извне
VPC
, например, создание
load balancer
или
VPC peering
.
Кластеры Amazon Neptune DB можно создавать только в Amazon.
Virtual Private Cloud (VPC)
. Один из способов подключения к Amazon Neptune извне VPC - настроить инстанс Amazon EC2 в качестве
proxy server
в одном VPC. При таком подходе вы также захотите настроить
SSH tunnel to securely forward traffic to the VPC
.
Часть 1. Настройка прокси-сервера EC2.
Запустить
Amazon EC2 instance
расположен в
same region
как твой
Neptune cluster
. Что касается конфигурации,
Ubuntu
может быть использован. Поскольку это прокси-сервер, вы можете выбрать самые низкие настройки ресурсов.
Убедитесь, что экземпляр EC2 находится в той же группе VPC, что и ваш кластер Neptune. Чтобы найти группу VPC для кластера Neptune, проверьте консоль в разделе
Neptune > Subnet groups
. Группа безопасности экземпляра должна иметь возможность отправлять и получать через порт
22
для
SSH
и порт
8182
для
Neptune
. Ниже приведен пример настройки группы безопасности.
Наконец, убедитесь, что вы сохранили файл пары ключей (.pem) и запишите каталог для использования на следующем шаге.
Часть 2: Настройка SSH-туннеля.
Этот шаг может отличаться в зависимости от того, используете ли вы Windows или MacOS.
Измените файл hosts, чтобы сопоставить localhost с конечной точкой Neptune.
Windows: откройте файл hosts от имени администратора.
(C:\Windows\System32\drivers\etc\hosts)
MacOS: откройте терминал и введите команду:
sudo nano /etc/hosts
Добавьте следующую строку в файл hosts, заменив текст адресом конечной точки Neptune.
127.0.0.1 localhost YourNeptuneEndpoint
Откройте командную строку от имени администратора для Windows или терминала для MacOS и выполните следующую команду. Для Windows вам может потребоваться запустить SSH из
C:\Users\YourUsername\
ssh -i path/to/keypairfilename.pem ec2-user@yourec2instanceendpoint -N -L 8182:YourNeptuneEndpoint:8182
В
-N
установлен флаг для предотвращения интерактивного сеанса bash с EC2 и для пересылки только портов. При первом успешном подключении вас спросят, хотите ли вы продолжить подключение? Введите да и введите.Чтобы проверить успешность подключения локальной графической записной книжки к Amazon Neptune, откройте браузер и перейдите к:
https: // YourNeptuneEndpoint:8182 / статус
Вы должны увидеть отчет, подобный представленному ниже, с указанием статуса и деталей вашего конкретного кластера:
{ "status": "healthy", "startTime": "Wed Nov 04 23:24:44 UTC 2020", "dbEngineVersion": "1.0.3.0.R1", "role": "writer", "gremlin": { "version": "tinkerpop-3.4.3" }, "sparql": { "version": "sparql-1.1" }, "labMode": { "ObjectIndex": "disabled", "DFEQueryEngine": "disabled", "ReadWriteConflictDetection": "enabled" } }
Закрыть соединение
Когда вы будете готовы закрыть соединение, используйте Ctrl+D для выхода.
Как уже упоминалось, вы не можете получить доступ напрямую за пределы своего VPC.
В следующей ссылке описывается другое решение с использованием туннеля SSH: подключение к aws-neptune-from-local-environment. Мне это намного проще для тестирования и разработки. Вы также можете создать туннель SSH с помощью Putty.
Нептун не позволяет вам подключаться к экземпляру БД с вашего локального компьютера. Вы можете подключиться к Neptune только через EC2 внутри того же VPC, что и Neptune ( документация aws).
Шаги для доступа к Нептуну из местных:
- Создайте экземпляр EC2 в том же VPC, что и ваш кластер Нептун.
- Разрешить доступ к EC2 по вашему IP.
- Загрузите консоль Apache Gremlin в экземпляре EC2.
- Разархивируйте консольную папку и откройте файл neptune-remote.yaml внутри.
- Измените имя хоста в файле yaml на конечную точку кластера Нептуна.
- Запустите файл gremlin.sh в папке b in консоли apache gremlin.
- Теперь вы на консоли Гремлина. Удаленное подключение к кластеру Neptune с помощью следующей команды::remote connect tinkerpop.server conf / neptune-remote.yaml
- используйте команду: удаленная консоль для удаленного доступа к консоли кластера neptune.
Все команды gremlin теперь будут выполняться непосредственно на вашем графике Нептуна.
Привет, вы можете подключить NeptuneDB с помощью консоли gremlin на вашем локальном компьютере. ИСПОЛЬЗУЙТЕ ЭТУ ССЫЛКУ, чтобы настроить свой локальный сервер gremlin, он работает для меня версия gremlin 3.3.2 Только вы должны обновить файл remote.yaml в соответствии с вашим URL и портом