웹세션클러스터링 KHAN [session manager] 오픈나루 전준식 (010-5120-3249) service@opennaru.com
Header text opennaru.com 2013 All Rights Reserved 1
미들웨어 () 제품의구분 클러스터링기능유무에따라 Enterprise 버전과 Standard 버전으로나뉨 Clustering 포함되는기능은 EJB,, JNDI 등의상태를저장 / 유지하고장애시자동복구 클러스터링기능중가장많이사용되는기능은 웹세션클러스터링 Source : http://patriotek.com/wp-content/downloads/oracle_weblogic_server_feature_matrix.pdf opennaru.com 2013 All Rights Reserved 2
Enterprise 제품과 Standard 제품의가격비교 Oracle 과 TMAXSoft 제품의경우클러스터링유무에따라 Enterprise 와 Standard 제품으로구분되며, 2 배이상의가격차이가있음 JEUS Enterprise vs. Standard WebLogic Enteprise vs. Standard 35,000,000 31,900,000 40,000,000 37,617,800 30,000,000 35,000,000 25,000,000 30,000,000 20,000,000 16,500,000 25,000,000 20,000,000 15,048,000 15,000,000 15,000,000 10,000,000 10,000,000 5,000,000 5,000,000 0 JEUS@Enterprise JEUS@Standard 0 WebLogic Enterprise WebLogic Standard [TMAXSoft JEUS 가격구분 (Core/ 원 )] [Oracle WebLogic 가격구분 (Core/ 원 )] Source : http://softwarecatalog.co.kr/ opennaru.com 2013 All Rights Reserved 3
Header text opennaru.com 2013 All Rights Reserved 4
클러스터링이슈 고가용성실현을위한방안수립 현재 에서제공하는세션클러스터링으로는해결이어렵다. 과도한세션사용으로긴 GC 시간과 OOM 장애발생 작업시세션데이터동기화와복제에따른부하발생 애플리케이션간세션공유를통한싱글로그온구현 중복로그인방지나강제로그아웃등세션을통한보안강화 Real Voice opennaru.com 2013 All Rights Reserved 5
세션복제방식 Http 세션복제목적 장애시세션정보보호 Distributed (All-to-All 이아닌경우 ) 일때로드밸런서의 Sticky 설정 문제점 간에세션정보를복제하여 의대수를늘려도세션정보저장영역은스케일아웃불가 (Replicated) 세션정보저장영역을늘리기위해서는 JVM 의 Heap 사이즈를늘릴수있지만너무늘리면 Full GC 처리시간때문에장애요인발생 이기종의 또는웹애플리케이션간세션정보공유불가 비효율적인메모리사용 Web App Http 세션영역 웹서버 를이용한클러스터링 웹서버 Web App Http 세션영역 웹서버 Web App Http 세션영역 웹서버 Web App Http 세션영역 세션클러스터링 opennaru.com 2013 All Rights Reserved 6
세션복제 ( Data Grid 방식 ) Data Grid 방식의이점 장애발생시세션데이터보호 세션정보를분산하여세션저장영역에대한스케일아웃 대용량으로 Http 데이터를사용하는웹애플리케이션 High Volume 웹애플리케이션혹은부적절하게설계된 Http 을사용하는웹애플리케이션에적용 Heap 사이즈를크게하는것이아니라 JVM 의프로세스수를늘리는것으로 Full GC 의악영향을회피하면서시스템을확장 유휴 H/W 메모리활용 이기종의 AP 서버간의세션정보공유 웹애플리케이션간세션정보공유 Data Grid 를이용한클러스터링 웹서버 웹서버 웹서버 웹서버 Web App Web App Web App Web App Http 세션영역 Http 세션영역 Http 세션영역 Http 세션영역 세션클러스터링 Data Grid Data Grid Data Grid Data Grid opennaru.com 2013 All Rights Reserved 7
세션클러스터링구성방식별차이점 간구성세션서버구성세션데이터그리드구성 Clustering 백업 Clustering 세션서버 Clustering 데이터그리드 항목 내장세션관리별도세션관리서버데이터그리드기반세션관리 구현방법 세션데이터별 Primary/Backup 인스턴스를지정하여공유 별도의세션서버운영 데이터그리드에세션정보를저장하여운영 장점 별도의서버와인프라없이가능 인스턴스간애플리케이션간세션공유설정이용이 인스턴스와애플리케이션간세션공유용이 Elastic 확장성과안정성부장 단점 세션데이터의백업및동기화이슈 인스턴스장애와함께세션복제의이슈가발생 단일장애지점과별도의서버구성에따른비용 제한적인안정성 낮은성능 별도의서버구성으로인한비용발생 관리포인트증가 메모리기반고성능 제품 JBoss EAP WebLogic, WebSphere JEUS JBoss EAP + JBoss Data Grid Coherence*Web opennaru.com 2013 All Rights Reserved 8
와 Data Grid 를이용한세션클러스터링비교 세션정보를데이터그리드에저장하여 의부하를감소 세션수가증가하더라도데이터그리드를추가하여확장 를이용한클러스터링 Data Grid 를이용한클러스터링 웹서버 웹서버 웹서버 웹서버 웹서버 웹서버 웹서버 웹서버 Web App Web App Web App Web App Web App Web App Web App Web App Http 세션영역 Http 세션영역 Http 세션영역 Http 세션영역 세션클러스터링 Http 세션영역 Http 세션영역 Http 세션영역 Http 세션영역 세션클러스터링 Data Grid Data Grid Data Grid Data Grid opennaru.com 2013 All Rights Reserved 9
Header text opennaru.com 2013 All Rights Reserved 10
KHAN Manager : 다른 제품간의세션클러스터링 이기종의 와웹애플리케이션간의세션정보를공유 지원하는 - WebLogic Server / Tomcat / JBoss Counter /session1 /session2 /session1 /session2 /session1 /session2 서로다른웹애플리케이션간세션공유 서로다른 간세션공유 8181 포트 8080 포트 7001 포트 Clustering(dist) DataGrid DataGrid DataGrid DataGrid opennaru.com 2013 All Rights Reserved 11
KHAN Manager 가필요할때 - Use Cases Apache Tomcat 에서세션클러스터링이필요할때 서로다른웹애플리케이션간의세션공유를원할때 웹클러스터링을안정적인환경에서운영하고싶을때 중복로그인방지기능이필요할때 WebLogic Standard Ed. 에세션클러스터링이필요할때 opennaru.com 2013 All Rights Reserved 12
KHAN [session manager] 구성방식 간구성 간 + 데이터그리드구성세션데이터그리드만구성 Clustering Clustering Clustering 데이터그리드 Clustering 데이터그리드 항목 간세션관리별도세션관리서버데이터그리드기반세션관리 구현방법 세션데이터별 Primary/Backup 인스턴스를지정하여공유 간세션을데이터를일부공유하고나머지데이터는데이터그리드에저장하여운영 데이터그리드에세션정보를저장하여운영 장점 별도의서버와인프라없이가능 인스턴스와애플리케이션간세션공유용이 확장성과안정성보장 성능보장 인스턴스와애플리케이션간세션공유용이 Elastic 확장성과안정성보장 단점 세션데이터의백업및동기화이슈 인스턴스장애와함께세션복제의이슈가발생 관리포인트증가 별도의서버구성이필요함 별도의서버구성으로인한비용발생 관리포인트증가 네트워크로인한성능저하 opennaru.com 2013 All Rights Reserved 13
다양한웹애플리케이션서버지원 Servlet 표준을사용하기때문에코드변경은없음 Servlet 표준 web.xml 에설정추가 계속테스트, 추가중 opennaru.com 2013 All Rights Reserved 14
주요기능 서로다른웹애플리케이션간세션공유 중복로그인방지 put NAME KHAN 1 get NAME KHAN 2 3 Force Logout Login ID : opennaru Login ID : opennaru App1 Sharing App2 1 App1 2 Web Application Server Web Application Server opennaru.com 2013 All Rights Reserved 15
주요기능 세션타입아웃제어 다양한토폴로지지원 Clustering Clustering Clustering 데이터그리드 Clustering 데이터그리드 opennaru.com 2013 All Rights Reserved 16
주요기능 세션생성, 소멸, 중복로그인수모니터링 세션의메모리사이즈모니터링 opennaru.com 2013 All Rights Reserved 17
Header text opennaru.com 2013 All Rights Reserved 18
세션데이터부하에따른인스턴스확장방안 1 #1 #2 #3 #4 #N 2 App App App App App Http Time Http Http Http Http 1 - - 1-1 - 1-1 N N N N N 관리작업시세션복제부하발생 주요 관리작업시세션복제부하발생 1. 인스턴스재시작시세션복제발생 인스턴스재시작시소유하고있던세션을다른인스턴스에백업 2. 애플리케이션재배포시세션복제발생 웹애플리케이션재배포시세션을백업하고새로운세션을생성함 #1 #2 #3 Http DataGrid Module Http DataGrid Module Http DataGrid Module Tier Data Grid Tier DataGrid #1 DataGrid #2 DataGrid #3 DataGrid #N Http Http Http Http 와분리하여그리드에서세션관리 관리와성능향상 세션동기화와복제를배제하여성능향상 세션데이터에의한 OOM 해결 전체 장애시에도세션데이터유지 효율적인세션공유 서로다른애플리케이션세션공유 중복로그인방지 세션관리 opennaru.com 2013 All Rights Reserved 19
클러스터링 vs. KHAN [session manager] 항목 세션클러스터링 KHAN [sesision manager] 세션클러스터링 Data Grid vs. Clustering 아키텍처 안정성 성능 해당인스턴스와다른인스턴스에세션데이터를복제하고동기화하여관리 과도한세션사용시 OOM 메모리장애발생 세션데이터에의한 GC 가장시간발생 인스턴스관리세션복제와동기화에따른성능이슈 확장성 인스턴스확장 세션관리 인스턴스재시작시세션동기화와복제 애플리케이션배포시세션동기화와복제 애플리케이션별세션정보관리 데이터그리드 세션데이터를데이터그리드에저장하고공유하기때문에거래가증가되어도가용성을 유지한채안정적으로분산관리가능 노드장애시상호공유된세션정보를통해세션유실방지 세션복제나동기화과정이생략되어신속한 관리작업이가능 애플리케이션메모리와세션메모리를분리하여예측가능한확장성보장 인스턴스재시작시세션복제작업제거 애플리케이션재배포시세션복제작업제거 복수의애플리케이션간세션정보공유 Clustering opennaru.com 2013 All Rights Reserved 20
Header text opennaru.com 2013 All Rights Reserved 21
Filter Listener Store MBean Web Server (Proxy) Filter Listener Store MBean KHAN [session manager] - Data Grid 내부아키텍처 Data Grid Server (Optional) Web Application Data Grid Server Web Application Server Clustering Web Web Login Info Login Info Web Login Info Web Application Web Data Grid Server Login Info Web Application Server KHAN [session manager] 구조도 opennaru.com 2013 All Rights Reserved 22
Filter Listener Store MBean Web Server (Proxy) Filter Listener Store MBean KHAN [session manager] Redis 내부아키텍처 Redis Server Web Application Redis Server Web Application Server Web Web Login Info Login Info Web Login Info Web Application Web Redis Server Login Info Web Application Server KHAN [session manager] 구조도 opennaru.com 2013 All Rights Reserved 23
Header text opennaru.com 2013 All Rights Reserved 24
데모시스템환경구성 Counter browser /session1 /session2 /session1 /session2 /session1 /session2 Clustering(dist) 8181 포트 8080 포트 7001 포트 Clustering(dist) Data Grid Server opennaru.com 2013 All Rights Reserved 25
세션클러스터링테스트 방식 Library Mode 방식 Hotrod 방식 Redis Store 방식 테스트애플리케이션 세션 ID 정보표시 세션의메타데이터표시 세션카운터증가확인 로그인정보표시 세션리스너테스트 세션에임의의값추가 opennaru.com 2013 All Rights Reserved 26
애플리케이션부하테스트및모니터링 샘플애플리케이션에대한부하테스트 부하테스트상황에서 KHAN [session manager] 가제공하는 MBean 의정보모니터링 opennaru.com 2013 All Rights Reserved 27
Header text opennaru.com 2013 All Rights Reserved 28
KHAN [session manager] 데모아키텍처 전자정부프레임워크 - 포탈 KHAN Manager WebLogic 사용자포탈 웹서버 전자정부프레임워크 - 업무 KHAN Manager JBoss Datagrid 전자정부프레임워크 - 단순 KHAN Manager Tomcat opennaru.com 2013 All Rights Reserved 29
KHAN [session manager] 데모시나리오 (1) 로그인접속 (2) 세션유무확인 (3) 데이터베이스확인 (4) 로그인성공전자정부프레임워크 - 포탈 1. 업무페이지로그인 KHAN Manager 6. 업무페이지로그아웃 WebLogic (1) 로그인접속 (2) 세션유무확인 웹서버 2. 단순페이지로그인 5. 단순페이지로그아웃 (3) 데이터베이스확인 (4) 로그인성공전자정부프레임워크 - 업무 KHAN Manager Datagrid JBoss 3. 포탈페이지로그인 4. 포탈페이지로그아웃 (1) 로그인접속 (2) 세션유무확인 (3) 데이터베이스확인 (4) 로그인성공전자정부프레임워크 - 단순 KHAN Manager Tomcat opennaru.com 2013 All Rights Reserved 30
KHAN [session manager] 시스템구성도 Apache HTTPD CentOS 6.5 x86_64 IP : 192.168.10.9 80 전자정부프레임워크 ( 업무 ) 전자정부프레임워크 ( 포탈 ) 전자정부프레임워크 ( 단순 ) JBoss EAP 6.3 WebLogic 12c Tomcat 7.0 8180 7001 8380 MySQL Datagrid Datagrid CentOS 6.5 x86_64 IP : 192.168.10.8 11322 11422 opennaru.com 2013 All Rights Reserved 31
KHAN [provisioning] JBoss EAP, Tomcat, JBoss Data Grid 설치도지원 OS 만설치되어있으면수분이내에설치환경을테스트하고웹서버와 서버를설치하고즉시서비스할수있는환경제공 미들웨어전문가가아니어도전문가수준의시스템튜닝이나난이도높은구성을할수있도록기능제공 서버구성에대한정보만입력하면한대에서수십대까지규모에상관없이자동으로웹시스템운영환경을구성 웹시스템설치 / 구성보고서를시스템에맞게자동으로생성하여개발팀과운영팀에게제공 수분내튜닝된웹서버와 서버로웹시스템구축 opennaru.com 2013 All Rights Reserved 32
KHAN Provisioning 기대효과 웹시스템구성하는데 몇일? 튜닝은? 설치보고서는? 웹시스템자동화기대효과 몇일이상 서버 몇일 웹시스템구성 - 90% 단축 구성테스트 인스턴스구성 JBoss설치 Java설치 4 시간 8 시간 2시간 2시간 Application JBoss Instance JBoss Java 수작업설치및구성 1 시간 KHAN Provisioning OS 설치 1 일 Linux 하드웨어설치 Network 구성 1 일 2 시간 1 시간이내 웹시스템인스턴스자동구성 기본튜닝 설치보고서 opennaru.com 2013 All Rights Reserved 33
전자정부프레임워크애플리케이션간의 Single Sign On 테스트 1) 업무에서로그인 포탈 / 홈페이지에접근하면로그인되어있음 2) 포탈에서로그아웃 홈페이지 / 업무를 Refresh 하면로그아웃되어있음 전자정부프레임워크 - 포탈 전자정부프레임워크 - 업무 전자정부프레임워크 - 단순 opennaru.com 2013 All Rights Reserved 34
Header text opennaru.com 2013 All Rights Reserved 35
KHAN 세션매니저도입시 5 년간 TCO 비교 시중에판매되고있는 A 사의클러스터링을제품의 소비자실판매가를기준 4 Core 기준 오픈소스를자체기술로 활용할수있음 opennaru.com 2013 All Rights Reserved 36
5 년을기준으로도입과유지보수비용을비교 무료자체기술로사용할수있음 전문업체기술지원을받아도 72% 이상절감효과 opennaru.com 2013 All Rights Reserved 37
적용사례 : 모공공기관대국민서비스시스템 KHAN [session manager] 를이용한안정적인세션클러스터링환경구축 KHAN [provisioning] 을통한구축시간감소 JBoss EWS, JBoss EAP, JBoss Data Grid 116개머신 설치 / 구성 / 튜닝 3시간이내완료 환경자동구성 배포환경, 테스트환경자동구성 장애포인트최소화 제품머신수인스턴스수 JBoss EWS 웹서버 44 44 JBoss EAP 56 108 JBoss Data Grid 16 34 Total 116 186 opennaru.com 2013 All Rights Reserved 38
Header text opennaru.com 2013 All Rights Reserved 39