전체 글

전체 글

    JWT(Json Web Token) 웹 토큰 인증

    * JWT 설명: JWT (Json Web Token) 은 가장 많이 사용하는 인증 방식 입니다.웹과 앱에서 동일 한 인증 방식을 가져갈 수 있으며, 서버에서 별도의 정보를 가지고 있지 않기 때문에 서버가 확장할 때도 효율적입니다. 로그인 성공 시 액세스 토큰(JWT)은 웹 브라우저의 쿠키에 저장됩니다. 그 이후 프런트엔드에서 인증이 필요한 API를 사용할 때 액세스 토큰을 가져와서 헤더에 포함시켜서 백엔드에 전달합나다.백엔드 미들웨어는 토큰이 유효한지 검증한 후 유효하면 API를 실행 합니다. 유효하지 않은면 401로 인증실패 에러를 발생시킵니다. * 필요 한 모듈npm install jsonwebtoken dotenv cookie --savenpm i --save-dev @types/jsonwebto..

    [MSSQL] 백업 및 로그 파일 축소

    데이터베이스 풀 백업 BACKUP DATABASE db명 TO DISK='경로\파일명.bak' WITH COMPRESSION 현재 로그 파일을 얼마나 쓰고 있는지 확인 DBCC SQLPERF(LOGSPACE) 축소가 가능 한 상태인지 확인 (로그 백업이 된 상태이어야 함) - status가 0인 부분만 백업이 가능하다. DBCC LOGINFO 작업을 위해 파일 액세스 모드를 단일(SIMPLE)로 변경 ALTER DATABASE DB명 SET RECOVERY SIMPLE; 데이터베이스 백업 (필요시) BACKUP DATABASE DB명 TO DISK='백업할 경로\디비파일명.bak' WITH COMPRESSION 로그 백업 BACKUP LOG DB명 TO DISK='백업할 경로\로그파일명.trn' WITH..

    [Docker] GlusterFS volume-plugin 구성 (feat.CentOS7)

    * 개요 : 여러대의 서버에 대해 스토리지 클러스터링을 쓸 수 있는 오픈소스 플러그인 이다. 별도 공유스토리지(NAS 등)가 없는 경우 사용하는 방식이다. : 이러한 볼륨 플러그인은 매우 많은 종류가 있다. 대표적으로 Ceph를 많이 쓰는 듯 함. * 환경 구성 : CentOS 7 Server 2대, 추가 disk partition(sdb), * 스토리지 구성 : 1번 서버 브릭 생성 # 스토리지 현황 확인 lsblk fdisk -l # 스토리지 볼륨 추가 mkfs -t xfs /dev/sdb mkdir -p /gluster/bricks/1/brick mount /dev/sdb /gluster/bricks/1/brick # mount 체크 df -h # brick 생성 및 마운트 영구 적용 vi /etc..

    [MariaDB] Slow query 수집

    * 개요 : MariaDB에서 실행 되는 쿼리에 대해 특정 임계시간 이상 실행 된 쿼리에 대해 수집을 할 수 있다. 이는 튜닝 대상 쿼리를 탐지 하기 위함이다. : 수집은 테이블에 적재하는 방식과 파일로 떨어뜨리는 방식이 있으나, 테이블에 적재하는 경우 쿼리문이 길어지면 로그 테이블을 조회하는 시간(네트워킹시간)이 너무너무너무너무 오래 걸리므로, 파일로 관리하는것이 훨씬 낫다!! * 글로벌 config 확인 : 현재 설정된 상태 확인 show variables where Variable_name in ('slow_query_log','long_query_time','log_output','slow_query_log_file'); * 설정 변경 : 쿼리를 통한 글로벌 변수 설정 시 재기동시 반영이 안되므로..

    [MariaDB] MariaDB sqldump로 배치(Cron) 만들기

    * MariaDB의 백업 방식 : 크게 두가지가 있다. mysqldump, XtraBackup 예제는 mysqldump 방식으로 한다. * 데이터가 저장된 경로 확인 show variables where Variable_name='datadir'; * 백업 스크립트 작성 : 레플리케이션 구성일 경우 향후 복원을 위해 포지션 정보도 찍어준다. ( --master-data=2 ) > vi mariadb_backup_job.sh #!/bin/sh target='파일명_'$(date +%Y%m%d%H%M%S) /usr/bin/mysqldump -u백업실행할계정 -p패스워드 --master-data=2 백업할디비 > './'$target'.sql' # 백업한 파일 압축 tar cvzf './'$target'.ta..

    [MariaDB] Proxy SQL 셋팅 (on Docker)

    * 개요 마리아 DB 사용시 Active-Active 구조로 사용하기 위해 DB 앞단에서 분기 해줄수 있는 시스템이 필요 하다. 오픈소스로는 지금 설명하는 ProxySQL이 있고, MaxScale이 대중적으로 사용되고 있다. * Architecture * 방화벽 오픈 # 현재 방화벽 상태 확인 firewall-cmd --state # 현재 방화벽 정책 확인 firewall-cmd --list-all # 서비스 기동 or 정지 systemctl start firewalld.service systemctl stop firewalld.service # 자동 기동 상태 확인 및 자동 기동 셋팅 systemctl is-enabled firewalld.service systemctl enable firewalld...

    [MariaDB] Replication 구성 (on Docker)

    * Architecture * 사전 셋업 : 호스트 명 및 호스트 파일 설정 # 호스트명 설정 hostnamectl set-hostname maria-node1 hostnamectl set-hostname maria-node2 # 예시 cat > /etc/hosts 172.30.1.80 maria-node1 172.30.1.81 maria-node2 EOF : 방화벽 포트 오픈 # 현재 방화벽 상태 확인 firewall-cmd --state # 서비스 기동 or 정지 systemctl start firewalld.service systemctl stop firewalld.service # 자동 기동 상태 확인 및 자동 기동 셋팅 systemctl is-enabled firewalld.service sys..

    [보안] CentOS7의 OS 보안조치

    * SSH 포트 변경 # ssh config 수정 vi /etc/ssh/sshd.config PORT 22 > vi /etc/pam.d/su # 아래 주석 제거 auth required pam_wheel.so use_uid # 원하는(특정) 사용자 권한 부여 >> usermod -aG wheel 사용자명 * sudo (run a command) 권한 부여 (default로 적용 되어 있음) # sudoers 파일에 쓰기 권한 추가 >> chmod +w /etc/sudoers >> vi /etc/sudoers # 디폴트로 아래와 같이 설정되어 있음 %wheel ALL=(ALL) ALL # sudoers 파일에 쓰기 권한 제거 >> chmod -w /etc/sudoers # 대상 그룹 추가 usermod -..