hetio / hetionet

Hetionet: an integrative network of disease
https://neo4j.het.io
257 stars 68 forks source link

Migrate neo4j.het.io hosting from AWS to GCP #35

Closed dhimmel closed 3 years ago

dhimmel commented 3 years ago

@dongbohu emailed me regarding switching to Google Cloud Platform to host the public neo4j cloud instance at https://neo4j.het.io.

This sounds great to me, as I find the GCP interface is a bit better. And the pricing too right?

Let's coordinate via this issue.

dhimmel commented 3 years ago

Posting the migration plan written by @dongbohu:

  1. Create a virtual machine in Google cloud and install all software packages except the SSL certificates;
  2. Give you the IP address of the new virtual machine;
  3. You update the DNS of "neo4j.het.io";
  4. I install the SSL on Google virtual machine;
  5. Test the deployment.
dongbohu commented 3 years ago

Thank you @dhimmel. One question, do I need to copy everything in hetionet-data and neo4j-logs sub-directories?

dhimmel commented 3 years ago

No, the Docker container should know to download those resources if they don't exist, as specified in get_data.sh

dongbohu commented 3 years ago

@dhimmel: The new IP address is 34.66.19.177. Please let me know after you change the DNS.

dongbohu commented 3 years ago

I also copied the SSH public keys to this box, so you should be able to log into it with the same private keys with username ubuntu.

dhimmel commented 3 years ago

When I go to http://34.66.19.177/, I get ERR_CONNECTION_REFUSED. Should access via the IP address be working before we change the DNS?

I also copied the SSH public keys to this box

Nice. Also noting https://github.com/greenelab/public-keys which is helpful here.

dongbohu commented 3 years ago

No, I haven't started the docker container yet. So neither http nor https works now.

dongbohu commented 3 years ago

Have you changed the DNS? nslookup neo4j.het.io still shows the AWS EC2 instance's IP address.

dhimmel commented 3 years ago

Just changed the DNS record at https://gandi.net/ to:

neo4j 1000 IN A 34.66.19.177
dongbohu commented 3 years ago

I think it is working. Please double check. I will shut down the AWS EC2 instance to confirm.

dhimmel commented 3 years ago

https://neo4j.het.io/browser/ loads the neo4j browser with the message:

Database access not available. Please use :server connect to establish connection. There's a graph waiting for you.

Perhaps the database and guides are still loading?

dongbohu commented 3 years ago

How long does this loading take usually?

dongbohu commented 3 years ago

I cleaned up everything in hetionet-data and restarted docker container. Let's see whether it'll help.

dhimmel commented 3 years ago

Loading might take 15 minutes. But there should be useful output in the docker logs on the progress.

dongbohu commented 3 years ago

Docker logs showed that the loading is 100% completed. But I still get the same message that you posted above. Can you log into the box and take a look?

dongbohu commented 3 years ago

Never mind. I figured out why. Port 7687 (inbound) has to be open in the firewall. Please test it now.

dhimmel commented 3 years ago

Looks good! Thanks @dongbohu

dhimmel commented 3 years ago

@dongbohu when running ssh ubuntu@neo4j.het.io, I'm getting

ubuntu@neo4j.het.io: Permission denied (publickey).

Can you add this pubkey?

dongbohu commented 3 years ago

@dhimmel New ssh key added.