프로젝트/naver cloud 사용해보기

naver cloud 사용해보기_6

dudung__ 2023. 9. 5. 13:16

12.클라우드 인사이트로 mysql 알림받기

=> DB를 생성하고, 이것에 대한 알림을 받게 설정할 것임

 

=> cloud insight => 서비스 이용하기 

=> cloud insight => configuration => event rules => 이벤트 룰 생성하기 

=> 타겟 그룹 지정

 

=> 감시 템플릿 생성

===> 어떤 부분에 대해서 모니터링을 할지 설정해놓을 수 있음 

=> 40가지의 항목이 있었음

=> 설정해놓고 만들어놓은 DB에 접속하고 여러가지 작업들을 해볼 것 임 

 

 

=> 여러 작업을 한후에 mail 함을 확인했더니 여러 알림이 와있는것을 볼 수 있었음

 

 

=> 대시보드에서도 확인할 수 있었음

 

** 

(나는 DB서버 자체적으로 public 도메인을 가지고 있기에.. DB서버에 자체적으로 접근이 가능할거라고 생각했음)

=> 아 물론 접근 자체는 가능했음 지정해준 권한을 제대로 사용하지 못할뿐 

=> 두 계정다 DDL 권한을 부여했고.. ACG도 잘 열어놓음(이게 막히지 않았으니까 DB자체에는 접근이 가능했던것)

 

근데 문제는 ACG에서 ip도 열어놓고, 포트을 열어봐서 DBeaver로 DB 자체에는 접근이 가능했지만,

test user에게 줬던 DDL(create alter drop truncate)권한이 먹지 않았다..  그래서 새로운 계정을 하나 더 만들어서 그 계정에도 DDL을 주고 다시 접속을 해서 create문을 사용하려 해봐도.. 전혀 가능하지 않았다

 

++++++++++++++++

혹시 몰라서 관련 내용에 대해서 문의를 넣어보았는데, DB에 들어갔을때 사용되는 그 유저에게 부여된 권한에 대해서 확인해보라는 답변을 받았다 => show grants;

보다보니까..... 아!! 하면서 머리에 스파크가 터졌다....

내가 ncp 콘솔에서 생성한 database 이름 => using

database using의 설정에서 = > test user에게 DDL 권한을 줬음

=> 즉 using이라는  database 안에서 DDL 권한을 가지고 있음...

 

DB서버를 만들고 => database를 생성 => 그 database 내에서 유저에게 권한을 부여 => 권한을 부여한 database 내에서만 권한이 유효함

create table test(id varchar(20), pw varchar(20), content varchar(40));

=> 간단하게 테이블을 만들고

show tables;

=> 확인

잘 생성이 되어있고

 

desc test;

=> 구성한대로 잘 되어있는 것을 볼 수 있었음

 

INSERT into test values('1', '1234', 'is it true');

select * from test;

=> 간단하게 값을 추가 하고 확인

=> 확인됨

 

ALTER table test add email varchar(40);

desc test;

=> 컬럼도 하나 추가해보고

=> 확인했음

update test set pw='5678' where id=1;

select * from test;


===> 대다수의 작업이 잘 이루어지는것을 확인할 수 있었음

 

 

 

 

13.mysql 백업으로 복구하기

mysql에 들어가보면 자동으로 백업된 백업파일이 있는것을 볼 수 있음

 

 

1.시점복원

시점 복원을 누르면 내가 적용하고 싶은 시점을 선택하고 => 이름을 누르면 복원이 완료됨

 

 

=> DB 서버 목록으로 들어가보면 DB role이 recovery인 DB 서버가 하나 생성중인것을 볼 수 있음

 

 

 

2.파일복원

 

=> 파일을 선택해서 백업 파일을 가지고 DB 서버를 복원할 수 있음

 

 

++ 또한 생성되어있는 backup 파일을 object storage로 보낼수도 있음( 장기 보관을 위해서는 이 방법이 제일 적합할듯함)

 

++ recovery / slave 서버가 있을 경우에 master 서버를 제거할 수 없음

 

 

-느낀점-


리눅스 공부를 할때 root 계정으로 mysql을 사용하면서, 원하는대로 database와  table을 다루고 하다보니... 당연한 부분에 대해서 놓치고 있었다..

내가 권한을 준/부여받은 범위 내에서만 작업이 가능한게 당연하다는걸 모든 권한을 가진 유저로 작업을 하다보니까 놓친것 같다.. 한번더 생각하고 해봐야겠다고 생각이 들었다

 

앞으로도 퍼블릭 클라우드를 사용하다보면, 권한과 관련된 부분들을 더 많이 맞닥들이게 될 것이기 때문에 관성처럼하던대로, 배워왔던 대로 하면 안된다고 생각이 들었음

작업을 위한 현재 상태에 대한 이해와 필요한 권한에는 어떤것들이 있는지 더 세세하게 생각하게되는 계기가 되지 않을까 싶다