AWS EC2
로 배포하는 방법을 정리해보려고한다.
EC2
:Elastic Compute Cloud
의 약자로AWS
에서 제공하는클라우드 컴퓨팅 서비스
. (AWS에서 원격으로 제어할 수 있는가상의 컴퓨터
를 한 대 빌리는 것)
Elastic
이라는 단어가 붙어있으며, 비용적인 부분 뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있다먼저, 아래와 같이 EC2 인스턴스
의 이름을 설정해주고 운영체제를 선택해 줘야하는데 나는 Ubuntu
로 선택해주었다.
다음으로는 키 페어
를 추가해줘야하는데 EC2 인스턴스
에 접속할 수 있는 비밀번호 라고 생각하면 될 것 같다. 키 페어
는 딱 한번만 발급 가능하므로 생성 후 아래의 명령어를 통해 ~/.ssh
경로에 옮겨주어 권한설정을 해준뒤 보관해주었다.
$ mv hoon-server.pem ~/.ssh
$ chmod 400 hoon-server.pem
또한 아래와 같이 보안그룹
의 인바운드
규칙을 설정해주자 (ssh: 22
, http: 80
, https: 443
, React: 3000
)
인바운드
: 클라이언트가 자신의 서버 데이터에 들어올 수 있는 규칙을 의미한다.
기본적으로 인바운드 규칙은 모든 포트를 닫는 것을 전제로 하며, 인바운드 규칙에서 설정하지 않은 포트들은 사용할 수 없는 포트이다.
탄력적 IP
란 고정된 퍼블릭 IP라고 이해하면 된다.
앞에서 생성한 EC2 인스턴스
는 재시동 할때마다, 새로운 IP를 할당 받는데 ssh 접속
할 때마다 굉장히 귀찮으므로 탄력적 IP
를 할당받아 고정시키는것이다.
아래와 같이 탄력적 IP
를 생성 후 생성한 EC2 인스턴스
에 연결해주면 된다.
이제 EC2 인스턴스
생성 후 아래의 명령어를 통해 EC2 인스턴스
에 접속할 수 있다.
$ ssh -i ~/.ssh/hoon-server.pem ubuntu@{EC2 인스턴스의 퍼블릭 IPv4 DNS}
다음과 같은 화면이 보인다면 EC2 인스턴스
접속 성공 !
먼저 배포할 프로젝트를 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
을 설치해주었다면, 가장 최신버전의 node
와 yarn
을 설치해주고 node
와 npm
yarn
이 잘 설치 되었는지 확인해준다.
$ nvm install --lts
$ node -v
$ npm -v
$ npm install yarn -g
$ yarn -v
이제 프로젝트 경로로 가서 프로젝트를 실행해주면 아래와 같이 EC2 인스턴스 ip: 3000
에 배포된 것을 확인할 수 있다.