kim-kiwon / yoriking-joriking-be

요리킹 조리킹 BE
0 stars 0 forks source link

Github action 수정 및 Mysql 연동 #5

Closed kim-kiwon closed 1 year ago

kim-kiwon commented 1 year ago

작업내용

Mysql 계정정보 암호화 전달 고려

  1. Github Secret 을 환경변수로 넘기기
    • Github Action
      • Github Action 서버에서는 Github Secret 을 가져와 사용할 수 있다.
    • CodeDeploy
      • GithubAction 에서 CodeDeploy 를 실행하는 aws cli 로 GIthub Secret 을 넘겨주어야하는데 제공되지 않음.
      • CodeDeploy 서버 -> 서버그룹들의 서버도 환경변수를 넘겨줄 수 있는 방법이 없다.
  2. ec2 의 bash_profile 에 환경 변수로 주입해둠
    • 아니면 직접 ssh 로 들어가 ~/.bash_profile 에 환경변수로 주입해두는 방법이 있다.
    • 그런데 CodeDeploy 가 훅인 start.sh 를 실행할때 bash_profile 을 읽어오지 못해. 어차피 source 로 스크립트를 적용해야한다.
  3. Github Secret 을 환경변수로 등록해주도록. Github Action 에서 스크립트 파일 만들기
    • Github Action
      • Github Secret 을 가져와 사용할 수 있다.
      • 여기서 코드 check out 후에. Github Secret 을 환경변수로 등록하는 secret.sh를 만들자. ex) exports MYSQL_USERNAME=name
    • CodeDeploy
      • appspec 경로 기준 모든 파일을 S3로 업로드하므로. secret.sh 도 포함되어 있음
      • appspec.yml 의 hook 으로 secret.sh 추가
      • secret.sh 는 루트쉘의 child 프로세스임. secret.sh 프로세스에서만 환경변수가 추가됨.
      • 실제 배포 수행하는 start.sh 에서는 환경변수 없는 이슈 발생.
      • appspec.yml 의 hook인 start.sh 에서 source secret.sh 실행
      • 리눅스 source 명령어를 사용하면. 특정 스크립트를 현재 쉘에서 실행할 수 있다.
      • 배포를 수행하는 start.sh 에서 source 명령어로 secert.sh 를 실행해 환경변수를 추가하며 배포한다.


Mysql 연동 추가


서버포트 및 프로필