#TIL AWS 배포

송정석·2022년 5월 5일
0
post-thumbnail

보안그룹 생성





RDS 생성


EC2 생성





ssh -i key.pem ec2-user@<확인한 public ip> // 생성한 인스턴스로 접속
yum update -y // 를 입력하여 yum (linux 패키지 다운로더)을 업데이트

git 설치 및 클론

yum install git
git clone <repo_front>
git clone <repo_back>
node 및 npm 설치

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

nvm install --lts
nvm use --lts

node -v
// 16.x.x

프로젝트 셋팅

FRONT

// .env 파일 입력
REACT_APP_BASE_URL=<추후 EC2 인스턴스의 dns 혹은 IP 주소로 넣습니다.>
// config.js 위치 /src/config.js
// config.js에서 .env에서 읽은 url 값을 바인딩
const BASE_URL = process.env.REACT_APP_BASE_URL
// package.json
{
  ...
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
		"distribute": "npm i && npm run build && pm2 serve build 3000 --name <project-front> --spa" // <- 추가
  },
  ...
	"devDependencies": {
		...
		"pm2": "^5.1.2" // ► npm i -D pm2를 하면 프로그램 설치와 동시에 추가가 됩니다.
	}
}
npm i (npm install) : package-lock.json 내의 dependency 목록들을 읽은 다음 모듈들을 설치
npm run build : package.json 내의 scripts에서 build 부분을 읽어 해당 명령어를 실행

BACK

// package.json
{
  ...
  "scripts": {
		...
		// 아래 부분 추가
		"distribute": "npm i && prisma generate && pm2 start server.js --name <project-back> -i max" // <- 추가
  },
  ...
	"devDependencies": {
		...
		"pm2": "^5.1.2" // ► npm i -D pm2를 하면 프로그램 설치와 동시에 추가가 됩니다.
	}
}
npm i : 위와 동일
pm2 del <project-back> : 이전에 실행된 server가 있으면 종료
// .env
DATABASE_URL="mysql://admin:<RDS_비밀번호>@<DB_ENDPOINT>:3306/<database명>"
npm run distribute // front back 각각 경로에서 실행
mysql -h <RDS 주소> -p  -u admin
profile
Foot print

0개의 댓글