Skip to content

서비스 배포

Hyomin Koo edited this page Aug 22, 2024 · 8 revisions

요구 사항

서비스 배포를 위해서는 다음과 같은 사항이 필요합니다:

  1. AWS 서비스에 업로드를 위한 AWS 계정
  2. 프로젝트 빌드를 위한 Node.js, pnpm, aws-cli, aws-sam-cli
  3. AWS 계정 credentials 설정

참고: 이 서비스는 AWS의 S3, API Gateway, CloudFront, DynamoDB 서비스를 사용하여 구동되며, CloudFormation 을 통해 배포됩니다. 가격 정책을 잘 살펴보고 배포하세요.

설치

Windows

Node.jspnpm 설치

Node.js 는 공식 사이트에서 설치하실 수 있습니다. 설치 후 npm install -g pnpm 을 입력하여 pnpm을 설치합니다.

aws-cli 설치

공식 사이트에서 설치 파일을 다운로드 받아 설치하세요.

aws-sam-cli 설치

공식 사이트에서 설치 파일을 다운로드 받아 설치하세요.

AWS 계정 설정

aws configure 명령어를 이용하여 계정을 설정할 수 있습니다.

소스 코드 복제 및 의존성 설치

git clone https://github.com/EATSTEAK/lockerweb.git
cd ./lockerweb
pnpm i --frozen-lockfile

혹은 레포지토리 메인에서 zip 파일을 직접 다운로드 받아 압축을 푼 디렉토리 아래에서 pnpm i --frozen-lockfile 을 실행하여 설치할 수 있습니다.

macOS

aws-cli 설치

공식 사이트에서 설치 파일을 다운로드 받아 설치하세요.

aws-sam-cli 설치

공식 사이트에서 설치 파일을 다운로드 받아 설치하세요.

node 및 소스코드 복제

brew를 활용하면 간편하게 설치할 수 있습니다. 설치 후 aws configure 를 통해 계정 설정을 진행하세요.

brew tap aws/tap
brew install node pnpm
git clone https://github.com/EATSTEAK/lockerweb.git
cd ./lockerweb
pnpm i --frozen-lockfile

계정 설정

aws configure 명령어를 통해 계정을 설정하기 위해서는 먼저 IAM 설정이 필요합니다. IAM 토큰 설정을 완료하고 aws configure 명령어를 통해 입력하세요.

빌드 진행

최상위 디렉토리에서 아래 명령어를 입력하여 프로젝트를 빌드하세요. 빌드 후 배포를 진행하면 됩니다.

pnpm build

배포 진행

최상위 디렉토리에서 아래 명령어를 입력하면 배포가 진행됩니다.

Warning

배포 이후에 서비스를 최초 설정하기 위해서는 반드시 AdminId=20XXXXXX 부분을 최고 관리자의 학번으로 바꾸어야 합니다.

Caution

JwtSecret=this-is-sample-key 는 인증 토큰을 암호화하기 위한 비밀 키로, 절대로 기본값으로 두어서는 안되며, 관리자만 알 수 있는 임의의 값으로 변경하여야 합니다.

pnpm run deploy --parameter-overrides AdminId=20XXXXXX JwtSecret=this-is-sample-key

배포가 완료되면 배포된 CloudFront 사이트 URL이 콘솔에 표시됩니다. 해당 URL에 접속하면 서비스가 실행됨을 볼 수 있습니다.

서비스에 커스텀 도메인을 연결하고 싶다면 커스텀 도메인 연결하기를 참조하세요.

주의!!: 한번 배포를 시작하면 Ctrl+C 등의 단축키 등으로 쉘을 나가지 않는 것이 좋습니다! 배포 도중에 취소하면 변경 사항 세트에 문제가 발생해 AWS 콘솔을 통해 직접 자원을 삭제하지 않는다면 다시 배포를 진행하지 못하게 될 수 있습니다. 반드시 배포가 완료된 후 pnpm delete 명령어를 입력하여 배포를 삭제한 후 DynamoDB 테이블을 삭제하여 배포본을 삭제하세요.

배포본 삭제

최상위 디렉토리에서 아래 명령어를 입력하면 배포가 삭제됩니다.

pnpm run delete

주의!!: 배포를 삭제하여도 데이터 보존을 위해 DynamoDB 테이블은 삭제되지 않습니다. 만약 다시 배포를 원한다면 DynamoDB 테이블의 데이터 백업 여부를 확인하고 테이블을 삭제한 뒤 배포하시기 바랍니다.

다음
서비스 설정