1
+ # ############### SIDEKIQ CACHE FOR JOB PROCESSING #####################
2
+
1
3
resource "aws_security_group" "valkey" {
2
4
name = " mavis-cache-${ var . environment } "
3
5
description = " Security group for Valkey ElastiCache (self-designed cluster)"
@@ -109,4 +111,66 @@ resource "aws_cloudwatch_log_group" "valkey_engine_log" {
109
111
tags = {
110
112
Name = " mavis-cache-engine-log-${ var . environment } "
111
113
}
112
- }
114
+ }
115
+
116
+
117
+ # ############### REDIS CACHE FOR CACHING DB QUERIES #####################
118
+
119
+ resource "aws_security_group" "rails_valkey" {
120
+ name = " mavis-cache-rails-${ var . environment } "
121
+ description = " Security group for Valkey ElastiCache for the rails service"
122
+ vpc_id = aws_vpc. application_vpc . id
123
+
124
+ tags = {
125
+ Name = " mavis-cache-rails-${ var . environment } "
126
+ }
127
+
128
+ lifecycle {
129
+ ignore_changes = [description ]
130
+ }
131
+ }
132
+
133
+ resource "aws_security_group_rule" "rails_valkey_ingress" {
134
+ type = " ingress"
135
+ from_port = aws_elasticache_serverless_cache. rails_cache . endpoint [0 ]. port
136
+ to_port = aws_elasticache_serverless_cache. rails_cache . endpoint [0 ]. port
137
+ protocol = " tcp"
138
+ security_group_id = aws_security_group. rails_valkey . id
139
+ source_security_group_id = module. web_service . security_group_id
140
+
141
+ lifecycle {
142
+ create_before_destroy = true
143
+ }
144
+ }
145
+
146
+ resource "aws_elasticache_parameter_group" "rails" {
147
+ family = " valkey8"
148
+ name = " mavis-cache-rails-params-${ var . environment } "
149
+
150
+ parameter {
151
+ name = " maxmemory-policy"
152
+ value = " allkeys-lfu"
153
+ }
154
+
155
+ tags = {
156
+ Name = " mavis-cache-rails-params-${ var . environment } "
157
+ }
158
+ }
159
+
160
+ resource "aws_elasticache_serverless_cache" "rails_cache" {
161
+ engine = " valkey"
162
+ name = " mavis-cache-rails-${ var . environment } "
163
+ description = " Rails cache for web servers"
164
+ cache_usage_limits {
165
+ data_storage {
166
+ maximum = 1
167
+ unit = " GB"
168
+ }
169
+ ecpu_per_second {
170
+ maximum = 1000
171
+ }
172
+ }
173
+ major_engine_version = " 8"
174
+ security_group_ids = [aws_security_group . rails_valkey . id ]
175
+ subnet_ids = [aws_subnet . private_subnet_a . id , aws_subnet . private_subnet_b . id ]
176
+ }
0 commit comments