강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

KMC님의 프로필 이미지
KMC

작성한 질문수

비전공자도 이해할 수 있는 CI/CD 입문·실전

workflows/deploy.yml 궁금증

작성

·

26

0

안녕하세요 강사님 혹시 대학교 협업 프로젝트로

스프링 으로 ECR 과 S3 와 CODEDEPLOY를 이용해서 무중단 배포를 진행하려고 합니다.

image.png

혹시 이 부분에서 APPLICATION_PROPERTIES 말고 secretes 에 변수만 넣어서 하는 방법이 따로 있나요?

 

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

 

안녕하세요 ! 질문 너무 잘 해주셨어요 ~

질문해주신 내용에 답변 드려볼게요 !

"혹시 이부분에 APPLICATION_PROPERTIES 말고 secretes 에 변수만 넣어서 하는 방법이 따로 있나요?"

-> 네 ! APPLICATION_PROPERTIES는 application.yml 파일 전체 내용을 하나의 secret 값으로 통째로 넣는 방식인데요, 이 대신 각 환경변수를 개별 secret으로 분리해서 관리하는 방법도 있어요 ~

예를 들어 DB_URL, DB_USERNAME, DB_PASSWORD 등 각각의 값을 GitHub Secrets에 따로 등록한 뒤, deploy.yml에서 application.yml을 직접 생성하는 방식으로 작성하실 수 있어요 !

다만 이 방식은 환경변수 항목이 많아질수록 deploy.yml이 길어지고 관리가 번거로워질 수 있어서, 실제로는 APPLICATION_PROPERTIES 방식처럼 파일 전체를 하나의 secret으로 관리하는 게 더 편리한 경우가 많아요 ~

프로젝트 규모나 팀 상황에 따라 편한 방법으로 선택하시면 될 것 같아요 :)

추가로 궁금하신 점 있으시면 언제든 편하게 추가 질문 남겨주세요~~

0

안녕하세요, 인프런 AI 인턴입니다. KMC님.

ECR과 S3, CodeDeploy를 이용한 무중단 배포를 계획하시는 것이군요. GitHub Actions에서 application.yml 파일에 시크릿을 주입하는 방식에 대한 궁금증을 해결해 드리겠습니다.

GitHub Secrets를 활용하여 application.yml에 필요한 변수들을 자동으로 삽입할 수 있는 방법이 있습니다. application.yml 을 직접 생성하지 않고, 환경 변수를 통해 이를 설정할 수 있도록 구성하면 됩니다.

아래 방법을 고려해 보세요:

  1. 환경 변수 사용:

    • application.yml 에서 환경 변수를 참조하도록 설정합니다. 예를 들어:
      
      spring:
      datasource:
       username: ${DB_USERNAME}
       password: ${DB_PASSWORD}
      

  2. GitHub Actions에서 환경 변수 설정:

    • deploy.yml 스크립트에서 환경 변수를 설정합니다. 이를 위해 GitHub Secrets에 DB_USERNAME, DB_PASSWORD 등을 등록한 뒤, 워크플로우 실행 중 환경 변수로 전달합니다.
    env:
     DB_USERNAME: ${{ secrets.DB_USERNAME }}
     DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
    
  3. 시크릿 사용 없이 직접 변수만 넣기:

    • 시크릿이 아닌 환경 변수를 직접 정의하고 사용하는 방법도 있습니다. 하지만, 이를 직접 yml에 하드코딩하는 것은 권장되지 않으며, repository를 외부에 노출할 경우 보안에 취약해질 수 있습니다.

현재 적용하고 있는 방법에서 추가적으로 ENV 변수를 사용하여 application.yml 에 참조하는 방식을 적용하는 것을 권장드립니다.

유사한 사례를 참고할 수 있는 게시물입니다:
- GitHub Actions를 통한 환경 변수 관리에 관한 질문
- CI/CD 파이프라인에서의 환경 변수 활용

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

KMC님의 프로필 이미지
KMC
질문자

답변이 불만족 스럽습니다.

KMC님의 프로필 이미지
KMC

작성한 질문수

질문하기