AWS EC2 생성 및 React+Node.js 프로젝트 배포하기

bible_k_·2023년 7월 23일
1

내가 보려고 쓰는 글!
React+Node.js로 개발한 프로젝트를 배포하는 과정이다.

1. EC2 인스턴스 생성

1) AWS EC2접속

AWS EC2에 접속 후 콘솔에 로그인

2) 서비스 - EC2 - 인스턴스 시작

인스턴스란 클라우드의 가상서버

3) 인스턴스 정보 입력

  • 인스턴스 이름 입력

  • AMI선택:
    가상머신이어도 운영체제가 운영되어야한다.
    프리티어 사용이 가능한 Amazon Linux를 선택하였다.

  • 아키텍처 선택:
    64비트

  • 인스턴스 유형 선택:
    CPU수, 메모리 크기 등을 선택할 수 있다.
    프리티어 사용이 가능한 t2.micro 선택하였다.

  • 키 페어:
    처음 생성하는 것이기에 새로운 키페어 생성하였다.
    표준 암호화 방식인 RSA를 선택했고, OpenSSH를 사용할 것이기 때문에 .pem 파일형식으로 선택했다.
    키페어를 생성하면 다운로드가된다.

  • 네트워크 설정:
    편집을 클릭하여 보안그룹 이름과 설명을 수정해준다.
    도메인 적용할 예정이기 때문에 http https 트래픽도 허용으로 설정
    소스 유형을 내 IP로 설정

  • 스토리지 구성:
    프리티어는 30gb EBS범용(SSD)를 사용할 수 있다.
    30gb, 범용 SSD(gp3) 선택
    https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ebs-volume-types.html

  • 고급 세부 정보는 패스

  • Summary 확인

  • 인스턴스 시작

2. 인스턴스 연결

인스턴스 생성 후에 인스턴스 ID를 클릭하면 인스턴스 정보를 확인할 수 있다.

1) 인스턴스 ID - 연결 - SSH클라이언트 - 예시로 나오는 ssh 연결 링크 복사
2) 터미널에 붙여넣기

🧨주의사항1🧨

Warning: Identity file 키이름.pem not accessible: No such file or directory.

키가 있는 위치에서 인스턴스 연결을 진행해야 한다.
cd 명령어로 이동

🧨주의사항2🧨

SSH 키 파일의 권한이 너무 개방적이기 때문에 발생하는 오류이다.
아래 명령어를 사용하여 키 파일의 권한을 변경한다.

$ chmod 600 keyname.pem


연결 성공!

3. 인스턴스에 node, git 설치

1) root 권한으로 전환

$ sudo su


이렇게 변경된다.

2) node 설치

AWS 가이드 Amazon EC2 인스턴스에 Node.js 설정 참고

  • Node Version Manager (nvm) 설치:
    $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
  • .nvm 디렉토리의 스크립트를 실행:
    $ . ~/.nvm/nvm.sh
  • Node.js 설치:
    $ nvm install node
  • Node.js 버전 확인:
    $ node -e "console.log('Running Node.js ' + process.version)"

    설치가 잘 되었군요

3) git 설치

$ sudo yum update // package update
$ sudo yum install git

4. 프로젝트 코드 클론

$ git  clone 프로젝트 코드 url

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.

21년 8월 13일에 비밀번호 인증 지원이 종료되었다고 함.
깃허브에서 토큰 생성하고 그 토큰을 이용하여 인증을 진행

깃허브에서 personal access token 생성하기

토큰 생성 경로
=> 깃허브 settings - Developer settings - Personal access tokens - Generate new token

5. NginX 설치

$ sudo yum install nginx

6. 리액트 앱 빌드

1) package.json이 위치한 상위 폴더로 이동

cd 슉슉~
만약 ec2-user 에서 나가졌다면
$ cd /home/ec2-user 명령어를 통해 ec2-user 디렉토리로 이동할 수 있다.

$ npm install
$ npm build

이 과정은 새로운 버전을 배포할 때마다 진행해준다.

Creating an optimized production build...

여기서 멈춤 현상이 발생하고 있다.
찾아보니 프리티어로 이용하는 t2.micro라서 메모리 부족으로 인해 빌드가 안되는 것이라고 한다.
해결하고 마저 작성해야겠다.

profile
후론트엔드 개발자

2개의 댓글

comment-user-thumbnail
2023년 7월 23일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

1개의 답글