Skip to content

MongoDb Replica

overview

This stack creates a MongoDb replica:

  • create “n” number of replicas into an existing VPC
  • create one data volume per VM
  • create mongodb keys: ssh, pems, and keyfile
  • place mongodb cluster in private subnet
  • configure mongodb replica through a bastion host
  • limit access through existing database security group
  • use spot instances (optional)

Prerequisites

Completed getting started guide for creating IAM and VPC .

Add Project to ED

  • Go to Home -> click Add Project
  • Select and Click launch-ed as the launch repository
  • Type branch name >> mongodb
  • Add project name >> mongodb-101
  • Click Add Project

Customized elasticdev.yml

You can create your own elasticdev.yml. (optional)

Sample starter below:

global:
   arguments: 
     aws_default_region: eu-west-1
     cloud_tags_hash:
       environment: dev
       purpose: eval-ed
       database: mongodb
       product: ec2
       database_type: nosql
labels:
   general: 
     environment: dev
     purpose: eval-ed
   infrastructure:
     cloud: aws
     product: mongodb
selectors:
   network_vars:
     labels:
       environment: dev
       purpose: eval-ed
       area: network
       region: eu-west-1
       cloud: aws
infrastructure:
   mongodb_replica:
     stack_name: elasticdev:::mongodb_replica_on_ec2
     arguments:
        vpc_name: selector:::network_vars::vpc_name
        vpc_id: selector:::network_vars::vpc_id
        subnet_ids: selector:::network_vars::public_subnet_ids
        sg_id: selector:::network_vars::db_sg_id
        bastion_sg_id: selector:::network_vars::bastion_sg_id
        bastion_subnet_ids: selector:::network_vars::public_subnet_ids
        mongodb_cluster: mongodb-cluster-dev
        ami_filter: Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-*
        ami_owner: 099720109477 
        bastion_ami_filter: Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-*
        bastion_ami_owner: 099720109477 
        instance_type: t3.micro
        spot: true
        num_of_replicas: 3
        disksize: 25
        volume_size: 25
        volume_mount: /var/lib/mongodb
        volume_fstype: xfs
        mongodb_username: admin123
        mongodb_password: admin123
        publish_to_saas: true
     to_base64:
       - cloud_tags_hash
     selectors:
       - network_vars
     credentials:
       - reference: eval-ed-iam
         orchestration: true