Chaeyeon0 / GreenDay_Study

여은개의 공부 일지
0 stars 0 forks source link

[20240522] 배포 빌드 실패에 대한 원인 예상 #19

Open Chaeyeon0 opened 1 month ago

Chaeyeon0 commented 1 month ago

채연이가 적고 있습니다..

동방에서 끄적끄적 시도해본 우리 빌드 실패를 겪고 gpt가 알려준걸 계속 보면서 거슬리는게 있었어요

사실 계속 데이터베이스와의 관계에서 문제 생겨나는건데 gpt는 계속 applcation.properties에 사용자 이름과 비밀번호를 다 넣으라고 얘기했어요

하지만 저희가 가지고 있는 민감한 정보는 털리며 안되기 때문에 백엔드 모두가 사용자 비밀번호와 이름을 gitignore에 추가를 했죠 !! (털리면 안됨 )

이렇게 되다 보니 당연히 .gitignore 파일에 추가된 파일이나 디렉토리는 Git이 추적하지 않으므로, 이 파일들이 Git 저장소에 커밋되지 않는다는 걸 알게 되었고, 따라서, Git 저장소를 클론하거나 SSH 링크를 통해 저장소를 배포할 때 .gitignore에 명시된 파일은 포함되지 않는 문제가 발생 할 수 있다는 !!걸 방금 깨닫게 되었어요.

이로 인해 해당 파일들이 필요한 설정 정보(예: 데이터베이스 사용자 이름 및 비밀번호)를 포함하고 있는 경우, 이러한 정보가 누락되어 애플리케이션이 올바르게 동작하지 않을 수 있을거라고 생각합니다...

이에 대한 해결 방안을 조금 알아본 결과 !

1. 환경 변수 사용 환경 변수를 사용하여 민감한 정보를 설정하면, 애플리케이션이 이를 참조하도록 할 수 있다고 합니다.

# application.yml 또는 application.properties
spring:
  datasource:
    url: ${DB_URL}
    username: ${DB_USERNAME}
    password: ${DB_PASSWORD}

그리고 EC2 인스턴스에서 애플리케이션을 실행하기 전에 환경 변수를 설정

export DB_URL=jdbc:mysql://localhost:3306/mydb
export DB_USERNAME=myuser
export DB_PASSWORD=mypassword

2. AWS Systems Manager Parameter Store 사용 AWS Systems Manager Parameter Store를 사용하여 환경 변수를 관리할 수 있다고 합니다... Parameter Store에 값을 저장한 후 이를 애플리케이션에서 읽어오는 것 !!

  1. Parameter Store에 값 저장:
    aws ssm put-parameter --name "DB_URL" --value "jdbc:mysql://localhost:3306/mydb" --type "String"
    aws ssm put-parameter --name "DB_USERNAME" --value "myuser" --type "String"
    aws ssm put-parameter --name "DB_PASSWORD" --value "mypassword" --type "String"
  2. 애플리케이션에서 Parameter Store 사용:
# application.yml 또는 application.properties
spring:
  datasource:
    url: ${ssm:/DB_URL}
    username: ${ssm:/DB_USERNAME}
    password: ${ssm:/DB_PASSWORD}

3. CI/CD 파이프라인을 통한 파일 배포 만약 application-aws.properties 파일을 유지하되 Git에 공개되지 않도록 하고 싶다면, 파일을 배포 과정에서 포함시킬 수 있다고 합니다아..

https://velog.io/@kimujin99/Side-project-AWS-EC2%EC%97%90-Spring-project-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B02

-채연 : 이거에 대해서 저도 좀 더 알아보고 내용 추가해보록 할게요 !

노션에 이미 써놨지만 공유 하자면

스크린샷 2024-05-23 011927

pu2rile commented 1 month ago

가보자고~~!!!! 코앞까지 와따!!!

khw010419 commented 1 month ago

진짜 어렵네요 ;; 쉬운게 없노 ;;