@@ -4,32 +4,32 @@ resource "aws_security_group" "elasticsearch_sg" {
4
4
5
5
# Elasticsearch native transport protocol
6
6
ingress {
7
- from_port = 9300
8
- to_port = 9300
7
+ from_port = " ${ var . elasticsearch_native_port } "
8
+ to_port = " ${ var . elasticsearch_native_port } "
9
9
protocol = " tcp"
10
10
cidr_blocks = [" ${ var . trusted_networks } " ]
11
11
}
12
12
13
13
# Elasticsearch HTTP service
14
14
ingress {
15
- from_port = 9200
16
- to_port = 9200
15
+ from_port = " ${ var . elasticsearch_http_port } "
16
+ to_port = " ${ var . elasticsearch_http_port } "
17
17
protocol = " tcp"
18
18
cidr_blocks = [" ${ var . trusted_networks } " ]
19
19
}
20
20
21
21
# Elasticsearch native transport protocol
22
22
egress {
23
- from_port = 9300
24
- to_port = 9300
23
+ from_port = " ${ var . elasticsearch_native_port } "
24
+ to_port = " ${ var . elasticsearch_native_port } "
25
25
protocol = " tcp"
26
26
cidr_blocks = [" ${ var . trusted_networks } " ]
27
27
}
28
28
29
29
# Elasticsearch HTTP service
30
30
egress {
31
- from_port = 9200
32
- to_port = 9200
31
+ from_port = " ${ var . elasticsearch_http_port } "
32
+ to_port = " ${ var . elasticsearch_http_port } "
33
33
protocol = " tcp"
34
34
cidr_blocks = [" ${ var . trusted_networks } " ]
35
35
}
@@ -40,27 +40,29 @@ resource "aws_security_group" "elasticsearch_sg" {
40
40
}
41
41
}
42
42
43
- data "template_file" "elasticsearch_master_cloudconfig " {
43
+ data "template_file" "master_node_cloudconfig " {
44
44
template = " ${ file (" ${ path . module } /resources/userdata.tpl" )} "
45
45
vars {
46
- configuration_script = " ${ base64encode (file (" ${ path . module } /../resources/install-unix-tools.sh" ))} "
47
- cluster_name = " ${ var . ecs_cluster_name } "
48
46
cluster_role = " elasticsearch-master"
49
- host_name = " ${ lower (var. verbose_name )} -elasticsearch"
50
- volume_device = " ${ var . data_volume_device } "
47
+ cluster_name = " ${ var . ecs_cluster_name } "
48
+ instance_group = " ${ var . ecs_instance_group } "
49
+ host_name = " ${ lower (var. env_name )} -elasticsearch-master"
51
50
volume_path = " ${ var . data_volume_path } "
51
+ volume_device = " ${ var . data_volume_device } "
52
+ configuration_script = " ${ base64encode (file (" ${ path . module } /../resources/install-unix-tools.sh" ))} "
52
53
}
53
54
}
54
55
55
- data "template_file" "elasticsearch_data_cloudconfig " {
56
+ data "template_file" "data_node_cloudconfig " {
56
57
template = " ${ file (" ${ path . module } /resources/userdata.tpl" )} "
57
58
vars {
58
- configuration_script = " ${ base64encode (file (" ${ path . module } /../resources/install-unix-tools.sh" ))} "
59
- cluster_name = " ${ var . ecs_cluster_name } "
60
59
cluster_role = " elasticsearch-data"
61
- host_name = " ${ lower (var. verbose_name )} -elasticsearch"
62
- volume_device = " ${ var . data_volume_device } "
60
+ cluster_name = " ${ var . ecs_cluster_name } "
61
+ instance_group = " ${ var . ecs_instance_group } "
62
+ host_name = " ${ lower (var. env_name )} -elasticsearch-data"
63
63
volume_path = " ${ var . data_volume_path } "
64
+ volume_device = " ${ var . data_volume_device } "
65
+ configuration_script = " ${ base64encode (file (" ${ path . module } /../resources/install-unix-tools.sh" ))} "
64
66
}
65
67
}
66
68
@@ -76,7 +78,7 @@ resource "aws_instance" "elasticsearch_master_instance" {
76
78
source_dest_check = false
77
79
disable_api_termination = " ${ var . enable_termination_protection } "
78
80
instance_initiated_shutdown_behavior = " stop"
79
- user_data = " ${ data . template_file . elasticsearch_master_cloudconfig . rendered } "
81
+ user_data = " ${ data . template_file . master_node_cloudconfig . rendered } "
80
82
tags {
81
83
Env = " ${ var . env_name } "
82
84
Name = " ${ var . env_name } -${ var . verbose_name } -Elasticsearch-Master-Zone${ count . index } "
@@ -85,7 +87,6 @@ resource "aws_instance" "elasticsearch_master_instance" {
85
87
86
88
resource "aws_instance" "elasticsearch_data_instance" {
87
89
count = " ${ var . data_nodes_count } "
88
- depends_on = [" aws_ebs_volume.elasticsearch_data_volume" ]
89
90
ami = " ${ var . instance_ami } "
90
91
instance_type = " ${ var . data_instance_type } "
91
92
subnet_id = " ${ element (var. vpc_subnets , count. index )} "
@@ -96,7 +97,7 @@ resource "aws_instance" "elasticsearch_data_instance" {
96
97
source_dest_check = false
97
98
disable_api_termination = " ${ var . enable_termination_protection } "
98
99
instance_initiated_shutdown_behavior = " stop"
99
- user_data = " ${ data . template_file . elasticsearch_data_cloudconfig . rendered } "
100
+ user_data = " ${ data . template_file . data_node_cloudconfig . rendered } "
100
101
tags {
101
102
Env = " ${ var . env_name } "
102
103
Name = " ${ var . env_name } -${ var . verbose_name } -Elasticsearch-Data-Zone${ count . index } "
@@ -107,20 +108,19 @@ resource "aws_ebs_volume" "elasticsearch_data_volume" {
107
108
count = " ${ var . data_nodes_count } "
108
109
availability_zone = " ${ element (var. availability_zones , count. index )} "
109
110
size = " ${ var . data_instance_storage_size } "
110
-
111
111
tags {
112
112
Env = " ${ var . env_name } "
113
- Name = " ${ var . env_name } -${ var . verbose_name } -Elasticseach -Volume-Zone${ count . index } "
113
+ Name = " ${ var . env_name } -${ var . verbose_name } -Elasticsearch-Data -Volume-Zone${ count . index } "
114
114
}
115
115
}
116
116
117
117
resource "aws_ebs_volume" "elasticsearch_master_volume" {
118
118
count = " ${ var . master_nodes_count } "
119
119
availability_zone = " ${ element (var. availability_zones , count. index )} "
120
- size = 10
120
+ size = " ${ var . master_instance_storage_size } "
121
121
tags {
122
122
Env = " ${ var . env_name } "
123
- Name = " ${ var . env_name } -${ var . verbose_name } -Elasticseach -Volume-Zone${ count . index } "
123
+ Name = " ${ var . env_name } -${ var . verbose_name } -Elasticsearch-Master -Volume-Zone${ count . index } "
124
124
}
125
125
}
126
126
@@ -140,23 +140,24 @@ resource "aws_volume_attachment" "elasticsearch_master_volume_attachement" {
140
140
instance_id = " ${ element (aws_instance. elasticsearch_master_instance . * . id , count. index )} "
141
141
}
142
142
143
+
143
144
data "aws_route53_zone" "local" {
144
145
zone_id = " ${ var . vpc_dns_zone_id } "
145
146
}
146
147
147
- resource "aws_route53_record" "elasticsearch_master_node_dns_records " {
148
- count = " ${ var . master_nodes_count } "
148
+ resource "aws_route53_record" "elasticsearch_master_record " {
149
+ count = " ${ var . master_nodes_count > 0 ? 1 : 0 } "
149
150
zone_id = " ${ var . vpc_dns_zone_id } "
150
- name = " ${ var . master_nodes_count == 1 ? format ( " elasticsearch.master.%s " , data. aws_route53_zone . local . name ) : format ( " elasticsearch.master%d.%s " , count . index , data . aws_route53_zone . local . name ) } "
151
+ name = " elasticsearch.master.${ data . aws_route53_zone . local . name } " ,
151
152
type = " A"
152
153
ttl = " 60"
153
- records = [" ${ element ( aws_instance. elasticsearch_master_instance . * . private_ip , 0 ) } " ]
154
+ records = [" ${ aws_instance . elasticsearch_master_instance . * . private_ip } " ]
154
155
}
155
156
156
- resource "aws_route53_record" "elasticsearch_data_node_dns_records " {
157
- count = " ${ var . data_nodes_count } "
157
+ resource "aws_route53_record" "elasticsearch_data_record " {
158
+ count = " ${ var . data_nodes_count > 0 ? 1 : 0 } "
158
159
zone_id = " ${ var . vpc_dns_zone_id } "
159
- name = " ${ var . data_nodes_count == 1 ? format ( " elasticsearch.%s " , data. aws_route53_zone . local . name ) : format ( " elasticsearch%d.%s " , count . index , data . aws_route53_zone . local . name ) } "
160
+ name = " elasticsearch.${ data . aws_route53_zone . local . name } " ,
160
161
type = " A"
161
162
ttl = " 60"
162
163
records = [" ${ element (aws_instance. elasticsearch_data_instance . * . private_ip , 0 )} " ]
0 commit comments