nmdp-bioinformatics / gfe-db

Graph database representing IPD-IMGT/HLA sequence data as GFE
https://gfe-db.readthedocs.io
GNU General Public License v3.0
9 stars 15 forks source link

AMI update and DNS Configuration for Neo4j #66

Closed chrisammon3000 closed 2 years ago

chrisammon3000 commented 2 years ago

Description

This PR includes major changes for gfe-db including a new AMI, SSL, refactoring of User Data and DNS configuration.

Major Changes

Deployment Notes

Bitnami AMI

The Bitnami AMI requires a subscription through AWS Marketplace: https://aws.amazon.com/marketplace/pp/prodview-v47qqrn2yy7ie?sr=0-3&ref_=beagle&applicationId=AWS-Marketplace-Console

Once you have subscribed to the AMI, make sure to add the correct AMI ID to the root Makefile under the NEO4J_AMI_ID variable.

DNS Configuration

Neo4j browser can now be accessed using HTTPS at a custom domain name. To configure your domain for Neo4j follow these steps.

Alternatively, if you are not using Route 53 for your hosting, you must manually create an A record for your DNS. You can indicate a subdomain if you want. Make sure to point it to Neo4j's static IP.

  Subdomain name: <subdomain name>.<domain>.com
  Type: A
  TTL: 300
  Resource: <Neo4j IP>

Quickstart

  1. Subscribe to the Bitnami Neo4j AMI (as described above)
  2. Configure neo4j.conf and update the Hosted Zone ID (as described above)
  3. Install prerequisites and dependencies (see README)
  4. Create .env with necessary environment variables
    # ./.env
    STAGE=<dev or prod>
    APP_NAME=gfe-db
    REGION=<AWS region>
    GITHUB_PERSONAL_ACCESS_TOKEN=<secret>
    HOST_DOMAIN=<fqdn>
    ADMIN_EMAIL=<email>
    APOC_VERSION=4.4.0.3
    GDS_VERSION=2.0.1
  5. Check the JSON input parameters and edit the values as desired.
    // ./gfe-db/pipeline/config/pipeline-input.json
    {
      "align": "False",
      "kir": "False",
      "mem_profile": "False",
      "limit": "1000"
    }
  6. Run make deploy to deploy the stacks to AWS.
  7. Run make database.load release=<version> to load Neo4j.
  8. Run make database.get-credentials to get the password for Neo4j.
  9. Navigate to the Neo4j browser at https://<your domain>:7473/browser/