24.01.22 TIL- EC2
오늘은 배포에 대해 배웠다. 그전 프로젝트에서는 devOps를 맡아주신 분이 있었고, 대개 백엔드에 맡아주곤 하셔서 관심을 가지지 않았던 부분이다. 하지만 이번에 백엔드를 배우면서 배포쪽도 기본은 알고 있어야 할 것 같아 정리해 봤다.
AWS- EC2를 써볼것이고, 가비아 (https://www.gabia.com) 라는 사이트에서 도메인을 구매할 것이다.
가비아에서 할인 이벤트를 하는 도메인 중 (500원/1년)인 것도 있어서 그것을 테스트용으로 사용할 것인데, 1000원 이하는 카드결제가 안되므로 무통장입금(가상계좌)로 결제하는 것이 좋다.
1. EC2 instance 생성
1) AWS EC2에서는 컴퓨터 하나의 단위를 Instance라고 부르는데 이것은 서버 컴퓨터 하나를 대여한다는 것과 같다.
console 페이지에서 Region을 선택해야하는데 가까울 수록 접속속도가 빠르니 우리는 서울(ap-northeast-2)을 선택하면 된다. 인스턴스가 어떤 지역에서 켜질 지 고르는 작업이다.
2) EC2를 검색해 서비스 페이지로 이동하고 왼쪽메뉴에서 인스턴스를 눌러 이동한 페이지에서 우측 상단의 주황색 버튼으로 되어 있는 인스턴스시작을 클릭한다.
3) 그 후 "애플리케이션 및 OS 이미지)에서 Ubuntu를 선택, 아래의 Ubuntu Server 22.04 LTS(HVM)을 눌러 아키택쳐는 64비트(x86)으로 지정해준다.
4) 인스턴스 유형은 "프리 티어 사용 가능"이라고 적힌 t2.micro 타입을 선택 -> '새키페어 생성'버튼을 클릭하고 이름/유형(RSA)/프라이빗키(.pem)을 선택한다. -> 키페어 생성 버튼을 누르면 생성한 키페어 파일이 다운로드됨.
키페어는 서버에 접속할 수 있도록 해주는 신분증. 잃어버리면 다시 발급받을 수 없으니 EC2 instance를 지우기 전까지 잃어버리지 않게 보관할 것!!
5)마지막으로 인스턴스 시작 클릭하고 아이디를 누르면 생성된 인스턴스를 확인할 수 있다.
2. AWS EC2 Node.js 설치
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
3.EC2 instance에서 서버 실행
깃허브 레포지토리의 코드를 복사해서 EC2 instance에 삽입.
# 원격 저장소로 부터 코드 가져오기
git clone <Github Repository URL>
이 형태로 클론한다.
4.프로젝트 실행
1. `cd nodejs-todo-list` : 원격 저장소로부터 가져온 프로젝트로 이동합니다.
2. `sudo npm install -g yarn` : yarn을 사용하기 위해, 전역으로 yarn을 설치합니다.
3. `yarn` : 원격 저장소로 부터 가져온 프로젝트의 의존성 및 패키지를 설치합니다.
4. `node app.js` : 프로젝트를 실행합니다.
5. 서버와 도메인 연결하기
DNS관리 -> DNS 설정 -> 레코드 수정 -> 호스트이름:@ / IP주소: Public IP
1) 서버가 돌고 있는지 확인하려면
http://내AWS아이피:3000/
2) 도메인으로 접속하려면
http://내AWS아이피:3000/