-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tf
98 lines (87 loc) · 2.88 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
######################################################
# Terraform module to generate all network resources #
######################################################
module "network" {
source = "./modules/network"
vpc_cidr = "10.0.0.0/16"
owner = var.owner
public_cidr_subnet_1 = "10.0.1.0/24"
public_cidr_subnet_2 = "10.0.2.0/24"
application_cidr_subnet_1 = "10.0.3.0/24"
application_cidr_subnet_2 = "10.0.4.0/24"
database_cidr_subnet_1 = "10.0.5.0/24"
database_cidr_subnet_2 = "10.0.6.0/24"
}
module "front_security_groups" {
source = "./modules/front_security_groups"
vpc_id = module.network.vpc_id
owner = var.owner
}
module "db_security_groups" {
source = "./modules/db_security_groups"
vpc_id = module.network.vpc_id
input_sg_id = module.front_security_groups.id
owner = var.owner
}
module "Frontend_1" {
source = "./modules/ec2_instance"
user_data = "FrontEnd.sh"
name = "Terraform EC2 Front 1"
aws_security_group_id = module.front_security_groups.id
vpc_id = module.network.vpc_id
subnet_id = module.network.public_subnet_1_id
owner = var.owner
}
module "Frontend_2" {
source = "./modules/ec2_instance"
user_data = "FrontEnd.sh"
name = "Terraform EC2 Front 2"
aws_security_group_id = module.front_security_groups.id
vpc_id = module.network.vpc_id
subnet_id = module.network.public_subnet_2_id
owner = var.owner
}
module "BackEnd_1" {
source = "./modules/ec2_instance"
user_data = "BackEnd.sh"
name = "Terraform EC2 Back 1"
aws_security_group_id = module.front_security_groups.id
vpc_id = module.network.vpc_id
subnet_id = module.network.application_subnet_1_id
owner = var.owner
}
module "BackEnd_2" {
source = "./modules/ec2_instance"
user_data = "BackEnd.sh"
name = "Terraform EC2 Back 2"
aws_security_group_id = module.front_security_groups.id
vpc_id = module.network.vpc_id
subnet_id = module.network.application_subnet_2_id
owner = var.owner
}
module "load_balancer" {
source = "./modules/load_balancer"
owner = var.owner
vpc_id = module.network.vpc_id
elb_security_group_id = module.front_security_groups.id
elb_subnet_id_list = [ module.network.public_subnet_1_id,module.network.public_subnet_2_id] #, module.network.public_subnet_2_id]
bucket_name = "terraform-elb-logs"
target_list = [ module.Frontend_1.ec2_id, module.Frontend_2.ec2_id ]
depends_on = [
module.Frontend_1,
module.Frontend_2
]
}
module "rds" {
source = "./modules/rds"
db_subnet_group_name = "main"
db_name = "mydb"
db_username = var.db_username
db_password = var.db_password
database-sg = [module.db_security_groups.id]
database_subnet_id_list = [module.network.database_subnet_1_id, module.network.database_subnet_2_id]
owner = var.owner
depends_on = [
module.network
]
}