https://guide-gov.ncloud-docs.com/docs/database-database-1-1
ncloud에서 서버를 배포하는 과정을 한번 정리해보고자 한다 네이버 사용자 가이드를 참고해서 작성해보겠다
서버에서 MySQL도 작동시켜볼 생각이다.
먼저 ncloud에 로그인을 한 후에, 우측 상단의 콘솔을 눌러준다.
servics - all - server를 클릭해준다.
서버생성을 클릭해준다.
그 후 서버 설정을 해주어야 한다.
MySQL을 사용할것이기 때문에 DBMS 타입으로 MySQL을 추가하여 설정해준다. 서버 타입은 개발 목적에 맞게 설정하면 될 것 같다.
Ubunto OS를 선택한 후에, MySQL을 설치해도 되지만, 따로 보안설정도 풀어줘야하고 무엇보다 설치시간이 오래걸리기 때문에 서버에 MySQL이 설치된 해당방식을 채택했다.
확인을 누르면 아래와 같은 설정 칸이 나온다. 차근차근 하나씩 해보자.
다행히 네이버 플랫폼에 자료가 꽤나 자세히 나와있었다.
https://guide.ncloud-docs.com/docs/vpc-subnetmanage-vpc
말 그대로 VPC이름을 설정하고 IP주소를 정해주면 된다.
10.0.0.0/8 , 172.16.0.0 , 192.168.0.0/16 중에서 고르면 된다.
subnet또한 생성해주면 된다. 가용 zone을 KR-2로 맞춰주고 InternetGateway를 Y로 해주어야 Public으로 사용할 수 있다.
그 다음은 인증키와 네트워크 설정을 하면된다. 직관적으로 잘 나와있어서 시키는대로 하면 된다.
그 이후서버생성을 하면
조금 기다리면 서버가 생성되었다!
이제 터미널을 열거나 putty를 킨 후에
22번포트로 접속을 한다.
ssh 공인ip주소
나는 putty를 사용했다.
다음과 같이 IP주소를 입력해주고 접속하면
ID와 비밀번호를 입력하라고 하는데,
서버 설정칸의 [ 관리자 비밀번호 확인 ] 부분에서 인증키를 넣어주고 확인할 수 있다.
이제 서버컴퓨터에 접속을 하기...전에
ACG 규칙설정으로 들어가서 3389 포트를 열어준다.
Server로 돌아가서 ACG규칙을 보면 추가되어있음을 볼 수 있다.
이제 원격으로 돌아가서 MySQL을 동작시켜본다.
이후 가이드에 나온대로 비밀번호를 설정해 주고, MySQL에서 외부접속을 허용해줘야하는데 자꾸 또 오류가 난다....
왜인지는 모르겠지만 root권한을 가지고 있음에도 권한이 자꾸 없다고 나왔고 구글링을 통해 해결할 수 있었다.
mysql> create user 'root'@'%' IDENTIFIED BY 'root';
mysql> grant all privileges ON *.* TO 'root'@'%' with grant option;
root 이름의 권한을 새로 주고 외부접속을 허용해주었다!!
https://dev.mysql.com/doc/refman/8.0/en/grant.html
GRANT 문법자체는 MySQL 공식문서에서 참고해가며 공부했다.
하지만 root로 외부에 권한을 주는건 굉장히 위험하기에 프로젝트가 끝난다면,
mysql> revoke all on *.* from root@'%';
mysql> flush privileges;
바로 삭제해주는것이 좋다고 한다.
이렇게 외부권한을 준 후에, 내 컴퓨터의 sql을 통해
원격으로 서버의 sql에 접속할 수 있었다!
이를 자바스크립트 코드에서 적용시키면 코드에서 서버의 DB에 접속할 수 있다.
const mysql = require("mysql2/promise");
require("dotenv").config();
async function test() {
const connection = await mysql.createConnection({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_DATABASE,
});
const [rows, fields] = await connection.execute("SELECT * FROM Persons", ["Morty", 14]);
console.log(rows);
}
test();
'BackEnd > Server' 카테고리의 다른 글
서버 도메인 달아주기 (0) | 2023.01.27 |
---|---|
[라즈베리]gitHub Action 자동배포하기 (CI/CD) (0) | 2023.01.27 |