IT STUDY LOG
Sprint - 환경 변수 설정 본문
#학습 목표
- 클라이언트와 서버를 서로 연결하고 노출되면 안 되는 값을 보호하기 위해 환경 변수를 설정
#해결 과제
💡 AWS CodeBuild 서비스를 통해 환경 변수를 전달할 수 있어야 함
💡AWS Parameter Store 서비스와 AWS CLI를 통해 환경 변수를 전달할 수 있어야 함
#실습 자료
#과제 항목별 진행 상황
✏️ AWS CLI (AWS parameter Store 이용을 위해)와 RDS 설치
Step 1 : 홈 디렉토리에서 AWS CLI 설치
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
Step 2 : RDS 생성
✏️ CodeBuild : Client 환경 변수 설정
Step 1 : CodeBuild 콘솔에서 프로젝트 빌드 > 생성했던 빌드 프로젝트 이동
Step 2 : 빌드 프로젝트에서 편집 > 환경 선택
Step 3 : 환경 편집에서 서비스 역할 선택, 환경 변수 이름 입력
※ 주의 : EC2 값을 입력할 때 http:// 입력 필요
✏️ ParameterStore : Server에 DB 환경 변수 설정
Step 1 : ParameterStore 콘솔에서 파라미터 생성 이동
Step 2 : 파라미터 생성에서 필요한 DB관련 환경변수의 이름과 값을 지정
Step 3 : AWS System Manager의 Parameter Store에 정상적으로 파라메터가 등록되었는지 확인
- AWS Systems Manager Parameter Store는 표준 및 고급 파라미터로 구성되어 있으며 표준 파라미터는 추가 요금 없이 사용 가능
✏️ 자동화 시 Client, Server 환경 변수가 정상 적용되었는지 확인
Step 1 : start.sh 파일 수정 - aws cli를 통해 ssm 서비스 사용
# <프로젝트 최상위 경로>/scripts/start.sh
#!/bin/bash
cd /home/ubuntu/sprint-practice-deploy-for04/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
Step 2 : 터미널에서 git add, commit, push
$ git add .
$ git commit -m "modify : start.sh"
$ git push
Step 3 : CodePipeLline에서 정상적으로 배포 상황 확인
Step 4 : Client에 접속하여 로그인 수행 시 정상 화면 확인
# References
AWS CLI
- AWS Command Line Interface(AWS CLI)는 명령줄 셸의 명령을 사용하여 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구
- 최소한의 구성으로 AWS CLI를 사용하면 터미널 프로그램에 있는 명령 프롬프트에서 브라우저 기반 AWS Management Console에서 제공하는 것과 동일한 기능을 구현하는 명령을 실행 가능
- Linux 셸 - bash, zsh, tcsh 등의 일반적인 셸 프로그램을 사용하여 Linux 또는 macOS에서 명령을 실행
- Windows 명령줄 - Windows의 경우 PowerShell 또는 Windows 명령 프롬프트에서 명령을 실행
- 원격 – PuTTY 또는 SSH와 같은 원격 터미널 프로그램이나 AWS Systems Manager를 통해 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 명령을 실행
AWS CLI 설치 방법
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
# AWS CLI의 현재 설치를 업데이트하려면 기존 심볼 링크 및 설치 관리자 정보를 추가하여 --update 파라미터를 포함한 install 명령을 구성
$ sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
AWS CLI 명령어 사용하는 법
$ aws <command> <subcommand> [options and parameters]
Parameter Store 서비스
Parameter Store란?
- AWS Systems Manager의 기능인 Parameter Store는 구성 데이터 관리 및 암호 관리를 위한 안전한 계층적 스토리지를 제공
- 암호, 데이터베이스 문자열, Amazon Machine Image(AMI) ID, 라이선스 코드와 같은 데이터를 파라미터 값으로 저장할 수 있으며, 값을 일반 텍스트 또는 암호화된 데이터로 저장 가능
- 파라미터를 생성할 때 지정한 고유 이름을 사용하여 스크립트, 명령, SSM 문서, 구성 및 자동화 워크플로에서 Systems Manager 파라미터를 참조가능
- Parameter Store를 시작하려면 Systems Manager 콘솔을 엽니다. 탐색 창에서 Parameter Store를 선택
Parameter Store의 이점
- 안전하고 확장 가능한 호스팅 방식 암호 관리 서비스를 사용(관리할 서버가 없음).
- 데이터를 코드와 격리하여 보안 태세를 개선
- 구성 데이터 및 암호화된 문자열을 계층으로 저장하고 버전을 추적
- 세분화된 수준에서 액세스를 제어하고 감사
- Parameter Store는 AWS 리전의 여러 가용 영역에서 호스팅되기 때문에 파라미터를 안정적으로 저장
'devops bootcamp 4 > pair/team log' 카테고리의 다른 글
Sprint - API Gateway와 서버리스 애플리케이션 (1) | 2023.05.11 |
---|---|
Sprint - 도메인 주도 설계 실습 (0) | 2023.05.04 |
Sprint - 서버 배포 파이프라인 (0) | 2023.04.24 |
Sprint - 클라이언트 배포 파이프라인 (0) | 2023.04.24 |
Sprint - 환경 변수 분리 (0) | 2023.04.21 |
Comments