@@ -134,6 +134,47 @@ resource "aws_security_group" "sg_1" {
134134 }
135135}
136136
137+ # S3 버킷 생성
138+ resource "aws_s3_bucket" "s3_bucket_1" {
139+ bucket = " ${ var . prefix } -s3-bucket-1"
140+
141+ force_destroy = true # 버킷 안에 객체가 있어도 삭제 가능
142+
143+ tags = {
144+ Name = " ${ var . prefix } -s3-bucket-1"
145+ }
146+ }
147+
148+ # S3 암호화방식 설정(SSE-S3 방식)
149+ resource "aws_s3_bucket_server_side_encryption_configuration" "s3_encryption" {
150+ bucket = aws_s3_bucket. s3_bucket_1 . id
151+
152+ rule {
153+ apply_server_side_encryption_by_default {
154+ sse_algorithm = " AES256"
155+ }
156+ }
157+ }
158+
159+ # SQL 파일을 S3에 업로드
160+ resource "aws_s3_object" "init_data_sql" {
161+ bucket = aws_s3_bucket. s3_bucket_1 . bucket
162+ key = " init.sql"
163+ source = " ${ path . module } /init/sql/init.sql"
164+ }
165+
166+ resource "aws_s3_object" "law_data_sql" {
167+ bucket = aws_s3_bucket. s3_bucket_1 . bucket
168+ key = " lawData-dev.sql"
169+ source = " ${ path . module } /init/sql/dev/lawData-dev.sql"
170+ }
171+
172+ resource "aws_s3_object" "precedent_data_sql" {
173+ bucket = aws_s3_bucket. s3_bucket_1 . bucket
174+ key = " precedentData-dev.sql"
175+ source = " ${ path . module } /init/sql/dev/precedentData-dev.sql"
176+ }
177+
137178# EC2 설정 시작
138179
139180# EC2 역할 생성
@@ -237,15 +278,26 @@ docker run -d \
237278 -e TZ=Asia/Seoul \
238279 redis --requirepass ${ var . password_1 }
239280
281+
282+ # SQL 폴더 생성
283+ mkdir -p /home/ec2-user/app/init/sql/dev
284+
285+ # S3에서 SQL 파일 다운로드
286+ aws s3 cp s3://${ var . prefix } -s3-bucket-1/init.sql /home/ec2-user/app/init/sql/init.sql
287+ aws s3 cp s3://${ var . prefix } -s3-bucket-1/lawData-dev.sql /home/ec2-user/app/init/sql/dev/lawData-dev.sql
288+ aws s3 cp s3://${ var . prefix } -s3-bucket-1/precedentData-dev.sql /home/ec2-user/app/init/sql/dev/precedentData-dev.sql
289+
240290# mysql 설치
241291docker run -d \
242292 --name mysql \
243293 --restart unless-stopped \
244294 -v /dockerProjects/mysql/volumes/var/lib/mysql:/var/lib/mysql \
245295 -v /dockerProjects/mysql/volumes/etc/mysql/conf.d:/etc/mysql/conf.d \
296+ -v /home/ec2-user/app/init/sql:/docker-entrypoint-initdb.d \
246297 --network common \
247298 -p 3306:3306 \
248299 -e MYSQL_ROOT_PASSWORD=${ var . password_1 } \
300+ -e MYSQL_DATABASE=${ var . app_1_db_name } \
249301 -e TZ=Asia/Seoul \
250302 mysql:latest
251303
@@ -258,18 +310,18 @@ done
258310echo "MySQL이 준비됨. 초기화 스크립트 실행 중..."
259311
260312docker exec mysql mysql -uroot -p${ var . password_1 } -e "
261- CREATE USER 'lldjlocal'@'127.0.0.1' IDENTIFIED WITH caching_sha2_password BY '1234';
262- CREATE USER 'lldjlocal'@'172.18.%.%' IDENTIFIED WITH caching_sha2_password BY '1234';
263- CREATE USER 'lldj'@'%' IDENTIFIED WITH caching_sha2_password BY '${ var . password_1 } ';
264-
265- GRANT ALL PRIVILEGES ON *.* TO 'lldjlocal'@'127.0.0.1';
266- GRANT ALL PRIVILEGES ON *.* TO 'lldjlocal'@'172.18.%.%';
267- GRANT ALL PRIVILEGES ON *.* TO 'lldj'@'%';
313+ CREATE USER 'lldjlocal'@'127.0.0.1' IDENTIFIED WITH caching_sha2_password BY '1234';
314+ CREATE USER 'lldjlocal'@'172.18.%.%' IDENTIFIED WITH caching_sha2_password BY '1234';
315+ CREATE USER 'lldj'@'%' IDENTIFIED WITH caching_sha2_password BY '${ var . password_1 } ';
268316
269- CREATE DATABASE \`${ var . app_1_db_name } \`;
317+ GRANT ALL PRIVILEGES ON *.* TO 'lldjlocal'@'127.0.0.1';
318+ GRANT ALL PRIVILEGES ON *.* TO 'lldjlocal'@'172.18.%.%';
319+ GRANT ALL PRIVILEGES ON *.* TO 'lldj'@'%';
270320
271- FLUSH PRIVILEGES;
321+ FLUSH PRIVILEGES;
272322"
323+ 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
324+ 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
273325
274326# Qdrant 설치
275327docker run -d \
0 commit comments