SlideShare una empresa de Scribd logo
1 de 20
초 간단기록.HTTPS 에 대한 간단 설명 과SSL 하드웨어 가속기를 이용한 성능 향상 2011.6.22
문서 안에서의 용어 정리 Http 서버 80포트로 서비스되는 일반적인 웹 서버 Https 서버 (또는 보안 서버) 443포트로 Http 프로토콜에 SSL 보안 통신하는 웹 서버
HTTP/HTTPS 해커 공격 가능 내부 망 * HTTP (80) User Apache Tomcat Network Switch 개인정보가 파라미터로 전달될 수 있음 ID:aa PW : aa1234 주민번호 :111 해커 공격  불가능 * HTTPS (443) HTTPS HTTPS User Apache Tomcat Network Switch 파라미터 정보를 암호화 Asdafklj!234325SDG Certificate설치/설정mod_ssl이용 SSL을 이용 (openssl)
HTTPS 서버의 용도 Https 서버를 통해서 다음을 방지한다. Sniffing 방지 Phishing 방지 데이터 변조
인증서 인증서는 보통  2년 단위로 관리 (1년짜리도 쓰기도 함) 개별 도메인당으로 관리된다. ssl.service.com 웹 브라우져는SSL 연결을 하고 서버 인증서를 받고 어떤 인증서인지 확인한다. 이때 신뢰하는 싸이트(인증기관, CA, Certificate Authority)라면 괜찮지만, 이상하다 싶으면, 주소표시줄 색깔을 달리해서 경고해준다.즉, 웹 브라우져는 인증기관 목록을 미리 가지고 있다.  인증서 내부에서는 Chain이 있다. 즉, 웹 브라우져에서 가지고 있는 내부의 CA 목록에는 없지만, 인증서를 만들 수 있는 조직이 여러 군데 두게 한다. Chain의 최상위에는 웹 브라우져에서 인증하는 CA의 sign된 정보를 바탕으로 SSL 통신을 Valid하게 처리한다.
HTTPS서버의 SSL 통신 리눅스, ssldump툴을 이용 New TCP connection #304: 1.1.1.1(1981) <-> a.service.com(443) 304 1  0.0123 (0.0123)  C>S  Handshake 304 2  0.0127 (0.0004)  S>C  Handshake 304 3  0.0127 (0.0000)  S>C  ChangeCipherSpec 304 4  0.0127 (0.0000)  S>C  Handshake 304 5  0.0202 (0.0074)  C>S  ChangeCipherSpec 304 6  0.0202 (0.0000)  C>S  Handshake 304 7  0.0260 (0.0058)  C>S  application_data 304 8  0.1921 (0.1661)  S>C  application_data 304 9  0.2001 (0.0079)  S>C  application_data 304    0.2001 (0.0000)  S>C  TCP FIN 304    0.2699 (0.0698)  C>S  TCP FIN Wireshark, tcpdump도 많이 도움됨
SSL 통신을 자세하게 보는 방법  openssls_client -connect <https서버도메인>:443 -state -debug
HTTPS는 언제 사용? 현행법상 개인정보를 취급하는 영리 목적의 사업자는 반드시 써야 하는 의무사항임 보안서버가 구축되지 않으면, 1천만원 이하의 과태료가 부가됨 고객 정보를 귀하게 여겨야 함 법률 근거 정보통신망 이용촉진 및 정보보호 등에 관한 법률 28조, 55조, 67조 정보통신망 이용촉진 및 정보보호 등에 관한 법률 시행 규칙 3조 2항 개인정보의 기술적,관리적 보호조치 기준 5조
운영 이슈 2년 마다 한번씩 공인 인증서 발급되어야 한다.  모든 서버에 Certificate 파일을 두어야 한다.  Expire Time에 맞게 잘 배포해야 한다. (스케쥴을 잘 걸어야 함. 잘못하면 서비스 운영 실패!!) 새로 서버를 설치할 때를 위해서인증서를 잘 관리해야 한다. 조직 이동시 인수인계를 잘 해야 함 => 손이 많이 감.
운영이슈 이미지도 SSL?? Apache 쪽으로 요청하는 것들은 Rewrite Rule을 이용하여 http 서버로 이미지 Redirection되게 JSP쪽은 Tag library를 이용하여 이미지 Redirection되게 함.  ,[object Object],[object Object]
개발 서버 (dev,alpha,beta)서버에서는 10년짜리 인증서를 설치하는 게 좋다. => 운영 서버의 인증서만 구입하면 된다.인증서는 최장 25년짜리 까지 만들 수 있음..,[object Object]
성능 이슈 https 서버 리퀘스트가한순간에 몰렸다가 풀리는 상황에서도, CPU는 좀처럼 떨어지지 않았다.                         CPU    %user     %nice   %system   %iowait     %idle 14½Ã 30ºÐ 01ÃÊ       all     32.59      0.01      0.64      2.51     64.24 14½Ã 40ºÐ 04ÃÊ       all     64.21      0.03      2.82      1.43     31.51 14½Ã 50ºÐ 02ÃÊ       all     93.84      0.05      4.44      0.09      1.58                        totsck    tcpsck    udpsck    rawsck   ip-frag 14½Ã 30ºÐ 01ÃÊ       264        71         2         0         0 14½Ã 40ºÐ 04ÃÊ      1758       625         2         0         0 14½Ã 50ºÐ 02ÃÊ      1744       634         2         0         0 15½Ã 00ºÐ 01ÃÊ        72        10         2         0         0 15½Ã 10ºÐ 01ÃÊ      1075       372         2         0         0 15½Ã 20ºÐ 01ÃÊ      1093       408         2         0         0 15½Ã 30ºÐ 01ÃÊ        68        12         2         0         0 15½Ã 40ºÐ 01ÃÊ      1749       637         2         0         0
성능 이슈 http서버 리퀘스트가 한 순간에 몰렸다가 풀리는 상황에서도잘 버틴다.                       totsck    tcpsck    udpsck    rawsck   ip-frag 14½Ã 30ºÐ 01ÃÊ       242        71         2         0         0 14½Ã 40ºÐ 02ÃÊ      1123       519         2         0         0 14½Ã 50ºÐ 01ÃÊ       250        78         2         0         0                           CPU    %user     %nice   %system   %iowait     %idle 14½Ã 30ºÐ 01ÃÊ       all     29.09      0.01      1.25      1.46     68.19 14½Ã 40ºÐ 02ÃÊ       all     34.84      0.04      1.59      1.40     62.12 14½Ã 50ºÐ 01ÃÊ       all     33.19      0.02      1.72      1.55     63.52  
SSL Session 설정 SSH session cache 를 관리 디폴트로 session cache를 쓰지 않는 설정SSLSessionCachenone 아니면, SSH session cache를 사용 클라이언트에서 cache를 사용하는 경우에 사용 가능 Apache 서버의 dbm쓰지 말고, shared memory 쓴다. Cache time은 적당히 지정한다. (당근 성능 테스트하고 결과값을 지정할 줄 알아야 한다.) SSLSessionCache        "shmcb:/위치/ssl_scache(512000)" SSLSessionCacheTimeout  300
SSL Session Cache 설정의 조건 SSL Handshake를 재사용하기 위해서는 클라이언트측의설정이 필요한데 API의 경우 이런 설정을 안하고 호출을 하기 때문에 캐시 재사용을 안 하게 된다. 성능 향상이 없거나, 300초간 저장된 캐시 파일(상황에 다름. 100~200메가 정도의크기)을 정리하는 작업을 Apache가 수행하게 된다.  정리하는 작업을 할 때, request를 대기시켰다가 처리되고 나면, 그 결과로 Apache process가 증가하고, Tomcat의 Thread도 증가해서 503 Server Busy가 발생할 수 있다.. 아예 안쓰는 것도 좋은 방법이 될 수 있다.
성능 이슈 해결 방법 Cpu가 많은 중형서버가 아닌 cpu 2개 정도의 싼 서버로 대수를 늘리는 방법 SSL 하드웨어 가속기를사용한다. (경험) mpeg codec와 muliplexer와 같이 산수가 많이 들어가는 계산은 하드웨어가 가장 낫다!!!
SSL 하드웨어 가속 테스트  Request 파일 사이즈 별로 성능 확인 기억이 안나는데.. SSL 하드웨어 가속기가 달린 장비 설명을 참조함
기타 실제 사용 EverNote… 적용 효과 2x~10x 서비스의 dependency가 있음 (dB bottleneck)
결론 SSL Hardware 가속기가 들어간 L7 스위칭 장비를 활용하면 성능이 좋아짐정말 좋은 것이냐? Https 서비스에 따라서 성능 효과는 달라진다... 테스트는 필요~ 보수적인 운영, 저렴한 장비로 구축한다면 더 많은 서버 장비로 구축해야 함. 다만, 트래픽이 많은 서비스에는 운영하는데 상당히 귀찮을 수 있음 (배포-재시작/설정 변경때문에 시간이 소요됨) HTTPS 사용은 고객의 정보를 소중히 여긴다는 마인드.
Ssl 하드웨어 가속기를 이용한 성능 향상

Más contenido relacionado

La actualidad más candente

Red hat ansible engine 2.7 release(Korean version)
Red hat ansible engine 2.7 release(Korean version)Red hat ansible engine 2.7 release(Korean version)
Red hat ansible engine 2.7 release(Korean version)Leo Song
 
pg_hba.conf 이야기
pg_hba.conf 이야기pg_hba.conf 이야기
pg_hba.conf 이야기PgDay.Seoul
 
한국에서 제일 쉬운 centos7 설치 튜토리얼
한국에서 제일 쉬운 centos7 설치 튜토리얼한국에서 제일 쉬운 centos7 설치 튜토리얼
한국에서 제일 쉬운 centos7 설치 튜토리얼ChoDae
 
Xmpp 세미나
 Xmpp 세미나 Xmpp 세미나
Xmpp 세미나YoungGyu Chun
 
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212ymtech
 
AWS EC2 AMI seminar(KELP 2011)
AWS EC2 AMI seminar(KELP 2011)AWS EC2 AMI seminar(KELP 2011)
AWS EC2 AMI seminar(KELP 2011)Jay Park
 
113 deview2013 varnish-day1_track1_session3_1013
113 deview2013 varnish-day1_track1_session3_1013113 deview2013 varnish-day1_track1_session3_1013
113 deview2013 varnish-day1_track1_session3_1013NAVER D2
 
Wiki academy sysadmin 8_day
Wiki academy sysadmin 8_dayWiki academy sysadmin 8_day
Wiki academy sysadmin 8_dayJo Hoon
 
(OCI 탐험일지) 블록 볼륨 생성
(OCI 탐험일지) 블록 볼륨 생성(OCI 탐험일지) 블록 볼륨 생성
(OCI 탐험일지) 블록 볼륨 생성Jay Park
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치ymtech
 
(OCI 탐험일지) 인스턴스 생성
(OCI 탐험일지) 인스턴스 생성(OCI 탐험일지) 인스턴스 생성
(OCI 탐험일지) 인스턴스 생성Jay Park
 
세미프로젝트 발표자료 파워레인저_20210817
세미프로젝트 발표자료 파워레인저_20210817세미프로젝트 발표자료 파워레인저_20210817
세미프로젝트 발표자료 파워레인저_20210817kimdongyoung7
 
Solaris 11 network virtualization & Server Virtualization for cloud
Solaris 11 network virtualization & Server Virtualization for cloudSolaris 11 network virtualization & Server Virtualization for cloud
Solaris 11 network virtualization & Server Virtualization for cloudsuk kim
 
MySQL workbench 사용하기
MySQL workbench 사용하기MySQL workbench 사용하기
MySQL workbench 사용하기SeungminJang2
 
웹 서비스를 위한 보안서버 구축방향
웹 서비스를 위한 보안서버 구축방향웹 서비스를 위한 보안서버 구축방향
웹 서비스를 위한 보안서버 구축방향FlyHigh Co., LTD.
 
Enterprise Linux 7 new feature_systemd_booting
Enterprise Linux 7 new feature_systemd_bootingEnterprise Linux 7 new feature_systemd_booting
Enterprise Linux 7 new feature_systemd_bootingsuk kim
 
Oracle database 12 c on oracle linux 7.3
Oracle database 12 c on oracle linux 7.3Oracle database 12 c on oracle linux 7.3
Oracle database 12 c on oracle linux 7.3suk kim
 
CentOS 5.3에 Cubrid 설치 방법
CentOS 5.3에 Cubrid 설치 방법CentOS 5.3에 Cubrid 설치 방법
CentOS 5.3에 Cubrid 설치 방법phpkorea
 

La actualidad más candente (20)

Red hat ansible engine 2.7 release(Korean version)
Red hat ansible engine 2.7 release(Korean version)Red hat ansible engine 2.7 release(Korean version)
Red hat ansible engine 2.7 release(Korean version)
 
pg_hba.conf 이야기
pg_hba.conf 이야기pg_hba.conf 이야기
pg_hba.conf 이야기
 
한국에서 제일 쉬운 centos7 설치 튜토리얼
한국에서 제일 쉬운 centos7 설치 튜토리얼한국에서 제일 쉬운 centos7 설치 튜토리얼
한국에서 제일 쉬운 centos7 설치 튜토리얼
 
Lam pstack
Lam pstackLam pstack
Lam pstack
 
Xmpp 세미나
 Xmpp 세미나 Xmpp 세미나
Xmpp 세미나
 
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
 
AWS EC2 AMI seminar(KELP 2011)
AWS EC2 AMI seminar(KELP 2011)AWS EC2 AMI seminar(KELP 2011)
AWS EC2 AMI seminar(KELP 2011)
 
Vnc, ssh
Vnc, sshVnc, ssh
Vnc, ssh
 
113 deview2013 varnish-day1_track1_session3_1013
113 deview2013 varnish-day1_track1_session3_1013113 deview2013 varnish-day1_track1_session3_1013
113 deview2013 varnish-day1_track1_session3_1013
 
Wiki academy sysadmin 8_day
Wiki academy sysadmin 8_dayWiki academy sysadmin 8_day
Wiki academy sysadmin 8_day
 
(OCI 탐험일지) 블록 볼륨 생성
(OCI 탐험일지) 블록 볼륨 생성(OCI 탐험일지) 블록 볼륨 생성
(OCI 탐험일지) 블록 볼륨 생성
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치
 
(OCI 탐험일지) 인스턴스 생성
(OCI 탐험일지) 인스턴스 생성(OCI 탐험일지) 인스턴스 생성
(OCI 탐험일지) 인스턴스 생성
 
세미프로젝트 발표자료 파워레인저_20210817
세미프로젝트 발표자료 파워레인저_20210817세미프로젝트 발표자료 파워레인저_20210817
세미프로젝트 발표자료 파워레인저_20210817
 
Solaris 11 network virtualization & Server Virtualization for cloud
Solaris 11 network virtualization & Server Virtualization for cloudSolaris 11 network virtualization & Server Virtualization for cloud
Solaris 11 network virtualization & Server Virtualization for cloud
 
MySQL workbench 사용하기
MySQL workbench 사용하기MySQL workbench 사용하기
MySQL workbench 사용하기
 
웹 서비스를 위한 보안서버 구축방향
웹 서비스를 위한 보안서버 구축방향웹 서비스를 위한 보안서버 구축방향
웹 서비스를 위한 보안서버 구축방향
 
Enterprise Linux 7 new feature_systemd_booting
Enterprise Linux 7 new feature_systemd_bootingEnterprise Linux 7 new feature_systemd_booting
Enterprise Linux 7 new feature_systemd_booting
 
Oracle database 12 c on oracle linux 7.3
Oracle database 12 c on oracle linux 7.3Oracle database 12 c on oracle linux 7.3
Oracle database 12 c on oracle linux 7.3
 
CentOS 5.3에 Cubrid 설치 방법
CentOS 5.3에 Cubrid 설치 방법CentOS 5.3에 Cubrid 설치 방법
CentOS 5.3에 Cubrid 설치 방법
 

Destacado

JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝Mungyu Choi
 
[4]iv.경험디자인을 통한 생산성 향상 coex 110822
[4]iv.경험디자인을 통한 생산성 향상 coex 110822[4]iv.경험디자인을 통한 생산성 향상 coex 110822
[4]iv.경험디자인을 통한 생산성 향상 coex 110822uEngine Solutions
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Minchul Jung
 
경영 혁신 15.10.25
경영 혁신 15.10.25경영 혁신 15.10.25
경영 혁신 15.10.25Jisubi
 
Ch10.애플리케이션 서버의 병목_발견_방법
Ch10.애플리케이션 서버의 병목_발견_방법Ch10.애플리케이션 서버의 병목_발견_방법
Ch10.애플리케이션 서버의 병목_발견_방법Minchul Jung
 
H/W 규모산정기준
H/W 규모산정기준H/W 규모산정기준
H/W 규모산정기준sam Cyberspace
 
[메조미디어] Man 네트워크 소개서 2015 version6_2
[메조미디어] Man 네트워크 소개서 2015 version6_2[메조미디어] Man 네트워크 소개서 2015 version6_2
[메조미디어] Man 네트워크 소개서 2015 version6_2Jiwon Yoon
 
UNUS BEANs 소개서 20141015
UNUS BEANs 소개서 20141015UNUS BEANs 소개서 20141015
UNUS BEANs 소개서 20141015YoungMin Jeon
 
홍익경영혁신2015 b131378
홍익경영혁신2015 b131378홍익경영혁신2015 b131378
홍익경영혁신2015 b131378Jisubi
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝Mungyu Choi
 
생산성 측정을 통한 인력관리의 혁신
생산성 측정을 통한 인력관리의 혁신생산성 측정을 통한 인력관리의 혁신
생산성 측정을 통한 인력관리의 혁신Minsu Kim
 
TTA H/W 규모산정 지침 Ttak.ko 10.0292
TTA H/W 규모산정 지침 Ttak.ko 10.0292TTA H/W 규모산정 지침 Ttak.ko 10.0292
TTA H/W 규모산정 지침 Ttak.ko 10.0292sam Cyberspace
 
안드로이드 리스트뷰 최적화 사례 연구
안드로이드 리스트뷰 최적화 사례 연구안드로이드 리스트뷰 최적화 사례 연구
안드로이드 리스트뷰 최적화 사례 연구Hyun Cheol
 
어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법Daniel Kim
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림우림 류
 
람다아키텍처
람다아키텍처람다아키텍처
람다아키텍처HyeonSeok Choi
 

Destacado (16)

JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝
 
[4]iv.경험디자인을 통한 생산성 향상 coex 110822
[4]iv.경험디자인을 통한 생산성 향상 coex 110822[4]iv.경험디자인을 통한 생산성 향상 coex 110822
[4]iv.경험디자인을 통한 생산성 향상 coex 110822
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1
 
경영 혁신 15.10.25
경영 혁신 15.10.25경영 혁신 15.10.25
경영 혁신 15.10.25
 
Ch10.애플리케이션 서버의 병목_발견_방법
Ch10.애플리케이션 서버의 병목_발견_방법Ch10.애플리케이션 서버의 병목_발견_방법
Ch10.애플리케이션 서버의 병목_발견_방법
 
H/W 규모산정기준
H/W 규모산정기준H/W 규모산정기준
H/W 규모산정기준
 
[메조미디어] Man 네트워크 소개서 2015 version6_2
[메조미디어] Man 네트워크 소개서 2015 version6_2[메조미디어] Man 네트워크 소개서 2015 version6_2
[메조미디어] Man 네트워크 소개서 2015 version6_2
 
UNUS BEANs 소개서 20141015
UNUS BEANs 소개서 20141015UNUS BEANs 소개서 20141015
UNUS BEANs 소개서 20141015
 
홍익경영혁신2015 b131378
홍익경영혁신2015 b131378홍익경영혁신2015 b131378
홍익경영혁신2015 b131378
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
 
생산성 측정을 통한 인력관리의 혁신
생산성 측정을 통한 인력관리의 혁신생산성 측정을 통한 인력관리의 혁신
생산성 측정을 통한 인력관리의 혁신
 
TTA H/W 규모산정 지침 Ttak.ko 10.0292
TTA H/W 규모산정 지침 Ttak.ko 10.0292TTA H/W 규모산정 지침 Ttak.ko 10.0292
TTA H/W 규모산정 지침 Ttak.ko 10.0292
 
안드로이드 리스트뷰 최적화 사례 연구
안드로이드 리스트뷰 최적화 사례 연구안드로이드 리스트뷰 최적화 사례 연구
안드로이드 리스트뷰 최적화 사례 연구
 
어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림
 
람다아키텍처
람다아키텍처람다아키텍처
람다아키텍처
 

Similar a Ssl 하드웨어 가속기를 이용한 성능 향상

HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명Seongho Lee
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해InGuen Hwang
 
Accelerate spring boot application with apache ignite
Accelerate spring boot application with apache igniteAccelerate spring boot application with apache ignite
Accelerate spring boot application with apache igniteYEON BOK LEE
 
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurationsJohn Kim
 
20201217 ssl and http2
20201217 ssl and http220201217 ssl and http2
20201217 ssl and http2sonhyungsoo
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?nexusz99
 
Mcollective orchestration tool 소개
Mcollective orchestration tool 소개Mcollective orchestration tool 소개
Mcollective orchestration tool 소개태준 문
 
한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic한국청소년정보과학회
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQLI Goo Lee
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js연웅 조
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceXionglong Jin
 
HTTPS를 이용한 챗봇 웹 어플리케이션
HTTPS를 이용한 챗봇 웹 어플리케이션HTTPS를 이용한 챗봇 웹 어플리케이션
HTTPS를 이용한 챗봇 웹 어플리케이션Lee Geonhee
 
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요dgmit2009
 
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)Osc Osc
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용noerror
 

Similar a Ssl 하드웨어 가속기를 이용한 성능 향상 (20)

HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해
 
Accelerate spring boot application with apache ignite
Accelerate spring boot application with apache igniteAccelerate spring boot application with apache ignite
Accelerate spring boot application with apache ignite
 
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurations
 
20201217 ssl and http2
20201217 ssl and http220201217 ssl and http2
20201217 ssl and http2
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
 
Mcollective orchestration tool 소개
Mcollective orchestration tool 소개Mcollective orchestration tool 소개
Mcollective orchestration tool 소개
 
Redis
RedisRedis
Redis
 
Servlet3
Servlet3Servlet3
Servlet3
 
한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQL
 
OpenStack Swift Debugging
OpenStack Swift DebuggingOpenStack Swift Debugging
OpenStack Swift Debugging
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
HTTPS를 이용한 챗봇 웹 어플리케이션
HTTPS를 이용한 챗봇 웹 어플리케이션HTTPS를 이용한 챗봇 웹 어플리케이션
HTTPS를 이용한 챗봇 웹 어플리케이션
 
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
 
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용
 

Más de knight1128

Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)knight1128
 
Spring MVC 3 Restful
Spring MVC 3 RestfulSpring MVC 3 Restful
Spring MVC 3 Restfulknight1128
 
Jersey framework
Jersey frameworkJersey framework
Jersey frameworkknight1128
 
Google Protocol buffer
Google Protocol bufferGoogle Protocol buffer
Google Protocol bufferknight1128
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicknight1128
 
Jdk(java) 7 - 6 기타기능
Jdk(java) 7 - 6 기타기능Jdk(java) 7 - 6 기타기능
Jdk(java) 7 - 6 기타기능knight1128
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoinknight1128
 
공유 Jdk 7-2-project coin
공유 Jdk 7-2-project coin공유 Jdk 7-2-project coin
공유 Jdk 7-2-project coinknight1128
 
공유 Jdk 7-1-short introduction
공유 Jdk 7-1-short introduction공유 Jdk 7-1-short introduction
공유 Jdk 7-1-short introductionknight1128
 
아마존 Aws 서비스_연구
아마존 Aws 서비스_연구아마존 Aws 서비스_연구
아마존 Aws 서비스_연구knight1128
 
구글크롬Os
구글크롬Os구글크롬Os
구글크롬Osknight1128
 
하이브리드앱
하이브리드앱하이브리드앱
하이브리드앱knight1128
 
오픈소스를 활용한 Batch_처리_플랫폼_공유
오픈소스를 활용한 Batch_처리_플랫폼_공유오픈소스를 활용한 Batch_처리_플랫폼_공유
오픈소스를 활용한 Batch_처리_플랫폼_공유knight1128
 

Más de knight1128 (18)

Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
 
Comet
CometComet
Comet
 
Apache avro
Apache avroApache avro
Apache avro
 
Apache Thrift
Apache ThriftApache Thrift
Apache Thrift
 
Spring MVC 3 Restful
Spring MVC 3 RestfulSpring MVC 3 Restful
Spring MVC 3 Restful
 
Jersey framework
Jersey frameworkJersey framework
Jersey framework
 
Google Protocol buffer
Google Protocol bufferGoogle Protocol buffer
Google Protocol buffer
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
 
Jdk(java) 7 - 6 기타기능
Jdk(java) 7 - 6 기타기능Jdk(java) 7 - 6 기타기능
Jdk(java) 7 - 6 기타기능
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
 
Jdk 7 3-nio2
Jdk 7 3-nio2Jdk 7 3-nio2
Jdk 7 3-nio2
 
공유 Jdk 7-2-project coin
공유 Jdk 7-2-project coin공유 Jdk 7-2-project coin
공유 Jdk 7-2-project coin
 
공유 Jdk 7-1-short introduction
공유 Jdk 7-1-short introduction공유 Jdk 7-1-short introduction
공유 Jdk 7-1-short introduction
 
아마존 Aws 서비스_연구
아마존 Aws 서비스_연구아마존 Aws 서비스_연구
아마존 Aws 서비스_연구
 
속도체크
속도체크속도체크
속도체크
 
구글크롬Os
구글크롬Os구글크롬Os
구글크롬Os
 
하이브리드앱
하이브리드앱하이브리드앱
하이브리드앱
 
오픈소스를 활용한 Batch_처리_플랫폼_공유
오픈소스를 활용한 Batch_처리_플랫폼_공유오픈소스를 활용한 Batch_처리_플랫폼_공유
오픈소스를 활용한 Batch_처리_플랫폼_공유
 

Ssl 하드웨어 가속기를 이용한 성능 향상

  • 1. 초 간단기록.HTTPS 에 대한 간단 설명 과SSL 하드웨어 가속기를 이용한 성능 향상 2011.6.22
  • 2. 문서 안에서의 용어 정리 Http 서버 80포트로 서비스되는 일반적인 웹 서버 Https 서버 (또는 보안 서버) 443포트로 Http 프로토콜에 SSL 보안 통신하는 웹 서버
  • 3. HTTP/HTTPS 해커 공격 가능 내부 망 * HTTP (80) User Apache Tomcat Network Switch 개인정보가 파라미터로 전달될 수 있음 ID:aa PW : aa1234 주민번호 :111 해커 공격 불가능 * HTTPS (443) HTTPS HTTPS User Apache Tomcat Network Switch 파라미터 정보를 암호화 Asdafklj!234325SDG Certificate설치/설정mod_ssl이용 SSL을 이용 (openssl)
  • 4. HTTPS 서버의 용도 Https 서버를 통해서 다음을 방지한다. Sniffing 방지 Phishing 방지 데이터 변조
  • 5. 인증서 인증서는 보통 2년 단위로 관리 (1년짜리도 쓰기도 함) 개별 도메인당으로 관리된다. ssl.service.com 웹 브라우져는SSL 연결을 하고 서버 인증서를 받고 어떤 인증서인지 확인한다. 이때 신뢰하는 싸이트(인증기관, CA, Certificate Authority)라면 괜찮지만, 이상하다 싶으면, 주소표시줄 색깔을 달리해서 경고해준다.즉, 웹 브라우져는 인증기관 목록을 미리 가지고 있다. 인증서 내부에서는 Chain이 있다. 즉, 웹 브라우져에서 가지고 있는 내부의 CA 목록에는 없지만, 인증서를 만들 수 있는 조직이 여러 군데 두게 한다. Chain의 최상위에는 웹 브라우져에서 인증하는 CA의 sign된 정보를 바탕으로 SSL 통신을 Valid하게 처리한다.
  • 6. HTTPS서버의 SSL 통신 리눅스, ssldump툴을 이용 New TCP connection #304: 1.1.1.1(1981) <-> a.service.com(443) 304 1  0.0123 (0.0123)  C>S  Handshake 304 2  0.0127 (0.0004)  S>C  Handshake 304 3  0.0127 (0.0000)  S>C  ChangeCipherSpec 304 4  0.0127 (0.0000)  S>C  Handshake 304 5  0.0202 (0.0074)  C>S  ChangeCipherSpec 304 6  0.0202 (0.0000)  C>S  Handshake 304 7  0.0260 (0.0058)  C>S  application_data 304 8  0.1921 (0.1661)  S>C  application_data 304 9  0.2001 (0.0079)  S>C  application_data 304    0.2001 (0.0000)  S>C  TCP FIN 304    0.2699 (0.0698)  C>S  TCP FIN Wireshark, tcpdump도 많이 도움됨
  • 7. SSL 통신을 자세하게 보는 방법 openssls_client -connect <https서버도메인>:443 -state -debug
  • 8. HTTPS는 언제 사용? 현행법상 개인정보를 취급하는 영리 목적의 사업자는 반드시 써야 하는 의무사항임 보안서버가 구축되지 않으면, 1천만원 이하의 과태료가 부가됨 고객 정보를 귀하게 여겨야 함 법률 근거 정보통신망 이용촉진 및 정보보호 등에 관한 법률 28조, 55조, 67조 정보통신망 이용촉진 및 정보보호 등에 관한 법률 시행 규칙 3조 2항 개인정보의 기술적,관리적 보호조치 기준 5조
  • 9. 운영 이슈 2년 마다 한번씩 공인 인증서 발급되어야 한다. 모든 서버에 Certificate 파일을 두어야 한다. Expire Time에 맞게 잘 배포해야 한다. (스케쥴을 잘 걸어야 함. 잘못하면 서비스 운영 실패!!) 새로 서버를 설치할 때를 위해서인증서를 잘 관리해야 한다. 조직 이동시 인수인계를 잘 해야 함 => 손이 많이 감.
  • 10.
  • 11.
  • 12. 성능 이슈 https 서버 리퀘스트가한순간에 몰렸다가 풀리는 상황에서도, CPU는 좀처럼 떨어지지 않았다.                         CPU    %user     %nice   %system   %iowait     %idle 14½Ã 30ºÐ 01ÃÊ       all     32.59      0.01      0.64      2.51     64.24 14½Ã 40ºÐ 04ÃÊ       all     64.21      0.03      2.82      1.43     31.51 14½Ã 50ºÐ 02ÃÊ       all     93.84      0.05      4.44      0.09      1.58                        totsck    tcpsck    udpsck    rawsck   ip-frag 14½Ã 30ºÐ 01ÃÊ       264        71         2         0         0 14½Ã 40ºÐ 04ÃÊ      1758       625         2         0         0 14½Ã 50ºÐ 02ÃÊ      1744       634         2         0         0 15½Ã 00ºÐ 01ÃÊ        72        10         2         0         0 15½Ã 10ºÐ 01ÃÊ      1075       372         2         0         0 15½Ã 20ºÐ 01ÃÊ      1093       408         2         0         0 15½Ã 30ºÐ 01ÃÊ        68        12         2         0         0 15½Ã 40ºÐ 01ÃÊ      1749       637         2         0         0
  • 13. 성능 이슈 http서버 리퀘스트가 한 순간에 몰렸다가 풀리는 상황에서도잘 버틴다.                       totsck    tcpsck    udpsck    rawsck   ip-frag 14½Ã 30ºÐ 01ÃÊ       242        71         2         0         0 14½Ã 40ºÐ 02ÃÊ      1123       519         2         0         0 14½Ã 50ºÐ 01ÃÊ       250        78         2         0         0                           CPU    %user     %nice   %system   %iowait     %idle 14½Ã 30ºÐ 01ÃÊ       all     29.09      0.01      1.25      1.46     68.19 14½Ã 40ºÐ 02ÃÊ       all     34.84      0.04      1.59      1.40     62.12 14½Ã 50ºÐ 01ÃÊ       all     33.19      0.02      1.72      1.55     63.52  
  • 14. SSL Session 설정 SSH session cache 를 관리 디폴트로 session cache를 쓰지 않는 설정SSLSessionCachenone 아니면, SSH session cache를 사용 클라이언트에서 cache를 사용하는 경우에 사용 가능 Apache 서버의 dbm쓰지 말고, shared memory 쓴다. Cache time은 적당히 지정한다. (당근 성능 테스트하고 결과값을 지정할 줄 알아야 한다.) SSLSessionCache        "shmcb:/위치/ssl_scache(512000)" SSLSessionCacheTimeout  300
  • 15. SSL Session Cache 설정의 조건 SSL Handshake를 재사용하기 위해서는 클라이언트측의설정이 필요한데 API의 경우 이런 설정을 안하고 호출을 하기 때문에 캐시 재사용을 안 하게 된다. 성능 향상이 없거나, 300초간 저장된 캐시 파일(상황에 다름. 100~200메가 정도의크기)을 정리하는 작업을 Apache가 수행하게 된다. 정리하는 작업을 할 때, request를 대기시켰다가 처리되고 나면, 그 결과로 Apache process가 증가하고, Tomcat의 Thread도 증가해서 503 Server Busy가 발생할 수 있다.. 아예 안쓰는 것도 좋은 방법이 될 수 있다.
  • 16. 성능 이슈 해결 방법 Cpu가 많은 중형서버가 아닌 cpu 2개 정도의 싼 서버로 대수를 늘리는 방법 SSL 하드웨어 가속기를사용한다. (경험) mpeg codec와 muliplexer와 같이 산수가 많이 들어가는 계산은 하드웨어가 가장 낫다!!!
  • 17. SSL 하드웨어 가속 테스트 Request 파일 사이즈 별로 성능 확인 기억이 안나는데.. SSL 하드웨어 가속기가 달린 장비 설명을 참조함
  • 18. 기타 실제 사용 EverNote… 적용 효과 2x~10x 서비스의 dependency가 있음 (dB bottleneck)
  • 19. 결론 SSL Hardware 가속기가 들어간 L7 스위칭 장비를 활용하면 성능이 좋아짐정말 좋은 것이냐? Https 서비스에 따라서 성능 효과는 달라진다... 테스트는 필요~ 보수적인 운영, 저렴한 장비로 구축한다면 더 많은 서버 장비로 구축해야 함. 다만, 트래픽이 많은 서비스에는 운영하는데 상당히 귀찮을 수 있음 (배포-재시작/설정 변경때문에 시간이 소요됨) HTTPS 사용은 고객의 정보를 소중히 여긴다는 마인드.