ucloud biz 사용자교육 I. ucloud biz 서비스의이해 2. ucloud biz 기반의시스템구조설계 Cloud 기술팀 2015.4.24
2-1 고객시스템환경에대한기본적인이해 (1/1) (Virtual Router) Active Standby 고객 VM VM (Virtual Machine) : 가상서버 각각의고객계정은 VLAN 으로분리되어있다 (Virtual Router) : 고객 VM 과계정외부와의통신은 이중개한다. 은 NAT, 방화벽, DHCP 등의역할을담당한다. 은 Active-Standby 이중화된리눅스서버로구현되어있다 NAT : 고객계정별로하나의공인 IP 주소가할당되며, 필요시추가할수있다. 계정의모든공인 IP 주소는 NAT 역할을하는 이소유한다 방화벽 : inbound 트래픽의 source IP/port 를허가할수있다 DHCP : 고객 VM 에게사설 IP 주소를부여한다 사설 IP 주소 : 고객계정별로하나의사설망이할당되며, 고객의 VM 은사설 IP 주소를부여받는다 사설 IP 대역 : 172.27.x.x/16 고객 VM 의사설 IP 주소는 VM 이삭제될때까지변하지않는다 당연히, 도사설 IP 주소를갖는다 고객 VM 에추가사설 IP 주소를부여할수있다 ( 추후설명 ) 계정의자원제한 : 고객실수등에의한자원오남용을방지하기위해계정별로이용가능한자원의한도가있다 고객 VM 30 개이하, 디스크 60 개이하, 공인 IP 30 개이하 더많은자원이용이필요한경우, 고객센터에요청하여한도를늘일수있다
X 2-1 고객시스템환경에대한기본적인이해 (1/2) Public port 22 Private port 22 서버 1 DB 서버 Public port 10001 Private port 22 서버 2 Port forwarding : 공인망에서고객 VM 을접근하려면, 접근하고자하는포트를 NAT 구성해야한다 고객 VM 은공인망으로부터의접근이차단된상태로생성된다 예를들어, 고객 VM 으로 telnet 하기위해서는 22 번포트를 NAT 구성해야하고, Web 서버는 80 포트를 NAT 구성해야한다 DB 서버와같이평상시공인망노출이불필요하고, 보안에민감한 VM 은 port forwarding 구성하지않는것이바람직하다 Public port 선택 Port forwarding 구성에서고객 VM 의포트를 private port, 에서 NAT 되어공인망에노출되는포트를 public port 라고한다 Public port 번호는 private port 번호와일치하지않아도된다 그림과같이, 서버 1 과서버 2 는모두 22 번 (ssh) 포트를 port fowarding 구성했지만, 서로다른 public port 를사용하고있다 방화벽관리 방화벽은 inbound 트래픽에대해 All-deny 상태로초기설정되어있다 Port fowarding 구성하면자동으로해당포트에대해서 All-allow 된다. 특정 IP 대역에대해서만접근을허용하려면포탈에서변경하면된다 Static NAT : 고객 VM 과공인 IP 주소를 1:1 매핑해줄수도있다 포탈에서추가공인 IP 주소를신청하고, 대상 VM 과 static NAT 설정하면된다 Port forwarding 필요없이, 방화벽만오픈하면공인망에서의접근이가능하다
2-2 VM 상품선택 CPU 와메모리선택 :? vcore? GB VM 은사용도중에도상품변경이가능하기때문에, 너무정밀하게사이징하지않아도된다 일반적으로, 물리서버와동일한수준으로사이징하면무난하다 영상 Transcoder, HPC (High-performance computing) 등물리서버환경에서도 CPU 부하율이매우높은서버의경우에는물리서버대비 2 배의코어수를선택해야한다 (Socket 서버등 ) 고성능의네트워크 IO 가필요한경우 VM 사양과네트워크 IO 성능은정비례하지않으므로, 적은수의고사양 VM 보다는많은수의저사양 VM 으로네트워크 IO 를분산하도록설계하는것이좋다 물론, VM 내부에서적절하게 TCP/IP 튜닝도해야한다 (DB 서버등 ) 고성능의디스크 IO 가필요한경우 http://cafe.naver.com/ucloudbiz/24 일반 VM 은 2,000 IOPS 미만의디스크 IO 성능을제공한다 VM 에다수의디스크를추가하여 software RAID 구성해도디스크 IO 성능은향상되지않는다 SSD VM 또는 SSD 볼륨은일반 VM 에비해높은디스크 IO 성능을제공한다 SSD 특성상, random read 성능이탁월한반면에 write 및 sequential r/w 성능은일반 VM 과차별성이크지않다
2-3 데이터저장공간 D - 1 D - 2 NAS VM 디스크 NAS ucloud storage D - 3 최대용량 성능수준 VM 당 12 개데이터디스크 (300GB x 12 = 3.6TB) 일반 VM : 2,000 IOPS 미만 SSD VM ( 천안 ) : 15,000 IOPS 미만 Neighbor effect 불가피 SSD 볼륨 ( 서울 ) : 최대 20,000 IOPS 까지 QoS 보장 계정당 10TB 이하예외적용해도수십 TB 미만 2,000 IOPS 미만 Neighbor effect 불가피 무제한 업로드 300 Mbps ( x N) 다운로드 500 Mbps 가격수준 70 원 / GB 70 원 / GB 구간별 60 원 ~ 30 원 / GB 파일시스템 OS 파일시스템 NFS, CIFS, I-SCSI Object storage, RESTful API 기타특징 데이터디스크가크면 VM 이동성저하 공유형스토리지자동 / 수동용량확장가능 기본 3 copy 저장모든파일에 static URL 부여 CDN 연계 openstack component AWS S3 compatible 적절한용도 SW 패키지, 자주변경되는데이터, 데이터베이스 여러서버가공유하는파일 배포용대용량컨텐츠아카이빙 / 백업
2-4 Image 를활용한 VM 복제와증설 운영중인 VM 을일시정지 스냅샷 이미지화한다 OS 디스크만이미지화가가능하다 OS 디스크가가벼울수록이미지생성, 복제 VM 생성이용이하다 웹서버다중화등동일한 VM 을다수생성해야하는경우, 긴급증설에대비해야하는경우, Autoscaling 설정등에활용하면편리하다 스냅샷하기전에, 데이터디스크마운트정보등정상적인 VM 부팅을불가하게만드는요소는제거해야한다 기본이미지에서불필요한구성제거 어플리케이션패키지설치 ( 권고 ) 로그서버는별도로구성 서비스및스크립트구성 이미지생성
2-5 시스템부하변동에따른 Scaling 정책 Scale-up/down vs Scale-in/out Scale-up/down 은서버의 spec. 을조절하는것이고, Scale-in/out 은서버의수량을조절하는것이다 Scale-up/down 은 VM 을중지시켜야하고 ( 서비스중단 ), 조절가능한최대 spec. 에제한이있다 유료 SW 를사용하는 VM 을 Scale-in/out 하려면비용부담이있다 Autoscaling 자동화된 Scale-in/out 예기치못한트래픽증감에도유연하게대처할수있다는장점이있지만, 급격한속도의변동에는적기대응하기는힘들다 (5 분주기모니터링 알람발생 VM 생성에소요되는시간 ) Session Clustering : scale-in 이발생하면해당서버에수용된세션이끊어지게된다. 이를방지하기위해 session 정보를모든서버들이공유하게하는것이바람직하다
2-6 LB (Load balancer) 사용 LB 는계정외부에 proxy 형태로존재한다 로드밸런싱해야하는포트를 port forwarding 하고, public port 를대상으로 LB 구성한다 LB 를통과한패킷의 source IP 는, client 의 IP 주소가아닌, LB 의 SNIP 가찍혀있다 계정내부연동에서의로드밸런싱에는적합하지않다 웹서버 1 Service IP LB 10001 10002 80 80 웹서버 2 LB_80 80 443 웹서버 1 Service IP LB_443 10002 10011 10001 10012 80 443 웹서버 2 웹서버로그등에 Client 의 IP 주소를기록하고싶다면 LB에서 X-Forwarded-For 헤더에 client IP주소를넣어서보내주기때문에, 확인이가능하다 Session stickyness LB 에서는 session 정보를관리하지않는다 LB 알고리즘을 Source IP hash (+port) 로설정하면, client IP 주소 (+ 포트 ) 별항상동일한서버로패킷을보내준다 또는, 서버에서 session clustering 을구성해도 session stickyness 를구현할수있다 HTTPS 트래픽 http://cafe.naver.com/ucloudbiz/56 LB 는포트별로별도생성해야하지만, 포트가다르면동일한 service IP 로묶을수있다 LB 프로토콜을 HTTPS 로선택하고인증서를등록하면 HTTPS 트래픽을복호화하여평문트래픽으로서버에전달할수있다
2-7 session clustering 다중화된모든서버들이모든 session 정보를공유할수있으면 LB 알고리즘에무관하게 session stickyness 가보장될뿐더러, 일부서버의장애또는 scale-in 이발생해도해당서버에수용된세션이끊어지지않는다 Tomcat/JBOSS Session Clustering Web/WAS 솔루션들은대개 session clustering 기능을제공한다 Web/WAS 서버간세션정보를공유함으로써일부장애또는 scale-in에대처 WAS 1 WAS 2 WAS 3 Redis Session Manager In-memory DB 솔루션인 Redis 활용한다 Redis 에서세션정보를별도로관리 http://cafe.naver.com/ucloudbiz/83 http://cafe.naver.com/ucloudbiz/85 http://cafe.naver.com/ucloudbiz/89 Redis 1 Redis 2 WAS 1 WAS 2 WAS 3
2-8 WAF (Web Application Firewall) 사용 Service IP Service IP LB 10001 10003 10002 10004 10001 10002 LB_80 10011 10013 10012 10014 10003 10004 LB_443 WAF 는일종의 VM 으로, 계정내부에 proxy 형태로존재한다 트래픽볼륨이클경우, WAF 를다중화구성함으로써대응이가능하다 WAF 의장애에대비하여, 트래픽우회시나리오를생각해두는것이좋다 WAF WAF WAF WAF 80 80 80 80 웹서버 1 웹서버 2 웹서버 1 웹서버 2
2-9 대형시스템구성을위한그룹계정및 CIP 기능 의한계 50 만 conntrack, in+out 1 Gbps 미만. scale-up 하더라도 30 % 내외개선효과 (scale-up 은고객센터에별도신청 ) Service IP LB 2015.2 월부터신규생성된계정의 은 in+out 3 Gbps 가능하며, scale-up 하면최대 500 만 conntrack 까지가능하다 (Seoul-M, Central-A, Central-B only) conntrack time-out : 3,600 초 그룹계정 : 다수의계정을하나의그룹으로묶어서사용할수있다 Single-Sign-On, 통합과금, 이미지공유 ( 그룹공개이미지 ) 하나의 LB 로그룹계정전체를로드벨런싱할수있다 CIP (Cloud Internal Path) 80 80 80 계정별또는그룹계정별 CIP 라는추가네트워크를사용할수있다. CIP 를생성하면추가 도생기게되지만, DHCP 역할만담당한다 CIP 는모든 VM 에일괄적용되지않고, 선택적으로적용된다 웹서버 1 웹서버 2 웹서버 3 DB 서버 그룹 CIP 는그룹계정전체에적용되어, 계정간내부망역할을제공한다 CIP CIP 는 NAS, VPN, 전용회선, 베어메탈서버등비가상화장비와의연동역할도겸한다
2-10 CIP 를활용한비가상화장비또는외부연동 목동 ICC colocation 고객은층간패치로 Hybrid 구성가능 고객사 고객사 고객사 VPN MPLS CE CSU IPsec-VPN MPLS VPN 전용회선 일반인터넷 kt Premium Network 전송망 CIP Fusion IO Bare metal 서버 Oracle-RAC VPN MPLS CE CSU MPLS (Multi-Protocol Label Switch) : IP 패킷에라벨을추가하여회선별별도라우팅하는통신기술 kt Premium Network : kt 통신 / 미디어서비스및 MPLS- VPN 전용망
2-11 시스템구축프로세스 기본구성 ( 단일계정 ) 계정생성 서비스신청 VM 생성 (Zone, 사양, Disk) 네트워크설정 (IP, P/F, F/W) Application 설치및설정 기타서비스설정 (WAF, Backup 등 ) NAS 설정 (Option) 로드밸런서설정 (Option) 계정분리 ( 그룹계정 ) 그룹계정설정 ( 계정추가 ) VM 생성 ( 이미지복사 ) CIP 설정 ( 계정간연동 ) 공유자원설정 (LB, NAS 등 ) Zone 분리 GSLB 설정 (Zone 간분산 ) CIP Inter-AZ 설정 (Zone 간연동 ) VM 설정 ( 타 Zone)