반응형
클라이언트 배포 자동화와 서버 배포 자동화 파이프라인을 완성했다면 서로 연결에 있어 노출되지 말아야 할 값들이 있다.
그런 값들을 보호하기 위해서 환경변수를 선택할 수 있다.
실습 전 RDS 인스턴스를 생성해준다.
EC2 인스턴스에 AWS CLI 설치
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
1. 클라이언트 환경 변수 설정
생성해놓은 빌드 프로젝트에서 편집 > 환경 > 추가 구성
환경변수 이름 : REACT_APP_API_URL
값: EC2 인스턴스 IP주소 (반드시 앞부분에 http:// 기입)
2. 서버 환경 변수 설정
비밀번호와 같은 환경 변수는 외부에 노출되면 안되므로 소스코드에 포함시킬 수 없다.
AWS Parameter Store 서비스를 이용하여 EC2 인스턴스에 환경 변수를 전달할 수 있다.
Parameter Store 에서 파라미터 생성 > 양식에 맞는 파라미터 값 입력
DATABASE_HOST= RDS 엔드포인트
DATABASE_USER= 마스터 사용자 이름
DATABASE_PASSWORD= 마스터 사용자의 비밀번호
DATABASE_PORT= RDS 연결 포트번호
다음은 이전 서버 배포 자동화에서 작성한 Start.sh를 수정한다.
##수정된 start.sh
#!/bin/bash
cd /home/wook/sprint-practice-deploy-for03/server
export DATABASE_USER=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_USER --query Parameters[0].Value | sed 's/"//g')
export DATABASE_PASSWORD=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_PASSWORD --query Parameters[0].Value | sed 's/"//g')
export DATABASE_PORT=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_PORT --query Parameters[0].Value | sed 's/"//g')
export DATABASE_HOST=$(aws ssm get-parameters --region ap-northeast-2 --names DATABASE_HOST --query Parameters[0].Value | sed 's/"//g')
authbind --deep pm2 start app.js
EC2 인스턴스를 이용하여 RDS 인스턴스에 연결 확인
mysql -u ${마스터 이름} --host ${RDS 엔드 포인트 주소} -P ${포트번호} -p
Enter password: 마스터 비밀번호
반응형
'DevOps > AWS' 카테고리의 다른 글
배포 자동화 - 환경변수 설정 - 트러블슈팅 (0) | 2023.01.16 |
---|---|
서버 배포 자동화 (0) | 2023.01.16 |
클라이언트 배포 자동화 (0) | 2023.01.16 |
AWS 클라우드 서비스 (0) | 2023.01.16 |
서버 배포 자동화 - 트러블 슈팅 (1) | 2023.01.13 |