gbmin's Tech Notes

서버 구축 및 유지보수, 클라우드 컴퓨팅, 네트워크 보안, IT 분야 기술 노트. :)

전체 글 80

Let's Encrypt 무료 인증서 발급 - certbot 자동화 관리

certbot을 이용한 Let's Encrypt 무료 인증서를 발급하는 과정을 정리하였다. 본 문서는 centos7, apache 환경 기준으로 작성하였고 모든 리눅스 계열 OS에서 공통적으로 적용 가능하며 설치 과정만 변경하여 처리하면 된다. [목차] 1. 준비과정 2. Let's Encrypt 인증서 발급 3. 발급된 인증서 확인 4. 인증서 갱신 (certbot renew) 1. 준비과정 certbot 설치 yum install certbot certbot 아파치 플러그인 설치 yum install epel-release yum install certbot python2-certbot-apache apache 재시작 systemctl restart httpd systemctl status httpd..

Tech Notes/SSL 2023.07.26

[Linux command] iotop - Linux 디스크 I/O 모니터링

iotop은 Linux 커널의 I/O 스케줄러에 내장된 기능을 활용하여, 시스템에서 실행 중인 프로세스의 I/O 사용량을 실시간으로 모니터링할 수 있는 유용한 도구이다. 시스템의 성능을 저하시키는 I/O 병목 현상을 체크하는데 매우 뛰어난 성능을 보인다. [목차] 1. iotop 설치 2. iotop 기본 사용법 3. iotop 주요 옵션 4. iotop 사용 예시 5. iotop 활용사례 1. iotop 설치 데비안 계열 apt-get install iotop 레드헷 계열 yum install iotop 2. iotop 기본 사용법 iotop [옵션] 3. iotop 주요 옵션 옵션 설명 -o, --only 실제 I/O 작업을 수행하고 있는 프로세스나 스레드만을 출력 -b, --batch 대화형 모드가..

MySQL vs MariaDB의 차이점, 성능, 보안, 라이선스 비교분석

MySQL과 MariaDB는 모두 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. 데이터를 테이블 형태로 저장하고, 이 테이블들 간의 관계를 통해 데이터를 조직화하고 관리한다. 그러나 이 두 시스템은 비슷한 기능화 호환성을 가지고 있지만, 구현 방식과 기능, 성능, 보안 등 여러 측면에서 차이점이 있다. 이러한 차이점들은 개발자나 기업이 데이터베이스 시스템을 선택할 때 중요한 고려 사항이 될 수 있다. 비슷하지만 다른 MySQL과 MariaDB의 성능, 보안, 라이선스등의 차이점을 정리하였다. [목차] 1. MySQL의 특징 2. MariaDB의 특징 3. MySQL과 MariaDB의 성능 비교 4. MySQL과 MariaDB의 호환성 5. MySQL과 MariaDB의 보안 6. MySQL..

정규표현식(Regular Expression) 정의와 개념

정규표현식은 문자열 처리 도구로서, 실무에서 다양하게 활용된다. 정규표현식의 개념과 특징 적인 부분을 정리하고 사용 시 주의할 점, 효과적으로 활용할 수 있는 예제들을 정리하였다. [목차] 1. 정규표현식(Regular Expression)이란? 정의 역사 2. 정규표현식의 특징 패턴 매칭 기능 언어 간 호환성 3. 정규표현식의 구성 요소 메타문자 (Metacharacters) 리터럴 (Literals) 플래그 (Flags) 4. 정규표현식의 활용 방법 검색과 치환 작업 데이터 유효성 검사 5. 정규표현식의 주의점 백트래킹과 성능 문제 복잡성과 가독성 6. 참고사이트 1. 정규표현식(Regular Expression)이란? 정의 정규 표현식(Regular Expression)은 문자열의 패턴을 찾아내고,..

MySQL 성능 향상을 위한 tmpfs 활용법

MySQL 데이터베이스를 사용하면서 공통적으로 대량의 데이터를 처리할 때 발생하는 입출력 속도에 문제가 발생된다. JOIN이나 GROUP BY 같은 복잡한 쿼리를 실행할 때 생성되는 임시 파일을 RAM이나 디스크에 운영하는 임시 파일 시스템 MySQL tmpfs를 이용해 성능 최적화를 해볼 수 있다. [목차] 1. MySQL tmpfs의 이해 2. mysql tmpfs 설정 방법 메모리에 임시파일 쓰는 방법 디스크에 임시파일 쓰는 방법 3. tmpfs 적용 후 프로파일링 성능 측정 방법 4. tmpfs 설정 시 주의할 점 1. MySQL tmpfs의 이해 tmpfs는 주기억장치인 메모리 (RAM)에서 동작하는 임시 파일 시스템이다. 메모리는 데이터를 저장하고 읽어오는 속도가 디스크에 비해 월등히 빠르기 ..

python으로 만든 DNS 쿼리 스크립트

ChatGTP 코드 인터프리터 기능의 도움을 받아 python으로 작성한 DNS 쿼리 스크립트이다. dig를 이용해 DNS 조회하고, 여러 네트워크망에 DNS 쿼리를 한 번에 하여 현재 내 도메인의 DNS 설정값이 안정적인지 파악해 볼 수 있게 하였다. [목차] 1. DNS 쿼리 스크립트 사용 방법 쿼리 결과 확인 방법 스크립트 소스 2. 리버스 DNS 체크 스크립트 사용 방법 쿼리 결과 확인 방법 스크립트 소스 1. DNS 쿼리 스크립트 사용 방법 dg [조회할 도메인명] 쿼리 결과 확인 방법 Set NameServers 섹션 : 조회한 도메인이 설정된 NS 정보조회를 하여 DNS가 어디인지 조회한다. Query Domain Name Servers 섹션 : 조회된 도메인의 NS에 A 레코드와 MX 레코..

dig 명령어, DNS 쿼리 및 결과 분석 방법

dig는 Domain Information Groper의 약자로 DNS 서버에 질의를 보내는 데 사용되는 유용한 도구다. 웹호스팅과 시스템 관리를 하다 보면 도메인 DNS를 조회해야 할 일이 종종 생기는데, DNS의 문제를 파악하거나 도메인의 레코드등을 조회하는데 많이 사용된다. 윈도에서 쓸 수 있는 nslookup이라는 명령어도 있지만 주로 리눅스 OS에 기본 설치되어 있는 dig를 많이 사용하고 있다. 개인적인 생각으로 nslookup 보다 쿼리 결과가 직관적이며 보고 싶은 정보만 추려서 볼 수 있어 DNS 조회하는 도구 중 가장 활용도가 높은 명령어이다. [목차] 1. dig 명령어 기본 사용법 2. 쿼리결과 섹션별 분석 3. dig 명령어 주요 옵션과 활용예제 1. dig 명령어 기본 사용법 di..

Mysql & MariaDB 캐릭터 셋(Character Set) 개념과 변경 방법

MySQL과 MariaDB는 가장 많이 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나다. 웹 기반 애플리케이션, 데이터 웨어하우싱, E-Commerce 및 로그 분석 등에 널리 사용되며, 그 유연성과 안정성으로 인해 선호받고 있다. 하지만 이와 같은 프로그램과 연동하면서 잘못된 캐릭터 셋 설정으로 인해 저장되는 문자열이 깨지거나 데이터를 불러올 때 캐릭터 셋이 맞지 않아 글자가 깨지는 경우가 종종 발생된다. 이런 문제의 해결을 위해 MySQL과 MariaDB에서 캐릭터 셋 의 개념과 변경 방법에 대해서 정리하였다. [목차] 1. 캐릭터 셋(Character Set) 은 무엇인가? 2. 서버 내 지원하는 캐릭터 셋을 확인하는 방법 3. MYSQL & MariaDB 서버 내 설정하..

nslookup 을 이용한 DNS 쿼리 사용법

웹이나 메일과 같은 인터넷 서비스를 사용할 때는 도메인에 의존한다. 도메인은 DNS를 통해 아이피가 부여되고 접속자는 DNS에 설정된 아이피를 확인하여 목적지 서버의 경로를 찾아 서비스를 이용한다. 도메인에 어떤 아이피와 레코드가 설정되어 있는지 알아내는 방법은 DNS 질의 도구를 이용할 수 있는데 윈도에서 기본 사용이 가능한 nslookup이라는 커맨드가 있다. nslookup은 기본 사용 방법 만으로도 충분히 그 역할을 다할 수 있지만 일반적으로 잘 사용되지 않는 많은 기능들도 있다. 이 글을 통하여 nslookup 사용 방법과 DNS에 설정된 레코드를 질의하는 방법을 정리하였다. [목차] 1. nslookup 이란? 2. nslookup 기본 사용법 3. nslookup 주요 옵션 4. nslook..

[Linux command] ps 명령어 프로세스 모니터링

리눅스 시스템에서 프로세스란, 프로그램의 시행단위를 말한다. 각각의 프로세스는 자체적인 메모리 공간을 가지며, 이를 통해 자신의 코드를 실행하고 데이터를 저장한다. 각 프로세스는 고유의 프로세스 ID (PID)를 갖게 되며, 이는 시스템 내에서 프로세스를 구분하고 관리하는 데 사용된다. 시스템 엔지니어로서 프로세스 관리는 시스템의 안정성과 효율성을 유지하기 위해 꼭 필요한 작업이다. 각 프로세스가 시스템 자원을 어떻게 사용하고 있는지 알아야 적절하게 할당하고, 필요 없는 프로세스를 종료함으로써 시스템의 성능을 최적화할 수 있다. 리눅스 시스템에서 프로세스를 모니터링하는 명령어 중 가장 널리 사용하는 ps라는 명령어다. ps 명령어는 현재 시스템에서 실행 중인 프로세스의 상태를 보여주는 데 사용되는 도구로..