[aws] next.js ec2 배포

2023. 6. 22. 15:36카테고리 없음

aws ec2(하나의 컴퓨터)로 next.js로 만든 앱을 배포 할 예정입니다.

 

 

이름에 인스턴스 이름과 ubuntu를 설정해주겠습니다. Amazon Linux를 써도 좋은데 yum으로 해야해서 sudo 명령어를 바로 사용하기 위해 ubuntu lts 22버전으로 (2023/06/22기준) 사용하겠습니다. 

  인스턴스 유형 선택 

 t2.micro가 RAM 1GB지만 프리티어고 우선 이걸로 선택하겠습니다.

 

 

키페어 생성 (.pem) 

키페어 이름을 설정하고 '키 페어 생성' 하면 이름.pem이 다운로드 되고 절대! 분실하지 말아야합니다. 따로 메일로 보내거나 회사에서 어디에 업로드해서 관리합니다.

 

보안그룹 생성

https ,http트래픽도 아래 비어있지만 허용해줍니다.

하고 인스턴스 시작을 누르면 몇초 뒤 인스턴스가 생성 됩니다.

 

권한

chmod 400 

  • chmod 400 my-key.pem의 의미 : my-key.pem 파일을 나에게만 읽기 권한을 부여합니다.
  • 키 페어 파일 권한을 설정하지 않은 경우 권한이 너무 열려 있다는 경고와 거절합니다.

CLI 에서 download에서 my-key.pem을 받은 경로로 가서 

Downloads> chmod 400 my-key.pem

권한 허용 후 

인스턴스 -> 연결 -> ssh로 연결하기의 명령어를 복사후 

pem키가 있는 경로 (저는 /downloads) 에서 

 ssh -i "my-key.pem" ubuntu@xx.ap-northeast-2.compute.amazonaws.com

하고 yes를 입력해주면 cli로 접속 완료! 

 

 

인스턴스 세팅하기

패키지 리스트 업데이트

sudo apt-get update

 

 

- apt(advanced package tool) : Ubuntu에서 사용하는 패키지 관리 시스템.
- 패키지를 install, upgrade, clean할 때는 apt-get을 사용한다.
- 새로운 패키지를 찾고자 할 때는 apt-cache를 사용한다.

 

nvm 설치

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

 

nvm 활성화

. ~/.nvm/nvm.sh



최신 버전의 node 설치

nvm install node 
또는
nvm install --lts

 

 

yarn 설치(yarn사용시)

sudo npm install -g yarn

 

 

프로젝트 가져오기

1.git clone으로 가져오기

2. clone 받아온 프로젝트 폴더로 이동

 

3. yarn 패키지 매니저 설치

curl -o- -L https://yarnpkg.com/install.sh | bash

 

4. package.json에 명시돼있는 패키지 설치 & 빌드

yarn install
yarn build

 

포트 포워딩

- URL 끝에 포트를 next.js에서 실행시 붙히는데 (3000이 default) 이를 붙히지 않고 접근하도록 포트 포워딩 합니다.

- 포트 번호가 없는 URL은 사실 기본 포트 80을 사용하는 상태이고 이를 자동으로 현재 서버가 열린 3000번으로 보내주기 위해서 '포트포워딩'을 합니다.

- 포트 포워딩은 보통 nginx (spa앱) 을 이용하거나 우분투 기본 명령어를 사용합니다. 

 

우분투 기본 명령어 사용해서

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000