aws의 light sail 로 들어가서 create instance 클릭
인스턴스 위치 선택 화면에서 원하는 지역을 고릅니다. 기본적으로 서울이 선택되어 있는데,
여러분의 위치와 가까울수록 속도에 이점이 있습니다.
블루프린트는 노드를 선택하면 됩니다.
인스턴스 화면에 나오는 퍼블릭 IP에 브라우저로 접근하면 Congratulations! 화면이 뜹니다.
기본적으로 비트나미(Bitnami) 서버가 실행되고 있는데, 이 서버를 종료하고 우리의 NodeBird 서버를 띄울 예정입니다.
인스턴스 화면에서 Connect using SSH(SSH를 사용하여 연결) 버튼을 누릅니다.
브라우저 새 창에서 Lightsail용 콘솔이 실행됩니다.
이제 이 SSH를 사용해 명령어를 입력합니다.
이 SSH는 Lightsail 인스턴스와 연결되어 있습니다. 노드는 이미 설치되어 있으므로 MySQL을 설치하면 됩니다.
단, Lightsail의 특성상 7.2.3절 방식으로는 설치할 수 없고 다음 과정을 따라야 합니다.
실무에서는 보통 MySQL 서버를 따로 마련해두지만, 예제에서는 편의를 위해 웹 서버와 같이 사용합니다.
실무에서는 AWS RDS를 사용합니다.
sudo apt-get update
sudo apt-get install -y gnupg
sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.23-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.23-1_all.deb
설치 후 화면이 전환되며 무엇을 설치할지 물어보는데, MySQL Server & Cluster (Currently selected: mysql-8.0)으로
표시되어 있다면 키보드 화살표를 통해 Ok를 눌러(Enter) 넘어갑니다.
sudo apt update
sudo apt-get install -y mysql-server
mysql-server를 설치하는 중에 비밀번호 설정 화면이 나타나며, 여기서 비밀번호를 입력합니다.
NodeBird 실습 시 사용한 MySQL 비밀번호를 입력하는 것이 좋습니다.
그 후 Use Legacy Authentication Method를 선택합니다.
마지막으로, MySQL에 접속해 정상적으로 설치되었는지 확인합니다. 노드에서 MySQL 비밀번호가 틀렸다는 내용의 에러가 발생하는 것을 방지하기 위해 한 번 더 비밀번호를 설정합니다.
마지막으로, MySQL에 접속해 정상적으로 설치되었는지 확인합니다. 노드에서 MySQL 비밀번호가 틀렸다는 내용의 에러가 발생하는 것을 방지하기 위해 한 번 더 비밀번호를 설정합니다.
sudo mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';
MySQL 설치가 완료된 후, git clone 명령어를 사용해 깃허브에 올렸던 소스 코드를 내려받습니다.
제 node_express_SNS 폴더가 생성되었을 것입니다.
서버를 실행하기 전에 할 일이 하나 있습니다.
Lightsail에서는 기본적으로 비트나미 아파치(Bitnami apache) 서버가 켜져 있습니다.
노드 서버와 같이 쓸 수는 없으므로 아파치 서버를 종료하는 명령어를 입력합니다.
cd /opt/bitnami
sudo ./ctlscript.sh stop apache
다시 node_exrpesss_SNS 폴더로 이동해 npm 패키지를 설치하고 서버를 실행합니다.
중간에 시퀄라이즈로 MySQL 데이터베이스도 생성했습니다.
.env 파일은 .gitignore에 작성을 해서 현재 lightsail 서버에는 없는 상태이다.
vi 편집기로 직접 생성해주자.
cd ~/node_express_SNS
npm install
npm ci
npx sequelize db:create --env production
sudo npm i -g pm2
sudo NODE_ENV=production PORT=80 pm2 start server.js -i 0
혹시나 서버가 실행되지 않는다면(status가 online이 아니라면) sudo pm2 logs --err 명령어를 입력해
어떤 에러가 발생했는지 확인할 수 있습니다. 에러를 해결한 후 sudo pm2 reload all로 서버를 재시작하면 됩니다.
'clone toy projects > node_express_sns' 카테고리의 다른 글
AWS 람다 사용하기 (1) | 2023.08.31 |
---|---|
AWS S3 사용하기 (0) | 2023.08.31 |
서비스 운영을 위한 패키지[redis, nvm] (0) | 2023.08.31 |
서비스 운영을 위한 패키지[pm2, winston, helmet, hpp] (0) | 2023.08.31 |
서비스 운영을 위한 패키지[morgan,express-session,시퀄라이즈,cross-env, sanitize-html, csurf] (0) | 2023.08.31 |