본문 바로가기

개발 기록/AWS

[aws] Elastic Beanstalk을 활용하여 react 배포 시 에러 발생

안녕하세요 :)

react를 활용하여 프런트엔드를 개발하고 aws의 배포를 하기로 하였습니다.

react 단독 앱만을 Elastic Beanstalk을 활용하여 ec2에 배포를 하는 중 아래와 같은 에러가 발생하였습니다.

[ERROR] An error occurred during execution of command [app-deploy] - [Use NPM to install dependencies]. 
Stop running the command. 
Error: Command /bin/sh -c npm --production install failed with error signal: killed. 
Stderr:npm WARN config production Use `--omit=dev` instead.

에러 내용이 정말 정확지 않았습니다. 어떤 문제가 발생했는지 알아야 문제를 해결이 되는데 npm 설치 중 발생한 문제로 밖에 인지를 못하였습니다.

구글링을 하여 찾아 보니 에러의 원인은 npm 설치 중 메모리 부족으로 인해서 발생하는 문제였습니다.

Elastic Beanstalk을 활용하여 배포를 할 때 ec2의 인스턴스 종류는 t2.micro를 사용하였습니다. t2.micro의 메모리 크기는 1기가입니다. 메모리 부족 문제(성능 문제)가 맞는지 확인하기 위해서 t2.medium(메모리 4기가)으로 배포를 시도하니 너무나도 정상적으로 배포가 되었습니다.

그럼 여기서 첫번째로 해결할 수 있는 방법은 인스턴스의 종류를 조금 더 높은걸 사용하시면 되겠습니다.

 

하지만, 규모가 큰 프로젝트도 아니고 또는 취미로 개발을 하신다면 t2.medium 가격이 부담이 되실 수 있습니다.

Elastic Beanstalk(ec2) 를 사용하실 이유가 없으시다면 두번째 해결 방법으로 AWS amplify 사용을 추천 드립니다.

AWS amplify를 사용하신다면 react 앱을 정말 간단하게 배포를 하실 수 있습니다. 배포 후 npm 설치시에도 배포를 위한 빌드 환경도 별도로 aws에서 제공을 해주기 때문에 큰 문제 없이 배포도 하실 수 있습니다.

Amplify 최고😀