본문 바로가기

전체 글65

[Apache] 아파치 실행, 상태 확인, 에러, 디버깅 Ubuntu 서버 기준, Apache2 실행과 관련 내용을 짧게 정리한다. 실행 관련 명령어 아파치 실행은 service, systemctl, apachectl, init.d 등 여러 방법이 있지만, 이번 포스트는 systemctl 기준으로 작성했다. # 시작 (Start) sudo systemctl start apache2.service # 종료 (Stop) sudo systemctl stop apache2.service # 재시작 (Stop -> Start) sudo systemctl restart apache2.service 설정 적용 명령어 아파치 관련 설정은 /etc/apache2 혹은 /etc/apache2/sites-available 경로의 설정 파일(.conf)에서 수정할 수 있다. 보.. 2022. 6. 26.
[Java & Tomcat] Port already in use 에러 IntelliJ 같은 코드 에디터에서 내장 Tomcat으로 애플리케이션을 실행시킬 때 포트가 중복될 때 발생하는 에러다. 애플리케이션을 실행시킬 때, 동일한 포트로 실행 중인 프로세스가 있을 때 발생한다. 일반적으로 Tomcat은 8080, 8005, 1099 포트를 디폴트로 사용하기 때문에 VM 실행 옵션에서 따로 지정해주지 않으면 해당 에러를 접할 수 있다. 문제는 분명 기존에 실행중이던 앱을 종료하고, 심지어 코드 에디터를 닫았음에도 여전히 프로세스가 실행 중인 경우다. 사용 중인 PC를 재부팅해서 해결하는 방법도 있지만, 제일 좋은 방법은 충돌이 발생한 포트를 터미널에서 직접 종료(kill)해버리는 것이다. 아래에 에러 로그와 포트 종료(kill) 명령어를 적어두었으니 참고하자. (참고로, 종료 .. 2022. 6. 26.
[AWS] 로드벨런서(Load Balancer) - ALB, NLB 이전 [ 로드벨런서의 리스너 설정 ] 포스트(https://log4day.tistory.com/33?category=1038764)에서 ALB와 NLB에 관련된 내용이 있었다. 이와 관련해 로드벨런서에서 ALB와 NLB의 차이점과 특징을 조금 더 상세히 정리해보았다. 로드벨런서(Load Balancer) 로드밸런서는 서버에 트래픽을 분산시키는 장치다. 부하 분산이라고 하여, 서버에 네트워크 또는 애플리케이션 트래픽이 쏠리지 않게 관리해준다. 로드벨런서는 동일한 애플리케이션이 구동되는 둘 이상의 서버를 묶어 사용자로부터 들어오는 요청을 중간에서 분산 처리한다. 쉽게 말해, 서버와 사용자 사이의 중간 다리로서 역할을 한다고 할 수 있다. 로드벨런서는 일반적으로 Layer 4 계층 Layer 7 계층 두 가지.. 2022. 5. 8.
[MySQL] MySQL 설치 및 파라미터 그룹 설정(mysql.cnf) 오늘은 Ubuntu 환경에서 MySQL 설치 및 DB 파라미터 그룹 변경 방법에 대해 정리한다. CLI 명령어로 서버에 MySQL을 설치하고, 외부 접근을 위한 방화벽 설정 방법을 알아본다. 추가로 DB와 관련된 사용자설정값을 지정하는 방법을 공유한다. 1. MySQL 설치 및 외부 접근 허용 설정 DB 설치는 ubuntu apt-get 패키지 관리자로 진행한다. 최신 패키지 소스를 다운받기 위한 업데이트를 진행하고, mysql-server를 다운로드한다. # 패키지 관리자 업데이트 sudo apt-get update # MySQL 설치 sudo apt-get install mysql-server 설치가 완료되면, 로컬 환경에서 DataGrip, Workbench와 같은 DBMS 툴 접근을 열어주기 위.. 2022. 5. 3.
[MySQL] DB 시간 설정 보호되어 있는 글 입니다. 2022. 5. 3.
[Linux] 디스크 IOPS 측정 - FIO 이번 포스트에서는 IOPS에 대한 개념과 Linux에서 사용할 수 있는 IOPS 측정 툴 FIO의 사용 가이드를 정리한다. FIO 설치 방법과 실행 명령어 예시를 공유한다. IOPS (Input/Output Operations Per Second) 란? IOPS는 HDD, SDD와 같은 하드 디스크의 파일 입출력 속도를 나타내다. Input/Output Operations Per Second의 약자로 초당 어느 정도의 입출력 사양을 보여주는지 나타내는 단위로서 사용된다. 데이터 입출력 값은 CPU, RAM 사양에도 영향을 받지만, 하드 디스크에 저장되는 데이터 트래픽이 무겁다면 이 IOPS 성능에 따라 실행되는 응용 프로그램의 성능이 결정된다고 말할 수 있다. FIO 설치 찾아보면 다양한 방법이 보이겠.. 2022. 5. 2.
[MySQL] Incorrect string value 에러 아래 내용은 MySQL에서 데이터 import 도중 발생한 하나의 에러 케이스와 해결 방법을 정리한 것이다. 문제의 원인과 해결 방법에 대해 정리했다. 에러 로그 DataGrip으로 csv 파일을 import 할 때 확인된 로그다. Title 컬럼에 insert 중, 문자열 value에서 에러가 확인되었다. Incorrect string value: '\xEC\x9B\x90\xED\x99\x94...' for column 'TITLE' at row 1 원인 문제의 원인은 인코딩에 있었다. 한글 문자열이 컬럼 안에 insert 될 때, 컬럼에 정의된 스키마가 한글을 지원하지 않았다. 해결방법 한글 데이터가 깨지지 않고 입력되기 위해서는 인코딩을 잡아주어야 한다. 그렇기 위해서는 데이터가 들어가는 컬럼의 스.. 2022. 4. 30.
[AWS] CI/CD 구성(3) - 배포 CodeDeploy 보호되어 있는 글 입니다. 2022. 4. 30.
[AWS] CI/CD 구성(2) - 소스 빌드 CodeBuild AWS 콘솔 환경에서 자동 배포하는 방법을 정리하고자 한다. AWS에서는 소스 코드 관리부터 빌드, 배포를 비롯해 이 과정을 하나의 파이프라인으로 묶어 관리할 수 있는 CI/CD 서비스를 제공한다. 각 단계에 대해 간단히 정리하면, Github와 같이 소스 코드의 저장 및 버전 관리를 도와주는 CodeCommit, 소스 코드 빌드를 도와주는 CodeBuild, 빌드된 파일을 서버에 배포하는 CodeBuild, 마지막으로 위 3 단계를 하나로 묶어주는 Pipeline이 있다. 지난 포스트에서는 위 개념 중 소스 저장소 CodeCommit에 대해 알아보았다( 링크 : https://log4day.tistory.com/41?category=1038764 ). 이번 포스트에서는 소스 저장소에서 코드를 읽어와 빌.. 2022. 4. 29.
[Bitcoin] 노드 RPC curl 명령어 정리 오늘은 서버에서 curl을 활용한 비트코인 노드에 RPC 통신 요청 방법을 공유한다. 기본적인 형태만 잘 기억해두면, CLI( = bitcoin-cli )에 접근하지 않더라도 RPC 통신을 할 수 있다. curl 내부 명령어와 파라미터만 바꿔 비트코인 노드에서 블록 정보를 가져오는 게 가능하다. curl을 날릴 때 신경써야할 부분이 있다면, RPC User 및 Password를 bitcoin.conf에 설정해두었는지와 RPC 호출 IP 주소 및 Port를 정확하게 입력하는 것이다. 기본적으로 RPC Port는 수정하지 않는 한 8332번이며, 사용자 정보가 필요한 노드라면 --user 플래그에 해당 정보를 입력해주어야 한다. 몇 가지 기본적인 RPC 명령어를 기록해두었다. 포멧에 익숙해졌다면, 게시물 하.. 2022. 4. 28.
[Linux] 서버 로그관리 - logrotate 오늘 포스트에서는 리눅스 서버 로그 관리 툴 logrotate에 대해 알아본다. 서버에서 응용 프로그램을 실행하면 보통 로그 파일 생성된다. 로그는 애플리케이션과 같은 응용 프로그램이 실행되어 호출될 때 쌓이게 되는데, 이 로그를 잘 관리해주지 못하면 서버 스토리지가 가득 차거나 프로그램 실행 속도가 느려지는 등의 문제를 야기할 수 있다. logrotate는 서버에 쌓이는 로그를 사용자 설정에 맞춰 관리할 수 있게 돕니다. 일정 시간 주기를 설정해 오래된 로그는 자동 삭제되게 할 수 있으며, 일별 혹은 주별 로그를 압축 파일로 만들게 할 수 있다. 이 외에도 로그 파일명 지정, 생성된 로그가 없을 때 알림 기능 등을 설정할 수 있다. 아래 본문에서는 logrotate 옵션들과 설정 및 실행 방법에 대해 .. 2022. 4. 27.
[Linux] Ubuntu 서버 시간 설정 (dpkg-reconfigure) Ubuntu 서버 시간을 설정하는 방법을 정리한다. 여러 가지 방법이 있지만, 이번 포스트에서는 dpkg-reconfigure을 사용한 방법을 공유한다. 서버 시간 설정 툴 tzselect timedatectl dpkg-reconfigure ( -> 오늘 주제 ) 서버 시간 확인 ( date, more ) 각각 서버 시간과 타임존을 확인하는 명령어다. # 시간 확인 date > Wed Apr 27 00:02:28 KST 2022 # 타임존 확인 more /etc/timezone > Asia/Seoul 서버 시간 변경 서버 시간 변경 원리는 기존 시간 정보를 새로운 시간 교체하는 데 있다. /etc/localtime 경로의 파일은 시간에 대한 정보를. /etc/timezone 경로의 파일은 타임존에 대한 .. 2022. 4. 26.