/ dev.tf
dev.tf
1 locals { 2 dev_env = { 3 /* Node start command */ 4 EB_NODE_COMMAND = "node server.js" 5 /* WARNING EB forces PORT 8081 */ 6 ENVIRONMENT = "DEV" 7 RATE_LIMIT_TIME = 15 /* ms window */ 8 RATE_LIMIT_MAX_REQ = 1 9 /* Access */ 10 ADMIN_USER = data.pass_password.dap_ps_admin_user.password 11 ADMIN_PASSWORD = data.pass_password.dap_ps_admin_pass.password 12 /* Database */ 13 DB_CONNECTION = data.pass_password.dap_ps_dev_db_uri.password 14 /* Blockchain */ 15 INFURA_KEY = "8675214b97b44e96b70d05326c61fd6a" 16 DISCOVER_CONTRACT = "0x15E64CA874071DaE0bf0cEdF31d36D9f7e7F7909" 17 /* IPFS */ 18 IPFS_HOST = "ipfs.status.im" 19 IPFS_PORT = 443 20 IPFS_PROTOCOL = "https" 21 /* Email */ 22 EMAIL_USER = data.pass_password.dap_ps_smtp_user.password 23 EMAIL_PASSWORD = data.pass_password.dap_ps_smtp_pass.password 24 EMAIL_HOST = "email-smtp.us-east-1.amazonaws.com" 25 EMAIL_PORT = 465 26 EMAIL_TLS = "true" 27 APPROVE_NOTIFIER_MAIL = "approvals@dap.ps" /* FROM */ 28 APPROVER_MAIL = "dapps-approvals@status.im" 29 } 30 } 31 32 module "dev_cert" { 33 source = "./modules/aws-acm-cert" 34 stage = "dev" 35 domain = "dap.ps" 36 sans = ["raw.dev.dap.ps"] 37 zone_id = aws_route53_zone.dap_ps.zone_id 38 39 route53_zone_id = aws_route53_zone.dap_ps.zone_id 40 } 41 42 module "dev_db_bucket" { 43 source = "./modules/aws-s3-bucket" 44 bucket_name = "dev-dap-ps-db-backups" 45 description = "Bucket for MongoDB backups on db.dev" 46 } 47 48 module "dev_db" { 49 source = "./modules/aws-ec2-instance" 50 groups = ["mongodb"] 51 env = "db" 52 stage = "dev" 53 host_count = 1 54 subdomain = var.hosts_subdomain 55 domain = var.public_domain 56 open_ports = [27017] /* mongodb */ 57 58 /* Network */ 59 vpc_id = module.dev_env.vpc_id 60 subnet_id = module.dev_env.subnet_ids[0] 61 sec_group = module.dev_env.security_group_id 62 /* Plumbing */ 63 keypair_name = aws_key_pair.admin.key_name 64 route53_zone_id = aws_route53_zone.dap_ps.zone_id 65 } 66 67 module "dev_env" { 68 source = "./modules/aws-eb-env" 69 name = "dev-dap-ps" 70 stage = "dev" 71 env_vars = local.dev_env 72 dns_domain = var.public_domain 73 stack_name = var.stack_name 74 75 /* Plumbing */ 76 cert_arn = module.dev_cert.arn 77 keypair_name = aws_key_pair.admin.key_name 78 79 /* Scaling */ 80 instance_type = "t2.micro" 81 autoscale_min = 1 82 autoscale_max = 2 83 } 84 85 module "dev_cdn" { 86 source = "./modules/aws-cloud-front" 87 env = "dap-ps" 88 stage = "dev" 89 aliases = ["dev.dap.ps"] 90 cert_arn = module.dev_cert.arn 91 origin_fqdns = module.dev_env.elb_fqdns 92 } 93 94 /* AWS DNS --------------------------------------*/ 95 96 /* raw subdomain for access without CDN */ 97 resource "aws_route53_record" "dev_dns_raw" { 98 zone_id = aws_route53_zone.dap_ps.zone_id 99 name = "raw.dev" 100 type = "CNAME" 101 ttl = 3600 102 records = [for elb in module.dev_env.elb_fqdns: "${elb}."] 103 } 104 105 resource "aws_route53_record" "dev_dns_cdn" { 106 zone_id = aws_route53_zone.dap_ps.zone_id 107 name = "cdn.dev" 108 type = "CNAME" 109 ttl = 3600 110 records = ["${module.dev_cdn.cf_domain_name}."] 111 } 112 113 resource "aws_route53_record" "dev_dns" { 114 zone_id = aws_route53_zone.dap_ps.zone_id 115 name = "dev" 116 type = "CNAME" 117 118 alias { 119 name = aws_route53_record.dev_dns_cdn.fqdn 120 zone_id = aws_route53_record.dev_dns_cdn.zone_id 121 122 evaluate_target_health = false 123 } 124 }