naver cloud 사용해보기_6
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을 다루고 하다보니... 당연한 부분에 대해서 놓치고 있었다..
내가 권한을 준/부여받은 범위 내에서만 작업이 가능한게 당연하다는걸 모든 권한을 가진 유저로 작업을 하다보니까 놓친것 같다.. 한번더 생각하고 해봐야겠다고 생각이 들었다
앞으로도 퍼블릭 클라우드를 사용하다보면, 권한과 관련된 부분들을 더 많이 맞닥들이게 될 것이기 때문에 관성처럼하던대로, 배워왔던 대로 하면 안된다고 생각이 들었음
작업을 위한 현재 상태에 대한 이해와 필요한 권한에는 어떤것들이 있는지 더 세세하게 생각하게되는 계기가 되지 않을까 싶다