NestJS를 배포하면서 꽤 많은 문제를 겪었다. 이때 찾아본 문서를 정리해둔다.
먼저 ELB(Elastic Beanstalk)에서 NodeJS용 이미지는 nginx와 같이 배포되었을 때 로컬의 8081포트와 80포트를 연결해준다.
무슨 말이냐면 80포드(일반적으로 http에서 사용하는 포트)에서 들어온 요청을 그대로 로컬의 8081포트에 연결해준다는 뜻이다.
그런데 NestJS는 기본포트가 3000이다. 따라서 포트를 변경해줘야하는데 다양한 방법으로 변경할 수 있다. 나는 주로 아래와 같은 방법을 선호한다. 환경변수로 PORT값을 설정해주는 방법이다.
import { NestFactory } from "@nestjs/core";
import { AppModule } from "app.module";
async function bootstrap() {
const app = await NestFactory.create(AppModule, {});
const port = process.env.PORT || 3000;
console.log("Server running at http://127.0.0.1:" + port + "/");
await app.listen(port);
}
ELB에서 환경변수 설정하는 방법은 환경 -> 구성 -> 소프트웨어 로 들어가서 맨 마지막에 보면 환경변수가 있다. 작성해주면 된다.
빌드 언어는 빌드시에 메모리를 상당히 많이 잡아먹어서 빌드시에 heap out of memory 같은게 날 수 있다. 이 때는 ELB를 구성하고 있는 기본 EC2 인스턴스의 타입을 올려주자!
아래 글은 직접 파일을 올려서 배포하는 방법이다.
'Web Programming > NestJS' 카테고리의 다른 글
[NestJS] Mongoose Cache 적용 (0) | 2022.04.25 |
---|---|
[mongoose] 인덱스 생성 그런데 이제 NestJS에서 (0) | 2022.02.23 |
[NestJS] string을 mongo ObjectId로 변경하기 (0) | 2022.02.23 |
[NestJS] mongoose 다른 이름으로 populate하기 (0) | 2022.02.14 |
[NestJS] 아직도 dotenv 사용함? (0) | 2022.02.03 |