레진 (서버)
레진(Resin)은 미국 카우초(Caucho) 사에서 개발한 윈도우용 오픈소스 웹 애플리케이션 서버(WAS) 제품의 이름이다. 웹 서버 및 자바(Java) 응용 프로그램(application software) 서버로 생산 환경에서 무료로 사용할 수 있으며 레진프로(Resin Pro)의 경우 라이선스가 있는 기업 및 국가 등의 환경에서 사용할 수 있다.
개요
1998년 설립한 미국 소프트웨어(software) 개발사인 카우초(Caucho)에서 개발한 웹 애플리케이션 서버(WAS)이다. 오라클(Oracle) 사의 J2EE 라이선스를 취득한 J2EE 컨테이너 이며 안정적인 웹 서비스 운영을 위한 고성능, 고가용성 엔터프라이즈 플랫폼 이다. 전 세계 수백만 개의 사이트들이 웹 애플리케이션을 위한 가장 빠르고 가장 신뢰할 수 있는 자바 통합 솔루션으로 레진을 성공적으로 사용하고 있으며 토요타(Toyota), 삼성(Samsung), 혼다(Honda), 씨넷뉴스, 세일즈포스닷컴, 토론토 증권거래소 등 전 세계 대형 기업 및 사이트로부터 높은 안정성과 보안성, 엄격한 신뢰성을 검증받았다. 레진은 자바 표준과 'Quercus' 라는 'mod_phpPHP 엔진을 지원하고 레진 프로의 경우 내장 캐싱, 퍼블릭/프라이빗/하이브리드 클러스터링, 분산 캐시 복제, 자동 복구 및 진단 보고서 등과 같은 최적화 기능이 있다.[1] [2]
연혁
- 1999년: 레진 1.0 출시
- 2000년: 브랜드 세일즈포스에 레진 배포.
- 2001년: 컴퓨터 알타비스타(Altavista)에 레진 배포.
- 2003년: e-gatematrix에 레진에 배포.
- 2006년: 일본 최대 온라인 게임 포털에 레진 배포.
- 2007년: 레진 3.1 출시.
- 2008년: 레진 3세대 클러스터링 및 클로스트리디움 디피실 감염증(CDI) 소개.
- 2009년: 클라우드(cloude) 지원 및 관리 기능 향상.
- 2010년: 레진 프로 클라우드(Pro cloud) 최적화 및 웹 프로파일 인증.
- 2017년: 제스트 정보기술(XIT)과의 제휴를 통해 레진의 한국 시장을 확대, 삼성, 국방부, 해안 경비대 등의 주요 고객.
- 2018년: 레진 임베디드(Embedded), Spring Boot 명령 줄 배포를 지원 추가, 대한상공회이소(Korea Chamber of Commerce & Industry)가 레진 클러스터링을 활용해 전국 확장성을 달성.
- 2019년: 경기도 교육청의 업무실적 효율성이 크게 향상했다. 자바 개발 키트11(JDK11)을 지원.[3]
특징
주요기능
레진의 자바 엔터프라이즈 에디션(Java EE) 인증 아키텍처(architecture)는 클라우드를 지원한다. SaaS 애플리케이션을 강화하도록 선택하거나 PaaS/laaS 플랫폼의 백본으로 활용할 수 있다. 레진의 경량 및 모듈식 베이스를 사용하면 애플리케이션을 퍼블릭, 프라이빗, 하이브리드 클라우드에 배치 할 수 있다.
- 완벽한 솔루션: 완벽한 솔루션을 사용하여 가능한 한 빨리 기능을 추가하는 데 집중함으로써 지속적인 통합을 강화한다. 서블릿, 자바 서버 페이지(JSP), 엔터프라이즈 자바빈즈(EJB) 또는 가장 빠른 HTTP 서버와 상관없이 애플리케이션 개발 프로세스(Process)를 지원하는 도구를 작업장에 가져온다.
- 신뢰할 수 있는 데이터: 레진의 캐싱, 엔터프라이즈 클러스터링 및 복제를 구축하여 데이터에 필요한 탄력성을 제공할 수 있다. 레진에서 실행되는 응용 프로그램은 안정성, 정확성 및 완성도를 유지하면서 프로세스 일관성을 모니터링할 수 있다.
- 간편한 배포: 레진의 쉬운 설정 및 구성을 사용하여 새로운 웹 앱을 신속하게 활성화 할 수 있다. 클라우드에서 통합 프레임워크(framework) 및 관리 솔루션을 촉진하여 애플리케이션 향상 속도를 높인다. 배포가 계속 진행되는 동안 모든 프로세스는 정상 작동한다.
- 확장성: 물리적 환경과 가상 환경 모두 한 서버에서 수천 서버로 아키텍처를 완벽하게 구축 및 확장할 수 있다. 클라우드 배포를 최적화하기 위해 클러스터링 및 복제의 상호 작용을 활용한다. 레진의 일관되고 견고한 방법을 사용하여 서버를 확장, 축소, 추가, 제거할 수 있어 자유로운 생산 수준을 제공한다.
- 버전이 지정된 배포: 기존 세션(session)이 있는 사용자 모두에게 업그레이드 프로세스를 투명하게 만들고 동일한 서버 내에서 동일한 응용 프로그램의 이전 버전으로 이동하여 업그레이드할 때 활성 사이트에 대한 다운 타임이 필요하지 않도록 제어 할 수 있다.
- 로드 밸런싱: 토폴로지(Topology)를 이해하는 스마트 소프트웨어 로드밸런서로 가동 시간을 늘린다. 리소스 최적화, 처리량 극대화, 응답 시간 최소화 및 리소스 과부하 방지 서버 세션으로 효율적이고 지속해서 가동할 수 있다.
- 클러스터링: Resin의 웹 및 앱 서버를 사용하여 고성능 및 가용성을 위한 웹앱 을 클러스터링 할 수 있다. 미디어 회사 'WebLogic'에서 레진 프로를 사용함으로써 기존대비 작업 성능이 30% 향상, 비용이 40% 절감된 성과를 냈다.
- 마이크로서비스: 작은 용량(약 30MB)의 패키지에서 레진은 웹 응용프로그램의 .jar, .war또는 .ear배포에 사용할 수 있다. 또한 분산캐시, 모니터링 및 세션 클러스터링을 통해 전 세계 무수한 고객들에게 서비스를 제공한다.[4] [5] [6]
레진 구조
레진 제품 라인의 발전은 빠른 성능, 내장 서버 모니터링 기능 및 극도의 안정성으로 인해 이루어진다. 헬스 시스템(Health System) 및 와치독(Watchdog) 프로세스는 레진의 탁월한 신뢰성을 보장한다. 레진 헬스 시스템은 '서버 모니터링' 및 자바 가상 머신(JVM) 모니터링과 완벽한 서버 복구 기능(자체 치유)을 제공한다.
- 레진 스마트 로드 밸런서(Resin Smart Load Balancer): 단일 서버 이상으로 트래픽이 증가함에 따라 레진의 로드 밸런싱을 통해 로드를 처리할 새 장치를 추가 할 수 있으며 다운된 서버나 유지 보수 서버의 요청을 투명하게 백업하여 페일 오버함으로써 가동 시간과 안정성을 동시에 향상할 수 있다. 'Apache mod_rewrite' 모듈과 동등한 레진의 재작성 기능의 일부로, 강력하고 자세한 유알엘URL 일치 및 디코딩(decoding)을 제공한다. 더욱 정교한 사이트는 여러 호스트를 사용하는 가상 호스트 또는 유알엘을 기반으로 밸런싱 할 수 있다.[4]
- 프락시 캐시: 서버 캐싱은 동적 페이지의 속도를 정적인 속도로 높일 수 있다. 시엔엔(CNN), 위키피디아(Wikipedia) 또는 슬래시돗(Slashdot)과 같이 데이터베이스 질의로 생성된 페이지가 15분마다 변경되는 경우 레진은 결과를 캐시 하여 정적 페이지처럼 제공 할 수 있다. 레진의 캐싱은 HTTP 헤더에만 의존하기 때문에 모든 자바 서버 페이지, 서블릿에서 작동한다. 레진의 캐싱은 프락시 캐시처럼 작동하여 해시 코드 또는 다이제스트를 비교하기 위해 HTTP 헤더를 살펴보거나 정적 시간 동안 단순히 캐싱한다. 프락시 캐시는 HTTP 표준을 따르므로 미디어 위키(Media wiki)와 같은 응용 프로그램은 추가 작업 없이 자동으로 성능이 크게 향상된다.[4]
- 웹 서버: 비하인드 레진은 카우초에서 자체 개발한 100% 자체 웹 서버로 구동된다. 레진 웹 서버는 모든 권한을 가지고 개별 컴포넌트를 최적화 할 수 있어서 엔진x(nginx)보다 더 빠른 정적 페이지를 제공 할 수 있다. 레진 웹 서버의 기능으로는 강력하고 쉬운 유알엘 재작성 규칙 구성과 손쉬운 가상 호스팅 구성이 가능하다. FastCGI를 통해 파이썬(Python), 루비(Ruby), 네이티브 PHP 등으로 작업 할 수 있다. 내장 HTTP 프락시 캐시로 동적 페이지를 거의 정적인 속도로 가속하며 자바로 작성된 PHP 복제본인 케르 쿠스(Quercus)를 통한 내장 PHP 언어를 지원한다. 새 응용 프로그램 서버 노드(node)로 로드를 자동 공유하는 클러스터 인식 로드 밸런서가 있으며 다른 웹 서버 (주로 작고 빡빡하며 빠른 JNI / C를 갖춘 자바)를 괴롭히는 오버플로 공격을 차단할 수 있다.[4]
- 레진 응용프로그램 서버: 자바 엔터프라이즈 에디션 웹 프로파일 구현에는 자바 서버 페이지, 자바 서버 페이지 표준 태그 라이브러리(JSTL), 엔터프라이즈 자바빈즈 라이트(EJB Lite), 클로스트리디움 디피실 감염증(CDI), 자바 서버 페이스(JSF) 등등이 포함된다. 레진은 빠른 웹 사이트를 구축 할 수 있는 가벼운 웹 개발을 위한 이상적인 환경을 제공한다.[4]
- 서비스 중심 디자인: 중앙 집중식 등록 및 조회로 균일한 수명 주기를 관리 할 수 있고 자체 문서화된 서비스 선언 및 바인딩이 가능하다. 따라서 자동 발견 및 배선으로 사용자에게 더욱 쾌적한 작업 환경을 제공해준다.[4]
- 레진 분산 캐시: 자바 캐싱은 캐시 가능한 메소드에 주석을 달아 애플리케이션 성능을 가속화하고 데이터베이스 로드를 줄인다. 클로스트리디움 디피실 감염증과 자바캐시(Java cache)를 모두 지원하는 레진 응용프로그램 서버는 적은 구성으로 쉽게 캐싱을 추가 할 수 있다. 메소드 매개 변수를 캐시 키로 사용하고 메소드 결과를 캐시에 저장하며 다음 메소드 호출에서 향상된 메소드는 캐시에서 저장된 결과를 찾아서 돌려보내 메소드를 절약한다. 요약하면 대기 시간 개선, 데이터베이스 로드 감소, 중앙 처리 장치(CPU) 사용량 감소이다.[4]
- 레진 적응 상태 모니터링: 사이트의 안정성이 중요하기 때문에 레진은 60초마다 내부 센서 네트워크를 모니터링하여 서버의 메모리, 중앙처리장치, 네트워크, 데이터베이스 및 클러스터 상태를 기록한다. 또한 자바 가상 머신 메트릭, 자바 애플리케이션 서버 메트릭 및 운영 메트릭을 모니터링한다. 그리고 데이터를 저장하므로 부하에 따라 서버를 조정할 수 있으며 문제가 발생한 후 문제를 분석 할 수 있다. 데이터는 레진이 트렌드와 이상을 식별 할 수 있도록 저장된다. 15 분마다 상태 시스템은 센서 데이터를 확인하고 상태를 확인, 경고, 위험 또는 실패로 보고한다. 상태 점검 결과, 알림 메일 발송, 추가 스레드 및 메모리 정보 수집 또는 다시 시작에 따라 레진의 상태 시스템이 작동하도록 지시 할 수 있다. 상태 확인을 지시하여 1분마다 시스템 상태를 확인하고 추가 조치 또는 검토를 위해 기록한다. 또한 로드가 높거나 메모리가 부족하면 레진은 메일 전송, 힙 덤프, 스레드 덤프, 자바 프로파일 링 수행 또는 관리 규칙에 따라 재시작 할 수 있으며 모든 자바 관리 확장(JMX) 값을 수집, 보관 및 표시한다. 만일 서버가 실패하면 사후 분석으로 저장된 모니터 및 로그를 사용하여 문제를 확인하고 해결할 수 있다. 트렌드 및 이상 추적을 통해 자바 프로파일 링을 적시에 수행 할 수 있는 기능으로 트렌드 및 이상을 추적한다.[4]
올인원솔루션
All-in-one solution, 단어 뜻 그대로 한 번의 설치, 하나의 관리 환경 개발을 위해 카우초는 레진이 다른 모든 솔루션보다 우수한 성능을 발휘할 수 있도록 레진의 거의 모든 구성 요소를 자체적으로 구축했다. 따라서 확장 가능한 데이터 집약적 클라우드 애플리케이션을 구축할 수 있다. 기본 구조가 많은 타사 패키지를 기반으로 구축된 경우 응용 프로그램을 확장하기가 어렵다. 각 타사 구성 요소에는 별도의 업데이트 일정, 메모리, 리소스 및 고가의 라이선스가 필요하다. 그것은 관리 실패이다. 레진은 하나의 라이선스(공개, 프라이빗, 하이브리드 클라우드)로 환경을 구성하며 수평적으로 확장하여 시간을 낭비하지 않는다. 또한 레진 확장 시 전체 응용 프로그램이 확장되어 복잡한 개발 환경에서 여러 구성 요소를 간단하고 쉽게 구성하기에 안정성, 자율성, 효율성 모두를 만족시키는 응용 프로그램을 개발하고 향상할 수 있게 된다.[4]
사용 사례 정의
- 응용 프로그램이 작고 다음과 같은 경우(업무 수행에 있어 불 필요적인/중앙처리 장치 10개 미만인 환경)
- 비 클러스터(non-clustered) 환경에 배치되거나 자바 엔터프라이즈 에디션 프로파일의 서브 세트만 필요한 경우, 매우 기초적인 아키텍처의 작은 코드를 기반할 때 이러한 애플리케이션은 다양한 오픈 소스 구성요소를 갖춘 단일 서버에서 구현될 수 있다. 이러한 프로젝트에는 오픈 소스 애플리케이션 서버에서 최고의 품종인 레진의 자유 소프트웨어 라이선스(GPL) 버전을 권장한다.[4]
- 업무 수행에 있어 필수적이며 중앙처리장치가 10개 이상인 환경
- 이 범주에서 타사 아키텍처를 사용하면 애플리케이션이 다음과 같은 영향을 받기 쉽다. 모든 외부 프레임워크 및 구성 요소가 호환되어야 하는 업그레이드와 외부 지원이 필요한 타사 구성 요소의 버그, 확장 시도 시 여러 장애 지점, 느리고 정체된 개발 등과 같이 이러한 애플리케이션은 생산성을 유지하기 위해 테스트 되고 확장 가능하며 관리가 가능해야 하는 환경이 필요하게 되는 복잡한 영역에 있기 때문에 여러 타사 구성 요소, 프레임워크 및 구성 파일을 관리하는 것은 비현실적이다.[4]
국내 라이선스 제공
2020.03.04일 기준 국내 소프트웨어 개발 및 공급업체인 '(주)솔인시스템'에서 라이선스 제공과 기술지원 및 관리 콘솔을 제공하고 있다. 뿐만 아니라 레진과 같은 와스 엔지니어 육성을 지원하고 있으며 지원 방식에는 오프라인 기술지원을 통한 전문 엔지니어의 방문으로 사용자 교육, 설치, 튜닝지원과 온라인 기술지원을 통한 24시간 실시간 원격지원, 이메일, 유선 등을 통한 24시간 기술지원, 마지막으로 사후정비 기술지원 등으로 장애 원인 분석과 예방 서비스를 제공한다.[6]
각주
- ↑ 〈Resin Customers〉, 《카우초》
- ↑ 〈caucho〉, 《카초우》
- ↑ 〈About Caucho〉, 《카우초》
- ↑ 4.00 4.01 4.02 4.03 4.04 4.05 4.06 4.07 4.08 4.09 4.10 , 〈레진 아키텍처〉, 《카우초》
- ↑ Resin (software) 위키피디아 - https://en.wikipedia.org/wiki/Resin_(software)
- ↑ 6.0 6.1 , 〈[Caucho Resin Web Server resin 기술지원 | 문의지원 서비스]〉, 《네이버 블로그》, 2020-03-04
참고자료
- 레진 공식 홈페이지 - https://caucho.com/ caucho
- Resin (software) 위키피디아 - https://en.wikipedia.org/wiki/Resin_(software)
- solinsystem, 〈[Caucho Resin Web Server resin 기술지원 | 문의지원 서비스]〉, 《네이버 블로그》, 2020-03-04
같이 보기