我试图从办公室的本地计算机连接到AWS Instance中的Neptune DB,就像从办公室连接RDS。是否可以从本地计算机连接Neptune db? Neptune db是否公开可用。开发人员可以通过任何方式从办公室连接neptune db。
答案 0 :(得分:2)
如上所述,您不能直接在VPC外部访问。
以下链接描述了使用SSH隧道的另一种解决方案:connecting-to-aws-neptune-from-local-environment。
我发现测试和开发目的要容易得多。
您也可以使用Putty创建SSH隧道。
答案 1 :(得分:1)
Neptune不支持公共端点(可从VPC外部访问的端点)。但是,很少有体系结构选项可用来在VPC之外访问Neptune实例。它们都具有相同的主题:设置位于VPC内的代理(EC2计算机,ALB或类似的东西,或它们的组合),并使该代理可从VPC外部访问。
似乎您只是想出于开发目的而与您的实例对话。最简单的选择是启动ALB,并创建一个指向您实例IP的目标组。
简要步骤(有意不详细介绍,请参考AWS Docs了解详细说明)
dig +short <your cluster endpoint>
这将为您提供当前主机的IP地址。
创建一个ALB(有关如何执行此操作,请参阅AWS Docs)。
PORT-A
,它将请求转发到IP:PORT
,其中IP
是您的数据库IP(来自步骤1),{{1 }}是您的数据库端口(默认为PORT
)。 8182
上0.0.0.0
的入站TCP规则。现在,从开发人员框中,您可以连接到PORT-A的ALB端点,该端点将在内部将请求转发到您的Neptune实例。
签出ALB文档,详细了解如何创建它以及围绕它的概念。如果您需要我详细说明任何步骤,请随时提问。
注意:对于生产设置,这不是推荐的解决方案。 Neptune实例使用的IP必然会随着故障转移和主机更换而发生变化。仅将此解决方案用于测试目的。如果您想要类似的生产设置,请随时提出问题,我们可以讨论选项。
答案 2 :(得分:0)
Neptune不允许您从本地计算机连接到数据库实例。您只能通过与Neptune(aws documentation)相同的VPC内的EC2连接到Neptune。
从本地访问海王星的步骤:
所有gremlin命令现在都将直接在您的海王星图上运行。
答案 3 :(得分:0)
嗨,您可以在本地计算机上使用gremlin控制台连接NeptuneDB。 USE THIS LINK设置您的本地gremlin服务器,它对我有用gremlin 3.3.2版本 只需根据URL和端口更新remote.yaml
答案 4 :(得分:0)
参考:https://github.com/M-Thirumal/aws-cloud-tutorial/blob/main/neptune/connect_from_local.md
有多种方法可以从 Amazon Neptune
外部连接到 VPC
,例如设置 load balancer
或 VPC peering
。
Amazon Neptune 数据库集群只能在 Amazon Virtual Private Cloud (VPC)
中创建。从 VPC 外部连接到 Amazon Neptune 的一种方法是将 Amazon EC2 实例设置为同一 VPC 内的 proxy server
。使用这种方法,您还需要设置一个 SSH tunnel to securely forward traffic to the VPC
。
启动位于 Amazon EC2 instance
中的 same region
作为您的 Neptune cluster
。在配置方面,可以使用Ubuntu
。由于这是一个代理服务器,您可以选择最低的资源设置。
确保 EC2 实例与您的 Neptune 集群在同一个 VPC 组中。要查找 Neptune 集群的 VPC 组,请检查 Neptune > Subnet groups
下的控制台。实例的安全组需要能够在 22
的端口 SSH
和 8182
的端口 Neptune
上发送和接收。请参阅下面的示例安全组设置。
最后,请确保保存密钥对文件 (.pem) 并记下在下一步中使用的目录。
此步骤可能因您运行的是 Windows 还是 MacOS 而异。
修改您的主机文件以将 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,您可能需要从 C:\Users\YourUsername\
ssh -i path/to/keypairfilename.pem ec2-user@yourec2instanceendpoint -N -L 8182:YourNeptuneEndpoint:8182
-N
标志设置为阻止与 EC2 的交互式 bash 会话并仅转发端口。初始成功连接会询问您是否要继续连接?输入 yes 并回车。
要测试本地图形笔记本与 Amazon Neptune 的连接是否成功,请打开浏览器并导航至:
https://YourNeptuneEndpoint:8182/status
您应该会看到一个报告,类似于下面的报告,表明您的特定集群的状态和详细信息:
{
"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 退出。