[Infra] AWS EC2 로 React 배포하기

Hoon·2023년 9월 10일
2

Infra

목록 보기
3/10
post-thumbnail

AWS EC2 로 배포하는 방법을 정리해보려고한다.

EC2 : Elastic Compute Cloud 의 약자로 AWS 에서 제공하는 클라우드 컴퓨팅 서비스. (AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터한 대 빌리는 것)

  • 사용한 만큼 비용을 지불하기 때문에 탄력적인 이라는 의미의 Elastic이라는 단어가 붙어있으며, 비용적인 부분 뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있다

EC2 인스턴스 생성

먼저, 아래와 같이 EC2 인스턴스 의 이름을 설정해주고 운영체제를 선택해 줘야하는데 나는 Ubuntu 로 선택해주었다.

다음으로는 키 페어 를 추가해줘야하는데 EC2 인스턴스접속할 수 있는 비밀번호 라고 생각하면 될 것 같다. 키 페어 는 딱 한번만 발급 가능하므로 생성 후 아래의 명령어를 통해 ~/.ssh 경로에 옮겨주어 권한설정을 해준뒤 보관해주었다.

$ mv hoon-server.pem ~/.ssh
$ chmod 400 hoon-server.pem

또한 아래와 같이 보안그룹인바운드 규칙을 설정해주자 (ssh: 22, http: 80, https: 443, React: 3000)

인바운드 : 클라이언트가 자신의 서버 데이터에 들어올 수 있는 규칙을 의미한다.
기본적으로 인바운드 규칙은 모든 포트를 닫는 것을 전제로 하며, 인바운드 규칙에서 설정하지 않은 포트들은 사용할 수 없는 포트이다.


탄력적 IP

탄력적 IP고정된 퍼블릭 IP라고 이해하면 된다.
앞에서 생성한 EC2 인스턴스 는 재시동 할때마다, 새로운 IP를 할당 받는데 ssh 접속 할 때마다 굉장히 귀찮으므로 탄력적 IP 를 할당받아 고정시키는것이다.

아래와 같이 탄력적 IP 를 생성 후 생성한 EC2 인스턴스 에 연결해주면 된다.


EC2 인스턴스 접속

이제 EC2 인스턴스 생성 후 아래의 명령어를 통해 EC2 인스턴스 에 접속할 수 있다.

$ ssh -i ~/.ssh/hoon-server.pem ubuntu@{EC2 인스턴스의 퍼블릭 IPv4 DNS}

다음과 같은 화면이 보인다면 EC2 인스턴스 접속 성공 !


Install

먼저 배포할 프로젝트를 Git 으로부터 clone 받아준다.

$ git clone {git clone url}

이제 Node 를 설치해주기전 nvm (Node Version Manager)를 설치해준다.
아래는 차례대로 nvm 설치, 활성화, 버전확인 명령어이다.

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
$ . ~/.nvm/nvm.sh 
$ nvm --version 

nvm 을 설치해주었다면, 가장 최신버전의 nodeyarn 을 설치해주고 nodenpm yarn 이 잘 설치 되었는지 확인해준다.

$ nvm install --lts
$ node -v
$ npm -v
$ npm install yarn -g
$ yarn -v

Try

이제 프로젝트 경로로 가서 프로젝트를 실행해주면 아래와 같이 EC2 인스턴스 ip: 3000 에 배포된 것을 확인할 수 있다.

profile
4년차 개발자 Hoon입니다

0개의 댓글