rds 시간대 변경

  • rds는 기본적으로 utc를 사용한다
  • 한국 시간대로 바꿔보자

하는 법

새 파라미터 그룹 생성

  • rds 생성하면서 자동 생성되는 default.~ 그룹은 수정이 불가하다
  • 따라서 디폴트 파라미터 그룹을 사용한다면 새로이 파라미터 그룹을 생성한다

time zone 파라미터 수정

  • time_zone을 검색해서 시간대를 수정한다

rds 인스턴스 파라미터 그룹 수정


  • rds 인스턴스 수정에 들어가서,
  • 위에서 생성한 파라미터 그룹으로 적용시켜준다

rds 재시작

  • rds를 재시작해야 적용된다

적용 확인하기

1
SELECT curtime();

참고

rds 해킹당하기

  • 복구 방법에 대한 글이 아니다.
  • 그냥 털리면 어떻게 되는지, 왜 털렸을까하는 내용의 기록이다.

털린 증상

  • rds에 접속해보면 내 테이블들이 사라져있고,
  • PLEASE_READ_ME_XMG 라는 데이터베이스가 생겨있고
  • WARNING 테이블만 존재한다

  • WARNING테이블을 셀렉트해보면 아래와 같은 메시지가 적혀있다

To recover your lost databases and avoid leaking it: visit http://hn4wg4o6s5nc7763.onion and enter your unique token ee974966c47f1027 and pay the required amount of Bitcoin to get it back. Databases that we have: acl-manager. Your databases are downloaded and backed up on our servers. If we dont receive your payment in the next 9 Days, we will sell your database to the highest bidder or use them otherwise. To access this site you have use the tor browser https://www.torproject.org/projects/torbrowser.html

  • 이 웹사이트에 들어가서 토큰으로 로그인하고 비트코인을 지불하라는 내용이다
  • 일반 브라우저에서는 접속하지 못하고, tor browser에서만 접속가능하다
  • 나는 안들어가봤다. 왜냐면 중요한 데이터가 아니였기 때문이다

털린 이유

  • rds 퍼블릭 액세스 허용
  • 인바운드 규칙 모두 허용
  • rds 비밀번호 1234

조치

  • 중요한 정보가 없어서 그냥 rds를 삭제하고 다시 만들었다
  • 삭제할 때 스냅샷을 만들지 않도록 한다. 스냅샷 저장 비용이 발생할 수 있다
  • 새로 만든 RDS는 보안그룹 인바운드 규칙에서 내 IP만 접속가능하도록 해주었다
  • 비밀번호를 어렵게 설정했다

rds 삭제 방지 비활성화

  • rds를 켜놓은 상태에서 수정을 할 수 있다
  • rds 꺼놓은 상태에서 수정버튼을 누르면 무한 로딩이 기다리고있다..

RDS 삭제시 주의사항

  • ㅠㅠ

RDS 삭제 시 자동으로 스냅샷 생성

  • RDS를 삭제하면 자동으로 스냅샷? 백업같은 것을 생성한다

  • RDS를 사용중도아니고, 삭제하니까 비용이 생긴게 삭제하면서 생긴 스냅샷 보관 비용이였다

  • RDS를 삭제한다면 RDS 삭제 후 꼭 RDS > 스냅샷 에서 생성된 스냅샷도 같이 삭제…

DB 시작할 때 쓰는 명령어

terminal
1
mariadb
sql
1
2
3
4
5
6
7
8
9
10
-- 'webtest'라는 이름의 db 생성
create database webtest;

-- 'sung'이름의 비밀번호는 '1234'인 유저생성 및 권한 주기
create user sung@localhost identified by '1234';
-- grant select on webtest.* to sung@localhost identified by '1234';
GRANT ALL PRIVILEGES ON webtest.* TO sung@localhost IDENTIFIED BY '1234' WITH GRANT OPTION;

-- 수정사항 반영
flush privileges;

rds sqldump 하기

cmd
1
2
3
4
5
6
7
8
mysqldump -h database-1.aaaaaaaaaaaa.ap-northeast-2.rds.amazonaws.com ^
-u root ^
-p12341234 ^
--port=3306 ^
--single-transaction ^
--routines ^
--triggers ^
--databases TestDB > aaaa.sql
  • 윈도우 cmd에서 aws rds mysqldump를 해보았다

윈도우 따라하기

  • cmd를 관리자 권한으로 실행한다
cmd
1
cd C:\Program Files\MariaDB 10.5\bin
  • mysqldump.exe가 있는 경로까지 이동한다. (나는 로컬에 마리아 디비가 설치되어 있어서..)
cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mysqldump -h {rds 엔드포인트} ^
-u root ^
-p{rds 비밀번호} ^
--port=3306 ^
--single-transaction ^
--routines ^
--triggers ^
--databases {db명} > {백업파일위치}

mysqldump -h database-1.aaaaaaaaaaaa.ap-northeast-2.rds.amazonaws.com ^
-u root ^
-p12341234 ^
--port=3306 ^
--single-transaction ^
--routines ^
--triggers ^
--databases TestDB > aaaa.sql
  • 자신에 맞게 설정하고 명령을 붙여넣는다

RDS 비공개하는 방법

  • 내 RDS 지키기
  • 내가 지정한 IP에서만 접근가능하도록 설정하자

따라하기

  • 설정하고싶은 RDS 화면에 들어간다
  • 연결 & 보안 > 보안 > vpc 보안 그룹
  • 을 눌러서 현재 rds에 적용되어 있는 보안그룹 설정으로 들어간다
  • 인바운드 규칙 > 인바운드 규칙 편집으로 들어간다
  • 아마 이런식으로 위치무관으로 되어있을 수 있는데
  • 이 규칙으로 인해 모든 컴퓨터에서 접근가능하게 해준다
  • 이 규칙을 이제 내 컴퓨터에서만 접근가능하도록 고쳐보자
    1. MySQL/Aurora 를 선택해서 포트를 제한한다
    1. 소스 유형에 내 IP 를 선택한다
    1. 내 공인 IP 주소로 바뀌었는지 확인한다
  • 이렇게하면 내 IP에서 MySQL 접근 포트인 3306 포트로만 접근을 허용하는 세팅이 된 것이다
  • 규칙 저장을 눌러 적용시켜준다
  • 끝!