Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/CI-CD_Pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -263,8 +263,7 @@ jobs:
PROD_DATASOURCE_DRIVER=com.mysql.cj.jdbc.Driver
PROD_DATASOURCE_USERNAME=root
PROD_DATASOURCE_PASSWORD=${{ secrets.DB_PASSWORD }}
# 추후 validate 변경
PROD_JPA_HIBERNATE_DDL_AUTO=create
PROD_JPA_HIBERNATE_DDL_AUTO=none

PROD_REDIS_HOST=redis
PROD_REDIS_PORT=6379
Expand All @@ -274,7 +273,6 @@ jobs:
PROD_QDRANT_PORT=6334

send_email_address=${{ secrets.SEND_EMAIL_ADDRESS }}
email_address=${{ secrets.EMAIL_ADDRESS }}
send_email_password=${{ secrets.EMAIL_PASSWORD }}

PROD_SENTRY_DSN=${{ secrets.SENTRY_DSN }}
Expand Down
52 changes: 0 additions & 52 deletions backend/src/main/java/com/ai/lawyer/global/initData/InitData.java

This file was deleted.

2 changes: 1 addition & 1 deletion backend/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,4 +133,4 @@ custom:
jwt:
secretKey: ${CUSTOM_JWT_SECRET_KEY}
accessToken:
expirationSeconds: ${CUSTOM_JWT_ACCESS_TOKEN_EXPIRATION_SECONDS}
expirationSeconds: ${CUSTOM_JWT_ACCESS_TOKEN_EXPIRATION_SECONDS}
3 changes: 2 additions & 1 deletion infra/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
terraform.tfstate
terraform.tfstate.backup
.terraform.tfstate.lock.info
secrets.tf
secrets.tf
init/sql
70 changes: 61 additions & 9 deletions infra/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,47 @@ resource "aws_security_group" "sg_1" {
}
}

#S3 버킷 생성
resource "aws_s3_bucket" "s3_bucket_1" {
bucket = "${var.prefix}-s3-bucket-1"

force_destroy = true # 버킷 안에 객체가 있어도 삭제 가능

tags = {
Name = "${var.prefix}-s3-bucket-1"
}
}

#S3 암호화방식 설정(SSE-S3 방식)
resource "aws_s3_bucket_server_side_encryption_configuration" "s3_encryption" {
bucket = aws_s3_bucket.s3_bucket_1.id

rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}

# SQL 파일을 S3에 업로드
resource "aws_s3_object" "init_data_sql" {
bucket = aws_s3_bucket.s3_bucket_1.bucket
key = "init.sql"
source = "${path.module}/init/sql/init.sql"
}

resource "aws_s3_object" "law_data_sql" {
bucket = aws_s3_bucket.s3_bucket_1.bucket
key = "lawData-dev.sql"
source = "${path.module}/init/sql/dev/lawData-dev.sql"
}

resource "aws_s3_object" "precedent_data_sql" {
bucket = aws_s3_bucket.s3_bucket_1.bucket
key = "precedentData-dev.sql"
source = "${path.module}/init/sql/dev/precedentData-dev.sql"
}

# EC2 설정 시작

# EC2 역할 생성
Expand Down Expand Up @@ -237,15 +278,26 @@ docker run -d \
-e TZ=Asia/Seoul \
redis --requirepass ${var.password_1}


# SQL 폴더 생성
mkdir -p /home/ec2-user/app/init/sql/dev

# S3에서 SQL 파일 다운로드
aws s3 cp s3://${var.prefix}-s3-bucket-1/init.sql /home/ec2-user/app/init/sql/init.sql
aws s3 cp s3://${var.prefix}-s3-bucket-1/lawData-dev.sql /home/ec2-user/app/init/sql/dev/lawData-dev.sql
aws s3 cp s3://${var.prefix}-s3-bucket-1/precedentData-dev.sql /home/ec2-user/app/init/sql/dev/precedentData-dev.sql

# mysql 설치
docker run -d \
--name mysql \
--restart unless-stopped \
-v /dockerProjects/mysql/volumes/var/lib/mysql:/var/lib/mysql \
-v /dockerProjects/mysql/volumes/etc/mysql/conf.d:/etc/mysql/conf.d \
-v /home/ec2-user/app/init/sql:/docker-entrypoint-initdb.d \
--network common \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=${var.password_1} \
-e MYSQL_DATABASE=${var.app_1_db_name} \
-e TZ=Asia/Seoul \
mysql:latest

Expand All @@ -258,18 +310,18 @@ done
echo "MySQL이 준비됨. 초기화 스크립트 실행 중..."

docker exec mysql mysql -uroot -p${var.password_1} -e "
CREATE USER 'lldjlocal'@'127.0.0.1' IDENTIFIED WITH caching_sha2_password BY '1234';
CREATE USER 'lldjlocal'@'172.18.%.%' IDENTIFIED WITH caching_sha2_password BY '1234';
CREATE USER 'lldj'@'%' IDENTIFIED WITH caching_sha2_password BY '${var.password_1}';

GRANT ALL PRIVILEGES ON *.* TO 'lldjlocal'@'127.0.0.1';
GRANT ALL PRIVILEGES ON *.* TO 'lldjlocal'@'172.18.%.%';
GRANT ALL PRIVILEGES ON *.* TO 'lldj'@'%';
CREATE USER 'lldjlocal'@'127.0.0.1' IDENTIFIED WITH caching_sha2_password BY '1234';
CREATE USER 'lldjlocal'@'172.18.%.%' IDENTIFIED WITH caching_sha2_password BY '1234';
CREATE USER 'lldj'@'%' IDENTIFIED WITH caching_sha2_password BY '${var.password_1}';

CREATE DATABASE \`${var.app_1_db_name}\`;
GRANT ALL PRIVILEGES ON *.* TO 'lldjlocal'@'127.0.0.1';
GRANT ALL PRIVILEGES ON *.* TO 'lldjlocal'@'172.18.%.%';
GRANT ALL PRIVILEGES ON *.* TO 'lldj'@'%';

FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
"
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
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

# Qdrant 설치
docker run -d \
Expand Down
2 changes: 1 addition & 1 deletion infra/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ variable "prefix" {
variable "app_1_domain" {
description = "app_1 domain"
default = "api.trybalaw.com"
}
}