Skip to content

Commit 49e4e26

Browse files
authored
Merge pull request #274 from prgrms-web-devcourse-final-project/chore/33-infra
Chore/33 infra
2 parents a1bbdd8 + 1a432db commit 49e4e26

File tree

3 files changed

+43
-11
lines changed

3 files changed

+43
-11
lines changed

backend/src/main/resources/application-prod.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,24 @@ spring:
3333
port: ${PROD_REDIS_PORT}
3434
password: ${PROD_REDIS_PASSWORD}
3535
embedded: false
36+
kafka:
37+
bootstrap-servers: kafka:9092
38+
producer:
39+
key-serializer: org.apache.kafka.common.serialization.StringSerializer
40+
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
41+
consumer:
42+
group-id: chat-processing-group # 컨슈머 그룹 ID
43+
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
44+
value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
45+
properties:
46+
spring.json.trusted.packages: "*"
47+
task:
48+
scheduling:
49+
shutdown:
50+
await-termination: true
51+
await-termination-period: 60s
52+
lifecycle:
53+
timeout-per-shutdown-phase: 60s
3654

3755
security:
3856
oauth2:

infra/.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ terraform.tfstate
55
terraform.tfstate.backup
66
.terraform.tfstate.lock.info
77
secrets.tf
8-
init/sql
8+
init/sql
9+
init/qdrant

infra/main.tf

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -165,14 +165,14 @@ resource "aws_s3_object" "init_data_sql" {
165165

166166
resource "aws_s3_object" "law_data_sql" {
167167
bucket = aws_s3_bucket.s3_bucket_1.bucket
168-
key = "lawData-dev.sql"
169-
source = "${path.module}/init/sql/dev/lawData-dev.sql"
168+
key = "lawData.sql"
169+
source = "${path.module}/init/sql/prod/lawData.sql"
170170
}
171171

172172
resource "aws_s3_object" "precedent_data_sql" {
173173
bucket = aws_s3_bucket.s3_bucket_1.bucket
174-
key = "precedentData-dev.sql"
175-
source = "${path.module}/init/sql/dev/precedentData-dev.sql"
174+
key = "precedentData.sql"
175+
source = "${path.module}/init/sql/prod/precedentData.sql"
176176
}
177177

178178
# EC2 설정 시작
@@ -311,12 +311,13 @@ docker run -d \
311311
312312
313313
# SQL 폴더 생성
314-
mkdir -p /home/ec2-user/app/init/sql/dev
314+
mkdir -p /home/ec2-user/app/init/sql/prod
315315
316316
# S3에서 SQL 파일 다운로드
317317
aws s3 cp s3://${var.prefix}-s3-bucket-1/init.sql /home/ec2-user/app/init/sql/init.sql
318-
aws s3 cp s3://${var.prefix}-s3-bucket-1/lawData-dev.sql /home/ec2-user/app/init/sql/dev/lawData-dev.sql
319-
aws s3 cp s3://${var.prefix}-s3-bucket-1/precedentData-dev.sql /home/ec2-user/app/init/sql/dev/precedentData-dev.sql
318+
aws s3 cp s3://${var.prefix}-s3-bucket-1/lawData.sql /home/ec2-user/app/init/sql/prod/lawData.sql
319+
aws s3 cp s3://${var.prefix}-s3-bucket-1/precedentData.sql /home/ec2-user/app/init/sql/prod/precedentData.sql
320+
aws s3 cp s3://${var.prefix}-s3-bucket-1/legal_cases.snapshot /home/ec2-user/app/init/qdrant/snapshot/legal_cases.snapshot
320321
321322
# MySQL 설정 폴더 생성 및 UTF8 설정
322323
mkdir -p /dockerProjects/mysql/volumes/etc/mysql/conf.d
@@ -325,6 +326,13 @@ cat <<EOF > /dockerProjects/mysql/volumes/etc/mysql/conf.d/charset.cnf
325326
[mysqld]
326327
character-set-server = utf8mb4
327328
collation-server = utf8mb4_general_ci
329+
lower_case_table_names=1
330+
innodb_buffer_pool_size = 1G
331+
innodb_flush_log_at_trx_commit = 2
332+
innodb_flush_method = O_DIRECT
333+
tmp_table_size = 256M
334+
max_heap_table_size = 256M
335+
max_connections = 100
328336
329337
[client]
330338
default-character-set = utf8mb4
@@ -366,16 +374,21 @@ docker exec mysql mysql -uroot -p${var.password_1} -e "
366374
367375
FLUSH PRIVILEGES;
368376
"
369-
docker exec -i mysql mysql -uroot -p${var.password_1} ${var.app_1_db_name} < /home/ec2-user/app/init/sql/dev/lawData-dev.sql
370-
docker exec -i mysql mysql -uroot -p${var.password_1} ${var.app_1_db_name} < /home/ec2-user/app/init/sql/dev/precedentData-dev.sql
377+
docker exec -i mysql mysql -uroot -p${var.password_1} ${var.app_1_db_name} < /home/ec2-user/app/init/sql/prod/lawData.sql
378+
docker exec -i mysql mysql -uroot -p${var.password_1} ${var.app_1_db_name} < /home/ec2-user/app/init/sql/prod/precedentData.sql
371379
372380
# Qdrant 설치
381+
mkdir -p /qdrant/snapshots/legal_cases
382+
aws s3 cp s3://${var.prefix}-s3-bucket-1/legal_cases.snapshot /qdrant/snapshots/legal_cases/legal_cases.snapshot
383+
373384
docker run -d \
374385
--name qdrant \
375386
--restart unless-stopped \
376387
--network common \
377388
-p 6333:6333 \
378389
-p 6334:6334 \
390+
-v /qdrant/storage:/qdrant/storage \
391+
-v /qdrant/snapshots:/qdrant/snapshots \
379392
qdrant/qdrant
380393
381394
# Qdrant healthcheck 대기
@@ -440,7 +453,7 @@ resource "aws_instance" "ec2_1" {
440453
# 사용할 AMI ID
441454
ami = data.aws_ami.latest_amazon_linux.id
442455
# EC2 인스턴스 유형
443-
instance_type = "t3.micro"
456+
instance_type = "t3.small"
444457
# 사용할 서브넷 ID
445458
subnet_id = aws_subnet.subnet_2.id
446459
# 적용할 보안 그룹 ID

0 commit comments

Comments
 (0)