Neptune Local Development Access Methods
Question for the Neptune folks - I'm trying to cobble together ergonomic local access to our development cluster.
Here's what I've got that works:
Here's what I've got that works:
- SSM session running via an EC2 bastion host, which makes the targeted cluster (using
AWS-StartPortForwardingSessionToRemoteHost) available atlocalhost:8182 - A mapping in
/etc/hostsresolving<my_cluster_url>tolocalhost - In combination, these enable me to use the same SigV4Auth signing approach (with headers) that works from a within-VPC context to access the cluster from a Python script/Jupyter notebook
/etc/hosts edit that doesn't require sudo access or changes to system files. In principle, it should be possible to insert custom DNS resolution into the Python script, but I'm having no joy. Has anyone else previously hit and overcome this snag in this fashion/another way?Solution
Ok, after a bit more tinkering, here's an implementation that doesn't require any outside-script configuration or tools, and doesn't require disabling SSL.
It requires an additional import
It requires an additional import
AiohttpTransport which is used to pass the server hostname to DriverRemoteConnection via transport_factory, solving the hostname mismatch failure issue that arises without it by passing the 'correct' host to the TLS handshake.