notes
EC2 인스턴스 생성
AWS EC2 인스턴스 생성·AMI·네트워크와 접속 설정 기본 메모.
1. EC2 인스턴스 생성
1. 인스턴스 생성
- https://aws.amazon.com/ko/ 접속 →
콘솔에 로그인클릭 → 로그인
검색→ EC2 검색 →EC2클릭 →인스턴스클릭
인스턴스 시작클릭
- 아래의 사진들을 참고하여 정보를 기입(또는 선택)합니다.
생성된 키 페어를 통해 EC2 인스턴스에 접속이 가능합니다. (잘 저장해두도록 합니다.)
2. 보안서버 설정
- 해당
인스턴스 ID클릭 →보안클릭 →보안 그룹클릭
인바운드 규칙클릭 →인바운드 규칙 편집클릭
규칙 추가클릭 → 사진을 참고하여 정보 기입 →규칙 저장클릭
아웃바운드 규칙클릭 →아웃바운드 규칙 편집클릭
규칙 추가클릭 → 사진을 참고하여 정보 기입 →규칙 저장클릭
3. 인스턴스 접속
EC2 대시보드클릭 →인스턴스(실행 중)클릭 → 해당인스턴스 ID클릭
퍼블릭 IPv4 주소복사
- 터미널 실행 → 다운로드한 키 페어가 존재하는 경로에서 다음 명령어를 입력합니다.
- 키 페어의 권한을 설정하는 명령어입니다.
- 최초 한 번만 입력해주면 되는 명령어입니다.
chmod 400 instance.pem
[참고] downloads 폴더에서는 위의 명령어가 정상적으로 동작하지 않을 수 있습니다.
이 경우에는, 키 페어를 다른 폴더에 위치시키면 됩니다.
- 다음 코드를 터미널에 입력합니다.
ssh ubuntu@{{퍼블릭 IPv4 주소}} -i ./{{키 페어}}
# ssh ubuntu@3.36.131.4 -i ./instance.pem
yes
- 아래와 같은 화면이 나온 경우, 정상적으로 인스턴스에 연결된 것입니다.
4. 개발환경 세팅
- 다음 코드를 터미널에 입력합니다.
sudo apt-get update -y && sudo apt-get upgrade -y
- 아래와 같은 화면이 뜨는 경우,
Enter키를 누릅니다.
- 다음 코드를 터미널에 입력합니다. (Node.js 설치)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
- 다음 코드를 터미널에 입력합니다.
source ~/.bashrc
- 다음 코드를 터미널에 입력합니다. (nvm을 통해 Node.js LTS 버전 설치)
nvm install --lts
- 다음 코드를 터미널에 입력합니다. (Node.js LTS를 기본버전으로 설정)
nvm use --lts
- 다음 코드를 터미널에 입력합니다. (npm을 최신 버전으로 설치)
npm i -g npm@latest
- 다음 코드를 터미널에 입력합니다. (무중단 배포를 위해 pm2 설치)
npm i -g pm2
- 다음 코드를 터미널에 입력합니다. (yarn 설치)
npm i -g yarn
- 다음 코드를 터미널에 입력합니다. (@nestjs/cli 설치)
npm i -g @nestjs/cli
5. 프로젝트 실행
- 다음 코드를 터미널에 입력합니다.
nest new hello-world
[참고] 프로젝트가 이미 존재하는 경우, git clone ~ 명령어를 사용하면 됩니다. (단, 프로젝트 권한을 갖기 위해서는 GitHub 사이트에서 SSH 키 설정이 필요합니다.)
- 다음 코드를 터미널에 입력합니다.
cd hello-world
yarn
yarn build
pm2 --name hello-world start yarn -- start
- 웹 브라우저에서 {{퍼블릭 IPv4 주소}}:3000 으로 접속합니다.
- Hello World!가 뜨는 경우, 정상적으로 연결된 것입니다.
5. GitHub repository에서 프로젝트 전체를 복사해오기
- GitHub 사이트에서 SSH 키 설정이 필요합니다. (다음 가이드를 참고하세요.)
- 원격 저장소에서 복사할 프로젝트의 SSH를 복사합니다.
- 터미널에 다음 코드를 입력합니다. (원격저장소에서 프로젝트 전체를 복사해오기)
git clone {{원격저장소의 SSH}}
# git clone git@github.com:kviruslab-dev/backend-template.git
- 터미널에 다음 코드를 입력합니다. (프로젝트 실행하기)
cd {{프로젝트 이름}}
# cd backend-template
yarn
yarn start
- 웹 브라우저에서 {{퍼블릭 IPv4 주소}}:{{백엔드 포트}}로 접속합니다.
[참고] EC2 보안서버에서 인바운드, 아웃바운드에 백엔드 포트 규칙이 등록되어 있어야 정상적으로 연결됩니다.