IT STUDY LOG

Sprint - 환경 변수 설정 본문

devops bootcamp 4/pair/team log

Sprint - 환경 변수 설정

roheerumi 2023. 4. 24. 16:37

#학습 목표

  • 클라이언트와 서버를 서로 연결하고 노출되면 안 되는 값을 보호하기 위해 환경 변수를 설정

 

#해결 과제

💡 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에 정상적으로 파라메터가 등록되었는지 확인

  1. 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 Command Line Interface이란 무엇인가요? - AWS Command Line Interface

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

AWS CLI 설치 방법

 

최신 버전의 AWS CLI 설치 또는 업데이트 - AWS Command Line Interface

이전 버전에서 업데이트하는 경우 unzip 명령을 실행하면 기존 파일을 덮어쓸지 묻는 메시지가 표시됩니다. 스크립트 자동화와 같은 경우에 이러한 프롬프트를 건너뛰려면 unzip에 대한 -u 업데이

docs.aws.amazon.com

$ 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 CLI 명령 구조

$ aws <command> <subcommand> [options and parameters]
 

AWS CLI의 명령 구조 - AWS Command Line Interface

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

AWS CLI 명령어

 

aws — AWS CLI 2.11.15 Command Reference

Synopsis aws [options] [parameters] Use aws command help for information on a specific command. Use aws help topics to view a list of available help topics. The synopsis for each command shows its parameters and their usage. Optional parameters are shown i

awscli.amazonaws.com

 

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 리전의 여러 가용 영역에서 호스팅되기 때문에 파라미터를 안정적으로 저장
Comments