Ubuntu
를 선택하고, Ubuntu Server 22.04 LST(HVM)-프리티어 사용 가능
을 선택한다(무료일 가능성이 높음). 아키텍처는 64비트(x86)으로 지정한다. 인스턴스 상태에서 "인스턴스 종료"를 클릭하면 인스턴스가 삭제된다.
AWS에서는 “Security Group” 또는 “보안 그룹”이라는 이름으로 방화벽을 제공하기 때문에 Instance에 접속하기 위해서는 SSH가 필요하다. SSH(Secure Shell)은 다른 접속 방법보다 보안이 뛰어나 일반적으로 다른 컴퓨터에 연결할 때 사용한다. macOS에는 ssh가 기본 설치되어 있어 명령어로 바로 접근이 가능하다.
키 페어의 접근 권한을 바꿔준다.
//다운로드 폴더로 접근합니다.
cd Download
//sparta_keypair.pem 파일의 권한을 읽기만 가능하도록 수정합니다.
sudo chmod 400 sparta_keypair.pem
SSH로 접속한다.
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
//예시
ssh -i sparta_keypair.pem ubuntu@13.125.253.21
SSH에 접속한 상태에서 Node.js를 설치한다.
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
여기서, apt(Advanced Package Tool)는 리눅스 운영체제의 대표적인 패키지 관리 도구 중 하나이다. apt-get
명령어는 리눅스 운영체제에서 지원하는 패키지 매니저에서 원하는 패키지를 설치하는 명령이다.
설치 확인 명령어
# 설치된 Node.js 버전 확인하기
node -v
# 설치된 npm 버전 확인하기
npm -v
GitHub에 있는 Repository를 Clone한다.
프로젝트를 실행한다.
cd nodejs-todo-list
: 원격 저장소로부터 가져온 프로젝트로 이동합니다.sudo npm install -g yarn
: yarn을 사용하기 위해, 전역으로 yarn을 설치합니다.yarn
: 원격 저장소로 부터 가져온 프로젝트의 의존성 및 패키지를 설치합니다.node app.js
: 프로젝트를 실행합니다.EC2 Instance IP 복사한다.
브라우저에 주소를 입력한다.
http://<복사한IP>:3000
대여한 EC2 Instance의 방화벽에서 3000번 포트를 막고 있기 때문에 Node.js로 서버를 켜도 접속을 할 수 없다. 따라서 접근이 가능하도록 방화벽을 수정해야 한다.
ssh 접속이 끊기거나 실행중인 Node.js 프로그램을 끄면 웹 사이트에 접속할 수 없다. 따라서 PM2를 사용하여 터미널을 종료하더라도 웹 서버가 실행될 수 있게 만들어야 한다. pm2는 프로세스 매니정 도구로 Node.js를 편하게 관리할 수 있게 도와주는 라이브러리이다.
sudo -s
yarn global add pm2
app.js
를 실행한다. pm2 start app.js
pm2 delete 0
위 명령어를 실행한 뒤 pm2 list
를 입력했을 때 프로세스가 존재하지 않다면 성공적으로 종료된 것이다.