반응형

WEB WAS/미들웨어 27

FTP와 TFTP: 파일 전송 프로토콜 비교 및 장단점

FTP와 TFTP란? FTP(파일 전송 프로토콜)와 TFTP(간단한 파일 전송 프로토콜)는 네트워크 상에서 파일을 전송하기 위해 사용되는 프로토콜입니다. 각각의 특징과 용도를 비교해보겠습니다. FTP(파일 전송 프로토콜)의 특징 FTP는 TCP/IP 프로토콜을 기반으로 동작합니다. 파일 및 디렉토리를 전송하고 관리하기 위해 사용됩니다. 일반적으로 인증이 필요하며, 사용자 계정과 비밀번호로 접속합니다. FTP는 명령(command) 채널과 데이터(data) 채널을 사용하여 제어와 데이터 전송을 분리합니다. 보안성에 취약할 수 있으며, 데이터가 암호화되지 않아 도청의 위험이 있습니다. 파일 전송에 대한 기능이 다양하고 복잡한 기능을 지원합니다. TFTP(간단한 파일 전송 프로토콜)의 특징 TFTP는 UDP ..

DNS 레코드: CNAME과 A 레코드의 차이점

DNS DNS(Domain Name System)은 인터넷에서 도메인 이름을 해당 도메인의 IP 주소로 변환하는 시스템입니다. 이를 통해 사용자는 도메인 이름을 사용하여 웹 사이트에 접속할 수 있습니다. DNS는 계층적인 구조로 이루어져 있으며, 도메인 이름을 계층적인 구조로 분할하여 관리합니다. CNAME 레코드 CNAME 레코드는 Canonical Name의 약자로, 도메인의 별칭을 설정하는 데 사용됩니다. 이 레코드를 사용하여 한 도메인을 다른 도메인으로 매핑할 수 있습니다. 예를 들어, "www.example.com" 도메인을 "example.com"으로 매핑하고 싶다면, "www.example.com"에 대한 CNAME 레코드를 "example.com"으로 설정하면 됩니다. 예시: 도메인: ww..

리눅스 graceful 이란?

graceful 이란? => 리눅스에서의 "graceful"은 서버 프로세스나 데몬을 정상적으로 종료하거나 재시작하는 방법을 의미 => Graceful한 종료와 재시작은 시스템의 안정성과 서비스의 지속성을 유지하기 위해 중요한 요소 => 프로세스는 종료 시그널을 수신하면 새로운 요청을 받지 않고, 현재 처리 중인 요청을 완료한 뒤에 종료 => 데이터의 손실이나 서비스 중단을 최소화 => Graceful한 재시작은 프로세스나 데몬을 다시 시작하면서 현재 연결된 클라이언트나 서비스에 영향을 최소화하는 방법 => Graceful한 종료와 재시작은 시스템 관리자나 서버 운영자가 서비스 유지와 안정성을 위해 자주 활용하는 개념 shutdown 과의 차이점 => shutdown 은 시스템 전체를 종료하는 명령어이며..

ELK 란? (Elasticsearch, logstash, kibana)

ELK 란? => Elasticsearch, Logstash, Kibana 세가지로 구성되어 있음 => 사용자에게 시스템과 어플리케이션에서의 로그 집계 및 분석 => 어플리케이션 및 인프라 모니터링 시각화 Elasticsearch => 검색 및 분석 엔진 => JSON 문서로 로그분석 및 검색 Logstash => 다양한 소스로부터 데이터 수집 및 전환하여 원하는 대상에 전송할 수 있도록 하는 오픈 소스 데이터 수집 도구 Kibana => 로그 및 이벤트 검토에 사용하는 데이터 시각화 및 탐색 도구 => Elasticsearch에 저장된 데이터를 시각화 함 ELK 작동 방식 1. Logstash는 데이터 수집 및 변환 후 올바른 대상으로 전송 2. Elasticsearch는 수집된 데이터 인덱싱, 분석,..

ssl.conf 파일 옵션

SSLRandomSeed SSL/TLS 세션키를 생성하기 위해 난수 생성기를 초기화 하는데 사용 SSLRandomSeed context source [bytes] context 종류 startup : 서버가 시작될 때 초기화될 소스 connect : 각 클라이언트 연결마다 난수 생성기를 초기화할 소스 source builtin : 언제든지 사용 가능한 builtin seeding secure, 최소한의 CPU cycle 소비 내장된 난수 생성기 사용 file:/path/to/source : 외부 파일로 부터 난수를 읽어옴 exec:/경로/프로그램 : 외부 프로그램 사용 시 서버 속도를 저하 시킴 bytes 값 생략 시 512 바이트 적용 SSLHonorCipherOrder mod_ssl 모듈에서 제공하는..

SSL/TLS 란?

SSL 이란? => Secure Socket Layer => 네트워크 상에서 데이터를 암호화하는 데 사용되는 암호화 프로토콜 => SSL은 웹 브라우저와 웹 서버 간의 안전한 통신 제공 => 데이터의 기밀성 무결성 제공 => 현재 잘 사용되진 않고 TLS 로 대체됨 TLS 란? =>Transport Layer Security => SSL 후속 버전으로 네트워크 통신을 암호화하고 보안을 제공하는 프로토콜 => TLS 는 데이터의 기밀성, 무결성, 서버 인증 등을 제공하여 안전한 통신 가능케 함 => 웹 브라우저와 웹 서버 뿐 아니라 다른 응용 프로그램에서도 사용됨 => 현재 TLS 1.0, 1.1, 1.2, 1.3 등 다양한 버전이 존재함 사이퍼슈트 란? => Cipher Suite => SSL 또는 TL..

APM 이란? (JENNIFER, Pinpoint)

APM 이란? => Application Performance Monitoring => 어플리케이션 성능 모니터링을 위한 기술과 접근 방법 => 실시간으로 어플리케이션 동작을 모니터링 => 성능 및 가용성 관련 지표 수집 및 분석 하는 프로세스를 포함 주요 기능 및 이점 1. 성능 모니터링 => 어플리케이션의 성능을 실시간으로 모니터링함 => 응답시간, 처리량, 에러발생 등과 같은 핵심 성능 지표를 수집함 => 성능 이슈 식별 및 개선 가능 2. 트랜잭션 추적 => 어플리케이션 내 발생하는 트랜잭션 추적 및 분석 => 특정 기능이나 작업에 대한 성능과 동작 파악 용이 3. 어플리케이션 지연 시간 분석 => 어플리케이션 내 발생하는 지연 시간을 분석하여 병목 현상 및 성능 저하 원인 추적 => 성능 개선 ..

GC (Garbage Collection) Thread 설정

GC Thread 설정 옵션은 JVM 구현에 따라 다를 수 있고 JVM 버전에 따라서도 다를 수 있다. 아래 몇가지 설정 옵션을 살펴보자 *GC 스레드 종류 선택 1. -XX:+UseParallelGC : 병렬 GC 알고리즘 사용 2. -XX:+UseConcMarkSweepGC : CMS GC 알고리즘 사용 3. -XX:+UseG1GC : G1GC 알고리즘 사용 * GC 우선순위 설정 1. -XX:ThreadPriorityPolicy= : GC 스레드의 우선순위 정책 설정 (정책 옵션으로 0,1 사용) 2. -XX:GCTimeRatio= : GC 스레드에 할당되는 CPU 시간의 비율 설정 * GC 쓰레드 수 설정 1. -XX:ParallelGCThreads= : Parallel GC 에서 사용할 쓰레드 ..

톰캣 access.log, catalina.out (구성, 용량 설정)

톰캣 로그 파일 중 하나 인 access.log와 catalina.out 에 대해 알아보자 일반적으로 톰캣의 logs 디렉토리에 위치한다. access.log => 톰캣 웹 서버에 대한 접근 로그 기록 => 주로 HTTP 요청에 대한 정보 기록 => IP주소, 요청 URL, 응답상태코드, 응답 크기, 요청 시간 등의 정보가 포함됨 => 로그를 통해 접근 통계, 사용자 행동 분석 등을 수행할 수 있음 -> 0:0:0:0:0:0:0:1 : 클라이언트 IP 주소 (IPv6 로컬호스트 주소 ::1 과 동일한 의미) -> '-' : 사용자 인증 정보 필드 (인증 정보 제공되지 않아 - 로 표기) -> '-' : 원격 사용자 이름 필드 (원격 사용자 이름 제공되지 않아 - 로 표기) -> [05/Jun ~~~ -0..

Thread Dump, Heap Dump (시스템 장애 시 분석)

자바 어플리케이션 실행 중 장애 발생 시 원인을 찾을 수 있는 방법은 여러가지가 있다. 로그분석, 스레드 덤프 & 힙덤프 분석, 예외 핸들링, 성능 모니터링, 코드 검토, 모니터링 툴 활용 등이 있다. 이 중 스레드 덤프와 힙 덤프에 대해 알아보고자 한다. Thread Dump 란? => 실행 중인 Java 어플리케이션의 모든 스레드 상태 출력 => 어플리케이션이 멈춤 상태에서 생성 => 어플리케이션의 데드락(Deadlock) 이나 스레드 문제를 분석하거나 성능 문제를 해결하는 데 도움 됨 => 스레드 덤프 생성 시 PID (Process ID)를 알아야 함 * 덤프 생성 ==> kill -3 명령어를 통하여 덤프를 생성한다 . (Visual VM 으로도 획득 가능) ==> 덤프에는 표준출력(stdout..

Connection pool

Connection Pool 이란? => DB와 같은 외부 리소스에 대한 커넥션을 관리하는 기술 => 어플리케이션에서 데이터베이스와의 연결을 관리 => 커넥션을 효율적으로 사용하고 재사용 할 수 있게 해줌 사용 이유 => was와 DB 간 커넥션을 맺는 것은 비용이 크다. 매번 데이터 베이스에 연결하고 연결을 끊는 것은 성능 저하의 원인이 된다. 이러한 이유로 인해 Connection Pool 이 사용됨 동작 => was가 실행되면서 일정량의 Connection 객체를 미리 만들어두고 유지함 => 어플리케이션이 DB에 접근해야 할 때, Pool에서 커넥션을 가져와 사용하고 작업이 완료되면 반환함 장점 1. 서버 부하 감소 - DB Connection 을 맺는 과정이 부하가 많이 걸리는 작업임 미리 Con..

mod_jk.so (Apache Tomcat Connector 모듈 파일)

mod_jk.so => Apache Tomcat Connector 모듈 파일 => Apache 웹 서버에서 JSP 및 Servlet과 같은 JAVA 웹 어플리케이션을 실행할 수 있도록 함 설정 옵션 JkWorkersFile - Worker의 정의 파일 경로 지정 - Worker는 Tomcat 과 통신을 위한 정보를 가지고 있음 JkLogFile - mod_jk의 로그 파일 경로 지정 - 모듈 동작 및 오류 관련 로그 기록 JkLogLevel - 로깅 레벨 설정 - 설정 값 : emerg, alert, crit, error, warn, notice, info, debug 등이 있음 JkMount - 웹 서버에 전달할 요청 경로를 Tomcat에 매핑함 JkMountCopy - ON or OFF로 설정됨 - ..

[CentOS 7] 아파치, 톰캣 연동 (mod_jk, Cent OS, Tomcat Connector)

아파치와 톰캣을 mod_jk를 통해 연동 하고자 한다. (localhost, HTTP) 최종 결과물은 아파치의 80포트 진입 시 아파치 톰캣 8080 포트로 진입되는 것 톰캣 서버가 보이거나 따로 작성한 html 파일 내용이 보여야함 필자는 Cent OS 에서 실습을 진행하였음 아파치와 톰캣은 이미 설치되어 있고 아파치:80, 톰캣:8080 으로 테스트 웹브라우저 출력 확인은 완료된 상태임 아직 확인 완료 하지 못한 부분은 아래 링크 확인 아파치 설치 https://chance-story.tistory.com/94 [CentOS 7] 아파치 설치 및 실행 (yum 활용) 개발 환경 $ cat /etc/redhat-release CentOS Linux 버전 : 7.9.2009 아파치 설치 - yum 활용 ..

[CentOS 7] 아파치 톰캣 설치 및 실행 (jdk 설치, wget 활용)

open jdk 11 설치 => java --version 을 통해 설치 유무 확인 설치가 되어있지 않다면 설치 가능 리스트 확인 # yum list java*jdk-devel [root@localhost test2]# yum list java*jdk-devel Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.riken.jp * extras: ftp.riken.jp * updates: ftp.riken.jp Available Packages java-1.6.0-openjdk-devel.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base java-1.7.0-openj..

[CentOS 7] 아파치 설치 및 실행 (yum 활용)

개발 환경 $ cat /etc/redhat-release CentOS Linux 버전 : 7.9.2009 아파치 설치 - yum 활용 => 설치에 필요한 패키지를 같이 설치해줌 => yum 으로 설치 시 systemctl 에 자동으로 서비스가 등록된다 // root 로그인 하기 (su / 패스워드 입력) $ yum install httpd // 중간중간 설치 진행 여부 물음 y 응답 특정 버전의 Apache 를 다운로드 할 경우 RPM 이용하여 설치 아파치 설치 확인 $ httpd -v // 버전 응답 아파치 실행 /etc/httpd/conf/httpd.conf 파일 내에서 port 지정 가능 (Default : 80) $ systemctl start httpd // 아파치 시작 $ systemctl s..

반응형