콘텐츠로 이동

Database Short Runbook

이 문서를 볼 때

  • MySQL 또는 Redis를 운영 서버에 설치/구성할 때
  • DB/캐시 서버의 네트워크, 방화벽, SELinux, 백업 기준을 확인할 때
  • 애플리케이션 계정과 root/admin 계정의 책임을 분리할 때

먼저 필요한 입력값

  • DB 종류: MySQL, Redis, 둘 다
  • 서버 역할: 단일 앱 서버 내부용, 별도 DB 서버, 내부망 공용
  • bind address
  • 허용할 애플리케이션 서버 IP/CIDR
  • 데이터 디렉터리와 백업 경로
  • 인증 방식과 credential 저장 위치
  • 고가용성 필요 여부

MySQL 작업 순서

  1. OS 업데이트와 패키지 설치
  2. mysqld systemd 기동/enable
  3. mysql_secure_installation
  4. root 관리 계정과 앱 계정 분리
  5. 방화벽 허용 범위 설정
  6. bind address 확인
  7. 설정/성능 튜닝
  8. 포트/데이터 경로 변경 시 SELinux 확인
  9. 완료 기준 검증

Redis 작업 순서

  1. 설치 방식 선택: AppStream, Remi, 공식 RPM
  2. 서비스 enable/start
  3. bind/protected-mode/firewall 설정
  4. 인증 방식 선택: requirepass 또는 ACL
  5. TLS 필요 여부 판단
  6. persistence, backup, restore 기준 적용
  7. 성능 설정과 Linux kernel/systemd 설정 확인
  8. 운영 CLI, 모니터링, HA 검토
  9. 업그레이드/rollback 기준 확인

중단 조건

  • DB가 외부에 공개되는 구조
  • 앱 계정이 root 또는 광범위 권한을 요구
  • bind address와 firewall 허용 범위가 불일치
  • 데이터 디렉터리 변경 전 SELinux context 계획이 없음
  • Redis password를 command line argument로 넘기려 함
  • 백업/복구 기준 없이 운영 DB를 구성하려 함

검증 명령

systemctl status mysqld
mysql -u root -p
ss -lntup | grep -E ':(3306|6379)\b'
firewall-cmd --list-all
getenforce
semanage port -l | grep -E 'mysqld_port_t|redis_port_t'
systemctl status redis
redis-cli ping

상세 문서

MySQL:

Redis: