1+ /* *
2+ * Usage:
3+ *
4+ * module "network" {
5+ * source = "./modules/network"
6+ *
7+ * # Global
8+ * aws_region = var.aws_region
9+ *
10+ * # VPC
11+ * vpc_cidr = var.vpc_cidr
12+ * public_subnet = var.public_subnet
13+ *
14+ * }
15+ */
16+
17+ module "vpc" {
18+ source = " terraform-aws-modules/vpc/aws"
19+
20+ name = " elasticsearch-vpc"
21+ cidr = var. vpc_cidr
22+
23+ azs = [" ${ var . aws_region } a" ]
24+ public_subnets = [var . public_subnet ]
25+
26+ enable_dns_hostnames = true
27+ enable_nat_gateway = false
28+ single_nat_gateway = false
29+ enable_vpn_gateway = false
30+
31+ # Tags
32+ tags = merge (var. tags , map (
33+ " Name" , " elasticsearch-vpc"
34+ ))
35+
36+ }
37+
38+ module "elasticsearch_sg" {
39+ source = " terraform-aws-modules/security-group/aws"
40+
41+ name = " elasticsearch-sg"
42+ description = " Security group that allows access to Elasticsearch only from your IP and all egress traffic"
43+ vpc_id = module. vpc . vpc_id
44+
45+ ingress_with_cidr_blocks = [
46+ {
47+ rule = " https-443-tcp"
48+ description = " Elasticsearch/Kibana"
49+ cidr_blocks = " ${ var . my_public_ip } /32"
50+ },
51+ ]
52+
53+ egress_with_cidr_blocks = [
54+ {
55+ rule = " all-all"
56+ description = " Internet"
57+ cidr_blocks = " 0.0.0.0/0"
58+ },
59+ ]
60+
61+ # Tags
62+ tags = merge (var. tags , map (
63+ " Name" , " elasticsearch-sg"
64+ ))
65+
66+ }
0 commit comments