DevOps35일차 - AWS 환경변수 설정

문한성·2023년 4월 25일
0

부트캠프

목록 보기
66/123
post-thumbnail

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

  • AWS CodeBuild 서비스를 통해 환경 변수를 전달할 수 있어야 합니다.
  • AWS Parameter Store 서비스와 AWS CLI를 통해 환경 변수를 전달할 수 있어야 합니다.

사전 준비

  • RDS 인스턴스가 생성되어 있어야 합니다.
  • 서버 환경 변수 설정 실습이 성공적으로 마무리되기 위해서는 EC2 인스턴스 안에 AWS CLI가 설치되어 있어야 합니다.
# 생성한 EC2 인스턴스를 터미널을 통해 접속합니다. 아래 명령어를 터미널에 복사하여 붙여 넣습니다.
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install

# aws --version 명령어를 통해 AWS CLI의 설치 여부를 확인합니다.
$ aws --version

클라이언트 환경변수 설정

CodeBuild 메인 콘솔에 접속합니다.

생성한 빌드 프로젝트를 클릭합니다.

편집 토글에 환경 옵션을 클릭합니다.

추가 구성 토글을 클릭합니다.

환경 변수 입력

환경 변수의 이름으로 REACT_APP_API_URL를 입력합니다.

값으로 EC2 인스턴스의 IP주소를 입력합니다. 이때 EC2 인스턴스의 IP주소 앞에 'http://'를 필수적으로 붙여야 합니다.

환경 업데이트 여부 확인

'빌드 프로젝트의 환경이 업데이트되었습니다.' 메시지가 보이면 환경 변수 설정이 완료된 것입니다.

생성한 S3 버킷의 엔드포인트 주소로 접속하여 로그인 테스트를 진행합니다.

연결 확인하기

서버 환경변수 설정

Parameter Store 대시보드로 이동후, 파라미터 생성 클릭

환경 변수명과 값 입력 후, 우측 하단의 [파라미터 생성] 버튼 클릭

름에 환경 변수명을 적어주고, 환경 변수에 할당되어야 할 값을 입력합니다.

우측 하단으로 내려가 [ 파라미터 생성 ] 버튼을 눌러 파라미터를 생성합니다.

여기서 환경 변수명은 소스 코드로 등록한 리포지토리에서 사용하고 있는 환경 변수를 그대로 이용하면 됩니다.

우리는 현재 리포지토리에서 총 4개(DATABASE_HOST, DATABASE_USER, DATABASE_PASSWORD, DATABASE_PORT)의 환경 변수를 이용해 DB와의 연결을 세팅해두었습니다.

해당 과정을 반복해 4개의 파라미터를 모두 생성합니다.

필요한 환경 변수가 모두 생성 되었는지 확인

필요한 환경 변수가 4개 모두 생성되었는지 확인합니다.

start.sh 파일을 다음과 같이 수정

다음으로 로컬 환경에서 소스 코드의 start.sh 파일을 수정합니다.
파이프라인을 통해 코드가 성공적으로 된 것을 확인한 후, 배포한 클라이언트 S3 버킷의 엔드포인트로 접속해 환경 변수가 정상적으로 전달되었는지 확인합니다. RDS의 연결 여부를 확인합니다.

#!/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

연결 확인하기

profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글