이제 putty를 통해 클라우드의 접속까지 정상적으로 마쳤으니 ssh를 사용하여 클라우드에 프로젝트를 가져오고 실행도 함께 해보도록 하겠다.
우선 프로젝트를 가져오고 실행하기 이전에 프로젝트가 작동할 수 있도록 환경을 만들어주기위해 터미널에 명령어를 작성해야한다.
1. 최신화 및 node 와 npm 설치
- sudo apt update
- sudo apt install nodejs
- sudo apt install npm
2. Git 설치 및 클론
- sudo apt install git
- git config --global user.name 내 아이디
- git config --global user.email 이메일
- 원하는 디렉토리에 git clone https://repo.url Git Clone
3. 클론한 프로젝트를 빌드
- npm cache clean --force
- sudo npm i -g npm
오류 발생시
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh - nvm install --lts
위와 같은 과정을 거치면 정상적으로 클라드내에 프로젝트가 정상적으로 업로드 될텐데 프로젝트에 필요한 라이브러리를 설치하고 업데이트를 시켜주면 환경조성이 완료된다. 평소와 같이 node 실행파일명을 입력하면 실행이 될테지만 필자와 같이 mysql을 사용하고 있는 프로젝트는 클라우드는 외부 접속을 방화벽으로 막고 있기 때문에 오류가 발생한다.
mysql과 클라우드 간의 연동을 위해 다음과 같은 추가과정을 더 거쳐야 한다.
1. mysql 설치
- sudo apt install mysql-server
- mysql을 설치 하고 난 뒤에 실행하면 실행에 실패할텐데 비밀번호를 입력하지 않았기 때문이다.
때문에 mysql sequre를 통해 비밀번호를 초기화 시키고 새로 지정해줄 필요가 있다.
2. mysql sequre 초기화 시키기
- sudo mysql_secure_installation

- mysql_seucre_installation을 사용하면 mysql를 초기화 시키니 New password에서 새로운 비밀번호를 지정할 수 있다.
첫번째 문항은 강력한 보안을 사용할지 묻는 것이니 취향에 따라 n이나 y를 눌러주면 되고 나머지는 전부 y를 눌러주면 된다.
3. root으로 mysql 접속
- sudo mysql -u root -p
4. 사용자 계정 생성
- 클라우드는 보안상의 문제로 root계정을 사용하지 못하게 하고 있기 때문에 사용자 계정을 새로 만들고 권한 부여가 필요하다.
- create user '유저이름'@'%' identified by '사용하고자 하는 비밀번호';
( ex)create user 'username'@'%'identifiedby'Password!@';) - grant all on 데이터베이스이름.* to '유저이름'@'%' with grant option;
( ex) grant all on testdb.* to 'username'@'%' with grant option;)
5. 보안그룹 인바이드 규칙 추가
- 이제 위와 같이 설정하고 mysql 계정을 만들었으니 이제 작동할줄 알고 mysqlworkbench와 같은 프로그램을 통해 mysql를 시도해보면 접속 실패 오류가 발생한다. 이것은 아직 클라우드의 방화벽에 예외처리를 해주지 않아서 발생한 문제이다.
클라우드에서 외부 접속을 허용하기 위해서는 보안그룹의 인바이드 규칙 추가가 필요하며 다음과 같은 과정을 거치면 된다.
우선 인스턴스의 보안탭으로 가서 보안그룹의 이름을 확인하다.

보안 그룹에 들어간 뒤 이전에 기억해둔 보안그룹명을 찾아 들어간다.

아래와 같이 인바운도 규칙 편집에 들어가 MYSQL 유형을 선택하고 추가해 주면 특정 포트를 열어 이제 더 이상 MYSQL의 통신을 방해하지 않게 될 것이다.


6. mysql.cnf 찾기
- 위와 같이 복잡한 과정을 거쳤음에도 불구하고 또 다시 mysql을 실행하려 하면 실행 오류가 발생할 것이다. 이것은 클라우드 이외에도 클라우드 내부에 설치된 mysql에도 설정이 필요하기 때문이다.
mysql 설정을 위하여 사용자 파일을 건들일 필요가 있으니 우선 root 계정으로 전환해야 한다.

후에 /etc/mysql/mysql.conf.d 경로로가면 mysqld.cnf 파일이 있는걸 볼 수 있다.

vi를 통해 mysqld.cnf파일을 열어 bind-address와 mysqlx-bind-adress를 주석처리 하면 마침내 모든 작업이 끝난다.

이제 인스턴스에 있는 퍼블릭 주소와 포트번호로 접속하면 정상적으로 배포되었음을 볼 수 있다.

'클라우드' 카테고리의 다른 글
| Docker 배포해보기 #下 node.js 프로젝트 배포해보기 (1) | 2024.03.12 |
|---|---|
| Docker 배포해보기 #上 Docker란 무엇인가? (0) | 2024.03.11 |
| Node 백그라운드 실행 및 종료 (0) | 2024.03.08 |
| Node.js Ec2 배포해보기#中 ssh를 통한 클라우드 접속 (0) | 2024.02.20 |
| Node.js Ec2 배포해보기#上 인스턴스 생성 (0) | 2024.02.20 |