본문 바로가기

WEB&WAS/Apache Tomcat19

WAS) 현재 사용중인 Heap Memory 크기 확인하기 INTRO JVM은 각자의 Heap Memory를 가지고 운영합니다. 이 Heap Memory는 사용자가 설정 하는 값에 따라 달라집니다. 그런데 ps 명령으로는 내가 설정한 값만 보이고 실제 JVM이 실제로 해당 메모리값을 사용하고 있는지는 확인하기 힘듭니다. 그래서 현재 실행중인 JVM의 메모리가 몇인지 확인하는 명령어를 소개 드리려고합니다. JVM 메모리 확인 먼저 운영중인 WAS의 프로세스의 ID인 PID를 확인합니다. PID는 2616이고 Heap Memory는 2048M로 확인되고 Metaspace 크기는 512M으로 확인됩니다. (Metaspace는 JDK 1.8 이전의 기준으로 Perm 영역과 유사합니다.) [root@was bin]# ps -ef |grep tomcat 실행중인 JVM의 .. 2022. 2. 15.
WAS) systemctl을 이용해서 Tomcat 서비스 제어 INTRO 바이너리로 제공된 Tomcat에서는 systemd 혹은 init 스크립트를 제공하지 않습니다. 그러므로 Tomcat을 systemd(systemctl)에 등록하기 위해서는 수동으로 설정 파일 후 데몬을 Reload해야됩니다. systemctl로 Tomcat 서비스 제어하기 systemctl로 서비스를 제어하기 위해서 system 데몬 설정 파일을 작성합니다. 이 설정 파일의 로직을 잘 이해하고 있으면 추후 멀티 인스턴스 구축 후에도 systemctl로 간편하게 인스턴스 별로 제어 가능합니다. [root@LILO-WAS]# vim /usr/lib/systemd/system/tomcat.service [Unit] Description=Apache Tomcat9 After=network.target.. 2022. 1. 4.
WAS) Tomcat Installation on Linux (Tomcat 설치) INTRO 앞 글에서 소개한 WAS 제품 중 오픈소스인 Tomcat을 설치하는 가이드를 소개하려고 합니다. WAS) WAS에 대한 이야기 (4) - WAS의 종류 WAS(Web Aplication Server)의 종류 국내에서 많이 사용하는 솔루션을 위주로 소개하려고 합니다. 모든 솔루션들은 크게 2가지의 종류로 나뉩니다. 오픈소스이냐 상용 솔루션이냐 이 부분을 말합니다. lilo.tistory.com Binary 설치로 진행할 것이기 때문에 Linux 배포판의 종류를 가리지 않습니다. 그리고 패키지 설치보다 보안적인 패치도 빠르고 마이그레이션 면에서도 장점을 가지기 때문에 선정하였습니다. Tomcat Binary Installation on Linux ☞ Apache 설치 확인 가장 최근의 Stable.. 2022. 1. 2.
WAS) WAS에 대한 이야기 (7) - 개발 소스 관리 INTRO WAS에 소스 배포 할 때 WAR, JAR 등 소스 반영 아카이브 형태의 파일로 배포합니다. 이 소스의 히스토리가 하나 둘 씩 모이다 보면 일반적인 관리 형식으로는 관리하는 것이 사실 불가능합니다. 이러한 문제 때문에 개발 환경에서는 이러한 소스를 관리하기 위해 형상 관리 툴이라는 것을 도입하게 됩니다. 그런데 "WAS를 이야기 하다가 왜 갑자기 개발 소스 관리 이야기를 하고 저는 엔지니어 인데요..?" 시스템 운영이 되고 있는 서버를 보면 결코 Web, WAS, DB 서버만 있다고 모든게 정상적으로 운영되지는 않습니다. 분명 이러한 것들을 개발할 수 있는 환경도 있어야되고 개발 소스 코드에 대한 히스토리 관리도 되고 있어야 되기 때문에 운영자 혹은 엔지니어에게도 해당 분야에 대한 지식이 요구.. 2022. 1. 2.
WAS) WAS에 대한 이야기 (6) - WAS 구성도 설계 필요한 장비 1) 서버: 물리서버, 가상화(VMware, Nutanix, Citrix 등), 클라우드(AWS, Azuere, GCP 등) 2) 로드밸런서: L4~L7 스위치, 클라우드 로드밸런서 3) 네트워크: 외부망(Web Server)과 내부망(WAS, DB, MQ)으로 나뉜 네트워크 망, 클라우드 VPC 설정 4) 방화벽: 방화벽 장비, 클라우드 방화벽 장비, WAF 등 5) 보안 관련: 접근제어 솔루션, 백신 솔루션 등 Web Server - WAS 구성도 아래의 구성도에서 내부 로드밸런서를 추가하면 더 안정적인 운영 환경을 구성할 수 있지만 필수는 아닙니다. 기본적으로 웹서버에서 SW 로드 밸런싱을 할 수 있는 기능을 존재하기 때문입니다. (Nginx: upstream, Apache: lb_fa.. 2021. 12. 22.
WAS) WAS에 대한 이야기 (5) - WAS와 Web Server를 분리하는 이유 WAS와 Web Server를 분리하는 이유 (Web WAS 연동 이유) 구글에 검색을 해보면 아래와 같은 이유로 많이 나올 것입니다. 1) 정적과 동적 처리를 나누기 위해서 2) WAS의 Web Server 역할은 성능상 좋지 않기 때문에 사실 위의 두가지의 경우가 틀린 이유는 아닙니다. 하지만 두번째의 "WAS의 Web Server 성능이 기존의 Apache나 Nginx보다 좋지 않기 때문에" 사실 이렇게만 말한다면 틀리다고 말할 수 있습니다. 최근 Tomcat의 경우는 많은 업데이트를 거치고나서 정적 페이지 처리 기능은 사실 기존의 Web Server와 크게 다르지 않습니다. 어떻게 보면 성능보다는 설정에 관한 것들이 많은 동접자 처리를 처리하기에 애매한 부분이 있기 때문입니다. Apache의 세션.. 2021. 7. 31.
WAS) WAS에 대한 이야기 (4) - WAS의 종류 WAS(Web Aplication Server)의 종류 국내에서 많이 사용하는 솔루션을 위주로 소개하려고 합니다. 모든 솔루션들은 크게 2가지의 종류로 나뉩니다. 오픈소스이냐 상용 솔루션이냐 이 부분을 말합니다. 오픈소스 WAS Jetty, Apache Tomcat 등 다양한 솔루션들이 있겠지만 국내에서 오픈소스 WAS 솔루션은 Apache Tomcat과 WildFly을 많이 사용합니다. Apache Tomcat Apache 재단에서 기본으로 Web Server 기능을 포함한 Web Application의 역할도 하는 솔루션입니다. 이는 무료로 사용할 수 있기 떄문에 기업체에서 많이 사용하기도 합니다. 이 솔루션의 단점은 오픈소스이기 때문에 벤더의 지원이 없다는 점입니다. 장점도 있습니다. 오랫동안 릴리.. 2021. 7. 31.
WAS) WAS에 대한 이야기 (3) - WAS란? WAS(Web Aplication Server) WAS는 동적인 페이지를 클라이언트에게 반환 해주는 서버입니다. 이 개념만으로는 많이 부족한 느낌이 드네요. WAS는 프로그래밍 언어를 사용해서 비즈니스 로직(Business Logic)을 구현하는 것이 목적인 서버입니다. Business Logic: 업무에 필요한 데이터 처리를 수행하는 APP의 일부입니다. 비즈니스 로직의 개념을 이해하기 위해 아래의 과정을 예시로 들어 보려고 합니다. 네이버의 회원가입 예시입니다. 회원가입 폼을 클라이언트에게 보여줍니다. . 위와 같이 아이디의 중복 검사, 비밀번호 복잡성 등을 검사하는 과정을 거칩니다. 여기서 중복 검사와 복잡성 확인은 DB에 저장된 데이터를 기반으로 이뤄집니다. 즉, 클라이언트에게 요구하는 혹은 클라.. 2021. 7. 31.
WAS) WAS에 대한 이야기 (2) - 미들웨어란? MiddleWare란? 앞에서 소개한 서블릿 컨테이너에 대한 WAS는 미들웨어의 일종입니다. 미들웨어는 OS와 앱의 중간에서 중개 역할을 하는 소프트웨어입니다. 아주 간단하게 얘기하면 OS에서 제공 받는 서비스 이외에 추가로 이용하는 서비스를 뜻하기도 합니다. OS 기능인 Kernel, SSH, FTP, Network 이러한 것들을 보고 우리는 미들웨어라고 표현하지 않습니다. OS를 기준으로 하면 Apache, Apache Tomcat, Nginx 등 이러한 패키지들이 미들웨어에 해당됩니다. 사실 이 미들웨어라는 용어는 깨끗하게 정의하기 애매한 용어라고 매번 생각이 드네요. 위의 관점에서 보면 클라이언트와 DBMS 사이에 있는 솔루션이 미들웨어가 되겠습니다. 즉, 이 부분에서는 Application Se.. 2021. 7. 31.