ucloud packaging 예제템플릿 V1.0 ( ) KT 문서생성일 : ver1.0

Similar documents
ucloud autoscaling API

Cloud Friendly System Architecture

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

게시판 스팸 실시간 차단 시스템

Microsoft Word - src.doc

PowerPoint Template

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Page 1 / 솔루션소개 Magento Magento 는강력한기능을제공하는오픈소스쇼핑몰제작관리도구입니다. 커스터마이징가 능한글로벌쇼핑몰구축시에사용을권장하며, 자체마켓플레이스를보유하고있을정도 로다양한기능을유 / 무료로추가할수있습니다. 2. 설치버전 하기명시된

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

슬라이드 1

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

Microsoft PowerPoint - 10Àå.ppt

uFOCS

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

Secure Programming Lecture1 : Introduction

PowerPoint Template

2

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

슬라이드 1

워드표준 가이드

JUNIT 실습및발표

PowerPoint Template

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

PowerPoint 프레젠테이션

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

bn2019_2

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

무제-1

Page 1 / 솔루션소개 WordPress WordPress는세계에서가장인기있는오픈소스웹사이트제작관리도구입니다. 웹표준, 접근성, SEO( 검색엔진최적화 ) 등의강점이있으며다양한테마와확장기능을제공합니다. 2. 설치버전 하기명시된버전은권장설치버전이며필요시다른

C++ Programming

정적으로 설치된 mod_ssl 모듈확인 동적으로 설치된 mod_ssl 모듈확인 웹서버에 설치된 모듈중 mod_so.c 를 먼저 확인후 동적으로 설치된 모듈중 mod_ssl.so 를 확인합니다. 동적으로 설치된 경우 apache 설치 디렉토리의 module 이나 libe

개정이력 개정일자 Version 개정사유 개정내용 신규작성전면개정일부내용수정일부내용수정전면개정 AZ 추가에따른매뉴얼수정상품소개삭제

Sena Device Server Serial/IP TM Version

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

The Pocket Guide to TCP/IP Sockets: C Version

MySQL-.. 1

Network seminar.key

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

2015 Electronics and Telecommunications Trends 2015 한국전자통신연구원 95

업데이트일 : Server CIP 기능가이드 목차서비스소개 CIP 사용방법 Inter-AZ 신청방법 CIP 고객 VM 설정방법 서비스소개 본문서는 KT ucloud server 의부가기능인 Cloud Internal Path ( 이하 CIP 이라함

슬라이드 1

adfasdfasfdasfasfadf

Microsoft Word - Armjtag_문서1.doc

희망브리지

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

MySQL-Ch10

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

0. 들어가기 전

Citrix Workload Balancing 2.1 설치 가이드

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

Server Agent Guide

쉽게 풀어쓴 C 프로그래밊

서현수

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

StruxureWare Data Center Expert 7.2.x 의 새 기능 StruxureWare Data Center Expert 7.2.x 릴리스에서 사용할 수 있는 새 기능에 대해 자세히 알아보십시오. 웹 클라이언트 시작 화면: StruxureWare Cen

PowerPoint 프레젠테이션

문서 템플릿

PowerPoint 프레젠테이션

PowerPoint Presentation

로거 자료실

Windows 8에서 BioStar 1 설치하기

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

1217 WebTrafMon II

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

슬라이드 1

워드표준 가이드

슬라이드 1

untitled

Packstack 을이용한 Openstack 설치

Spring Boot/JDBC JdbcTemplate/CRUD 예제

APOGEE Insight_KR_Base_3P11

단계

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

제1장 Unix란 무엇인가?

슬라이드 1

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

어댑터뷰

Slide 1

특허청구의 범위 청구항 1 게임 서버 또는 미들웨어에 의해, 사용자 단말기로부터, GPS 정보, IP 정보, 중계기 정보 중 적어도 하나를 이 용한 위치 정보와, 상기 사용자 단말기에 설정된 언어 종류를 포함하는 사용자 정보를 수신하는 단계; 상기 게임 서버 또는 미들

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

VPN.hwp

PowerPoint 프레젠테이션

Microsoft PowerPoint - 03-TCP Programming.ppt

SMB_ICMP_UDP(huichang).PDF

ISP and CodeVisionAVR C Compiler.hwp

Transcription:

ucloud packaging 예제템플릿 V1.0 (2013.07) KT 문서생성일 : 2013-07-25 ver1.0

이문서는 ucloud packaging( 이하 UPAC 으로칭함 ) 템플릿을작성하기위한일종의가이드라인으로작용할수있도록몇가지템플릿예제를제시합니다. 여기서예를든템플릿들은 UPAC 의주요기능들을보여줄수있고, 또한예제들을통하여사용자가직접자신의템플릿을작성하는데시작지점으로작용할수있도록구성하였습니다. 따라서템플릿전체영역에대한자세한설명은원할경우에는 ucloud packaging 템플릿매뉴얼을참조하라. 또한여기예제에서제시한개별리소스들의설정값들은예시를목적으로하기때문에각리소스들의설정값의의미에대해서는자세히다루지않고있습니다. 개별리소스들의설정값의의미에대한자세한설명은그리소스에해당하는 ucloud 서비스메뉴얼을참조하기바랍니다. 문서개정일 : 2013.07.25 페이지 2 / 19

1. 포트포워딩규칙이설정된한개의서버 용도 이템플릿은사용자가하나의 ucloud server 를생성하고서버에 ssh 에접속하기위해공용 ip 를 할당하고포트포워딩규칙을설정한다. 이템플릿을이용하여패키지를배포하면새로생성된 서버에 ssh 접속이가능하다. 구성 Virtual Router 포트포워딩규칙 : Public 22 private 22 ucloud Server 템플릿 "Description":"Create a server, ip address, portforwarding rule for ssh connection", "Parameters": "ZoneId": "Description":"zone id, kr-3 is default", "Type":"String", "Default":"dfd6f03d-dae5-458e-a2ea-cb6a55d0d994" "ServiceOfferingId": "Description":"service offering id for VM, premium 1vCore 1GB RAM is default ", "Type":"String", "Default":"c504e367-20d6-47c6-a82c-183b12d357f2" 문서개정일 : 2013.07.25 페이지 3 / 19

"TemplateId": "Description":"VM Image, Centos 5.4 32bit is default", "Type":"String", "Default":"b1c8383a-de6e-425f-ba18-12cadad827d3" "DiskOfferingId": "Description":"Disk Volume for VM, 100GB is default", "Type":"String", "Default":"87c0a6f6-c684-4fbe-a393-d8412bcf788d" "Resources": "MyServer": "Type":"UPAC::VirtualMachine", "Properties": "ServiceOfferingId": "Ref":"ServiceOfferingId" "TemplateId": "Ref":"TemplateId" "ZoneId": "Ref":"ZoneId" "DiskOfferingId": "Ref":"DiskOfferingId" "MyIpAddress": "Type":"UPAC::IpAddress", "Properties": "ZoneId":"dfd6f03d-dae5-458e-a2ea-cb6a55d0d994" "MyPortForwardingRule": "Type":"UPAC::PortForwardingRule", "Properties": 문서개정일 : 2013.07.25 페이지 4 / 19

"PrivatePort":"22", "PublicPort":"22", "Protocol":"TCP", "VirtualMachineId": "Ref":"MyServer" "IpAddressId": "Ref":"MyIpAddress" 설명 위예제템플릿은총 3 개의리소스로구성된다. 여기서사용된항목들에대한 ID 정보는 ucloud 콘솔의 ucloud packaging 화면을참조하라. MyServer 라는 UPAC::VirtualMachine 리소스는클라우드서버를생성하기위한다음의항목들을 설정한다. ServiceOfferingId 는클라우드서버의스팩을지정한다. 예제에서사용한스팩은 premium 1vCore cpu, 1G RAM 을장착한서버이다. TemplateId 는클라우드서버를생성하는데필요한운영체제이미지를지정한다. 예제에서사용한이미지는 ucloud 에서기본으로제공하는것들중하나인 Centos 5.4 32bit 운영체제가설치된이미지이다. 여기에자신이만든이미지 ID 를설정하면해당이미지를이용한서버가생성된다. ZoneId 는클라우드서버가생성될 availability zone 을지정한다. 예제에서사용한 zone 은 KOR- Central Zone B 이다. DiskOfferingId 는클라우드서버가사용할디스크용량을지정한다. 예제에서사용한디스크는 100G 의용량을가진디스크이다. MyIpAddress 라는 UPAC::IpAddress 리소스는새로운 IP 주소를생성하기위한다음의항목들을 설정한다. ZoneId 는위에서설명한개념과동일하다. 문서개정일 : 2013.07.25 페이지 5 / 19

MyPortForwardingRule 이라는 UPAC::PortForwardingRule 은클라우드서버와 IP 주소에대한 포트포워딩규칙을생성하기위한다음의항목들을설정한다. PrivatePort 와 PublicPort 는각각포트포워딩을위한외부접속포트와클라우드서버의내부포트번호이다. ssh 접속을위해 22 번으로설정하였다. VirtualMachineId 는포트포워딩을할클라우드서버의 ID 이다. 이예제에서는앞에서설정한 MyServer 에대한포트포워딩규칙을설정하고자하므로 MyServer 의 ID 는사용자가알수없는상황이다. 따라서 Ref 라는템플릿내장함수가사용되었다. 예제와같이설정하면 ucloud packaging 서비스가패키지생성시에 MyServer 의 ID 값을 VirtualMachineID 값으로치환하여설정하게된다. 만약 MyServer 가아니라자신이기존에이미생성해놓은클라우드서버에대한포트포워딩규칙을설정하고자한다면이값을 "VirtualMachineId": " 그클라우드서버의 ID" 와같이설정하면된다. 템플릿내장함수에대한보다자세한정보는 ucloud packaging 템플릿매뉴얼을참조하라. IpAddressId 는포트포워딩을할공개 IP 주소다. 역시 MyIpAddress 가아직생성되지않았으므로 Ref 내장함수가사용되었다. 문서개정일 : 2013.07.25 페이지 6 / 19

2. LAMP 스택을설치한서버 용도 특정소프트웨어가설치된서버를운영하고자할때사용자가미리해당소프트웨어를클라우드서버에설치한뒤자신의이미지를생성하여이용할수있을것이다. 하지만이미지를이용하여서버를생성할경우항상고정적인서버가생성되므로서버생성시마다다른설정을하고자한다면서버생성후에수작업으로처리해야하는단점이있다. ucloud packaging 의 ucloud-init 기능을이용하면서버생성시점에필요한작업을자동화할수있다. ucloud-init 이설치된이미지를이용하여서버를생성하고서버생성시에필요한작업내용을 user data 로전달하면템플릿을이용하여소프트웨어설치및초기설정작업을수행할수있다. 이예제에서는 LAMP 스택을설치하고초기설정하는예제를통해사용자가서버생성시필요한다양한작업을스크립트를통해자동화할수있음을보여준다. ucloud-init 에대한자세한설명은해당매뉴얼을참고하라. 이템플릿을이용하여 LAMP 스택이설치되고 MySQL 접속정보가웹페이지에설정된상태의클라우드서버를생성할수있다. 구성 ucloud Server Linux Apache MySQL PHP 템플릿 "UPAC Template Version": "2012-06-01", "Description": "Create a LAMP installed server", "Parameters": "ZoneId": "Description":"zone id, kr-3 is default", "Type":"String", "Default":"dfd6f03d-dae5-458e-a2ea-cb6a55d0d994" "ServiceOfferingId": "Description":"service offering id for VM, premium 1vCore 1GB RAM is default", 문서개정일 : 2013.07.25 페이지 7 / 19

"Type":"String", "Default":"c504e367-20d6-47c6-a82c-183b12d357f2" "DiskOfferingId": "Description":"Disk Volume for VM, 100GB is default", "Type":"String", "Default":"87c0a6f6-c684-4fbe-a393-d8412bcf788d" "sshportnumber": "Description": "ssh port for vm", "Type": "Number", "Default": "22" "webportnumber": "Description": "web port for lamp", "Type": "Number", "Default": "80" "DBName": "Default": "MyDatabase", "Description": "MySQL database name", "Type": "String", "MinLength": "1", "MaxLength": "64", "AllowedPattern": "[a-za-z][a-za-z0-9]*", "ConstraintDescription": "must begin with a letter and contain only alphanumeric characters." "DBUsername": "NoEcho": "true", "Description": "Username for MySQL database access", "Type": "String", "MinLength": "1", "MaxLength": "16", "AllowedPattern": "[a-za-z][a-za-z0-9]*", "ConstraintDescription": "must begin with a letter and contain only alphanumeric characters." "DBPassword": 문서개정일 : 2013.07.25 페이지 8 / 19

"NoEcho": "true", "Description": "Password for MySQL database access", "Type": "String", "MinLength": "1", "MaxLength": "41", "AllowedPattern": "[a-za-z0-9]*", "ConstraintDescription": "must contain only alphanumeric characters." "DBRootPassword": "NoEcho": "true", "Description": "Root password for MySQL", "Type": "String", "MinLength": "1", "MaxLength": "41", "AllowedPattern": "[a-za-z0-9]*", "ConstraintDescription": "must contain only alphanumeric characters.", "Default": "mysqladmin" "Resources": "sislampip": "Type": "UPAC::IpAddress", "Properties": "ZoneId": "dfd6f03d-dae5-458e-a2ea-cb6a55d0d994" "sislampvm": "Type": "UPAC::VirtualMachine", "Properties": "ServiceOfferingId": "Ref":"ServiceOfferingId" "TemplateId": "89be7654-880d-441b-af1b-0b6488597435", "ZoneId": "Ref":"ZoneId" "DiskOfferingId": "Ref":"DiskOfferingId" 문서개정일 : 2013.07.25 페이지 9 / 19

"UserData": "Base64": "Join": [ "", [ "shell_commands:\n", " - echo ", "\"CREATE DATABASE ", "Ref": "DBName" ";\\n", "GRANT ALL ON ", "Ref": "DBName" ".* TO '", "Ref": "DBUsername" "'@localhost IDENTIFIED BY '", "Ref": "DBPassword" "';\\n\" > /tmp/setup.mysql\n", " - apt-get -y install unzip\n", " - apt-get -y install apache2\n", " - apt-get -y install php5\n", " - apt-get -y install libapache2-mod-php5\n", " - bash -c \"DEBIAN_FRONTEND=noninteractive aptitude install -q -y mysql-server\"\n", " - apt-get -y install libapache2-mod-auth-mysql\n", " - apt-get -y install php5-mysql\n", " - /etc/init.d/apache2 restart\n", " - sleep 3 \n", " - mysqladmin -u root password '", "Ref": "DBRootPassword" 문서개정일 : 2013.07.25 페이지 10 / 19

"'\n", " - mysql -u root --password='", "Ref": "DBRootPassword" "' < /tmp/setup.mysql\n" ] ] "sshport": "Type": "UPAC::PortForwardingRule", "Properties": "PrivatePort": "22", "PublicPort": "Ref": "sshportnumber" "Protocol": "TCP", "VirtualMachineId": "Ref": "sislampvm" "IpAddressId": "Ref": "sislampip" "webport": "Type": "UPAC::PortForwardingRule", "Properties": "PrivatePort": "80", "PublicPort": "Ref": "webportnumber" "Protocol": "TCP", "VirtualMachineId": "Ref": "sislampvm" 문서개정일 : 2013.07.25 페이지 11 / 19

"IpAddressId": "Ref": "sislampip" "Outputs": "generatedpw": "Value": "GetAtt": [ "sislampvm", "password" ] "Description": "generated vm password" "publicipaddress": "Value": "GetAtt": [ "sislampip", "ipaddress" ] "Description": "public ip for lamp" 설명 위예제템플릿은하나의템플릿파라미터와하나의리소스로구성되어있다. 템플릿파라미터는패키지생성시마다변경하고자하는값을처리하기위한기능으로템플릿내에 Parameters 항목에원하는이름의파라미터정보를정의하고템플릿내에원하는지점에서해당파라미터를 Ref 내장함수로참조할수있다. 템플릿에파라미터가정의되면사용자는패키지생성요청시해당파라미터의값을함께전달해야한다. 템플릿파라미터에대한더자세한설명은템플릿매뉴얼을참고하라. DBRootPassword 라는파라미터는클라우드서버에설치될 MySQL 의 root 계정패스워드를입력 받기위해정의된파라미터다. 패스워드라는특성상 NoEcho 속성을 True 로설정하여콘솔 문서개정일 : 2013.07.25 페이지 12 / 19

화면에서직접볼수없도록설정했다. 이템플릿을이용하여패키지를생성할때패스워드의 값을함께전달해서패키지생성요청을해야한다. MyLAMPServer 라는 UPAC::VirtualMachine 리소스는 LAMP 스택이설치된클라우드서버를 생성하기위하여첫예제의내용과대부분동일한설정을갖는다. 다른점은 ucloud-init 을 사용하여 LAMP 스택을설치하고초기설정을하기위한내용인데다음과같다. 클라우드서버생성후 LAMP 스택을설치하기위해 ucloud-init 의기능을이용해야한다. 따라서 TemplateId 의값이운영체제만설치되어있는이미지가아닌 ucloud-init 이설치되어있는이미지의 ID 값이다. 예제에서사용한이미지는 Ubuntu 11.04 32bit 운영체제에 ucloud-init 이설치되어있는이미지다. UserData 에 ucloud-init 이실행할스크립트내용을지정한다. UserData 는반드시 Base64 인코딩되어전달해야하기때문에템플릿내에서 Base64 내장함수를사용하면 ucloud packaging 서비스가패키지생성시해당값을 Base64 인코딩하여사용한다. Base64 내장함수에 ucloudinit 용스크립트문자열을지정하면 ucloud-init 이이내용을실행하게된다. 이스크립트는 ucloud-init 의문법에맞게작성되어야하므로자세한내용은해당매뉴얼을참조하라. 이예제에서는 MuSQL 의 root 패스워드를파라미터로전달받아그값을 ucloud-init 의스크립트에서사용하고자한다. 이를위해 Ref 내장함수를이용한다. 스크립트에서사용할값에 Ref 내장함수를적용하기위해 Joing 내장함수를이용하여스크립트문자열과파라미터참조부분을결합하였다. 본예제에서는그이외에가독성을목적으로스크립트문자열도적절히분리하여 Join 내장함수의결합기능을이용하였다. ucloud-init 의스크립트전체를하나의문자열로 Base64 인코딩내장함수로전달하면파라미터치환을할수없으므로 Join 내장함수를이용하여파라미터참조부분 UserData 의 "Ref": "DBRootPassword" 부분은패키시생성시에사용자가제공한패스워드값으로치환되어 ucloud-init 의스크립트가실행된다. 문서개정일 : 2013.07.25 페이지 13 / 19

3. ucloud watch 의알람이설정된 autoscaling 웹서버그룹 용도 ucloud watch 의알람조건에따라서버의개수를자동으로늘리고줄일수있는웹서버그룹을생성한다. 로드밸런서를생성하고이를오토스케일링그룹에설정함으로써로드밸런싱기능을수행한다. 이템플릿을이용하여패키지를생성하면알람조건에따라자동으로웹서버의개수가조절되고이서버들이로드밸런서를통해부하분산이이루어지는웹서버그룹을만들수있다. 구성 Loadbalnacer Virtual Router autoscaling trigger c Autoscaling Group 템플릿 "Description":"Autoscaling web server group with loadbalancer and alarm", "Resources": "MyIPAddress": "Type":"UPAC::IpAddress", "Properties": "ZoneId":"dfd6f03d-dae5-458e-a2ea-cb6a55d0d994" 문서개정일 : 2013.07.25 페이지 14 / 19

"MyLoadBalancer": "Type":"UPAC::LoadBalancer", "Properties": "LoadBalancerOption":"roundrobin", "ServicePort":"80", "HealthcheckType":"tcp", "ServiceType":"http", "ZoneId":"dfd6f03d-dae5-458e-a2ea-cb6a55d0d994" "MyLaunchConfiguration": "Type":"UPAC::LaunchConfiguration", "Properties": "TemplateId":"b1c8383a-de6e-425f-ba18-12cadad827d3", "ServiceOfferingId":"c504e367-20d6-47c6-a82c-183b12d357f2", "DiskOfferingId":"87c0a6f6-c684-4fbe-a393-d8412bcf788d" "MyAutoscalingGroup": "Type":"UPAC::AutoscalingGroup", "Properties": "AvailabilityZones":[ "dfd6f03d-dae5-458e-a2ea-cb6a55d0d994" ], "LaunchConfigurationName": "Ref":"MyLaunchConfiguration" "LoadBalancers":[ "LoadBalancerId": "Ref":"MyLoadBalancer" "LoadBalancerType":"VPX", "IpAddressId": "Ref":"MyIPAddress" "PublicPortRangeFrom":"8001", "PublicPortRangeTo":"8003", "PrivatePort":"80" 문서개정일 : 2013.07.25 페이지 15 / 19

], "MaxSize":"3", "MinSize":"1" "MyUpScalingPolicy": "Type":"UPAC::ScalingPolicy", "Properties": "AdjustmentType":"ChangeInCapacity", "AutoScalingGroupName": "Ref":"MyAutoscalingGroup" "ScalingAdjustment":"1" "MyDownScalingPolicy": "Type":"UPAC::ScalingPolicy", "Properties": "AdjustmentType":"ChangeInCapacity", "AutoScalingGroupName": "Ref":"MyAutoscalingGroup" "ScalingAdjustment":"-1" "MyCPUHighAlarm": "Type":"UPAC::Alarm", "Properties": "AlarmActions":[ "Ref":"MyUpScalingPolicy" ], "ComparisonOperator":"GreaterThanThreshold", "EvaluationPeriods":"2", "MetricName":"CPUUtilization", "Namespace":"ucloud/server", "Dimensions":[ 문서개정일 : 2013.07.25 페이지 16 / 19

"Name":"AutoscalingGroupName", "Value":"MyAutoscalingGroup" ], "Period":"5", "Statistic":"Average", "Threshold":"1", "Unit":"Percent" "MyCPULowAlarm": "Type":"UPAC::Alarm", "Properties": "AlarmActions":[ "Ref":"MyDownScalingPolicy" ], "ComparisonOperator":"LessThanThreshold", "EvaluationPeriods":"2", "MetricName":"CPUUtilization", "Namespace":"ucloud/server", "Dimensions":[ "Name":"AutoscalingGroupName", "Value":"MyAutoscalingGroup" ], "Period":"5", "Statistic":"Average", "Threshold":"1", "Unit":"Percent" "Outputs": "MyLoadBalancerIp": "Description":"The IP address of the website", 문서개정일 : 2013.07.25 페이지 17 / 19

"Value": "GetAtt":[ "MyLoadBalancer", "ServiceIp" ] 설명 위예제템플릿은총 8 개의리소스와하나의 Output 으로구성된다. 먼저외부에서웹서버에접근하기위한공용 IP 를생성하고 ucloud 부가서비스의로드밸런서를생성한다. 그리고오토스케일링설정을위해각각 LaunchConfigure, AutoscalingGroup, ScalingPolicy 를생성한다. ScalingPolicy 의경우서버의개수를늘리는것과줄이는것두개를생성하며, 마지막으로두개의정책을트리거링할두개의알람을생성한다. 마지막으로생성된로드밸런서의서비스 IP 주소를결과값으로저장한다. MyIpAddress 리소스는 RVM 이포트포워딩하기위한웹서버의공용 IP 를위해생성한다. 리소스를구성하는속성들의내용은첫예제와같다. MyLoadBalancer 라는 UPAC::LoadBalancer 리소스는 ucloud 부가서비스로드밸런서로서다음의항목들을설정한다. Bandwidth 는로드밸런서의대역폭을지정한다. LoadBalancerOption 은로드밸런싱방식을지정한다. MyLaunchConfiguration 이라는 UPAC::LaunchConfiguration 리소스는오토스케일링서비스가 새로운클라우드서버를생성할때사용하는정보로서예제에나온내용들은첫예제템플릿의 클라우드서버를생성하는내용과동일하다. MyAutoscalingGroup 이라는 UPAC::AutoscalingGroup 리소스는오토스케일링그룹을생성하기 위해다음의항목들을설정한다. AvailabilityZones 는클라우드서버를생성할존정보를지정하는항목으로여러존을지정할경우오토스케일링서비스가자동으로존을분산하여클라우드서버를생성한다. LaunchConfigurationName 은이오토스케일링그룹이새로클라우드서버를생성할때사용하는 LaunchConfiguration 정보를지정하는것으로예제에서는위에서생성한 MyLaunchConfiguration 을지정하였다. 문서개정일 : 2013.07.25 페이지 18 / 19

LoadBalancers 는클라우드서버를생성하거나삭제할때등록할로드밸런서의정보를설정한다. 여러개의로드밸런서를하나의오토스케일링그룹에지정할수도있다. 예제에서는앞서생성한부가서비스로드밸런서인 MyLoadBalancer 를지정하였다. MaxSize 와 MinSize 는운영할클라우드서버의최대 / 최소개수를지정한다. MyUpScalingPolicy 와 MyDownScalingPolicy 라는 UPAC::ScalingPolicy 리소스는스케일링조건이 만족되었을때수행할스케일링정책을지정하기위해다음의항목들을설정한다. AdjustmentType 은클라우드서버의조절유형을정하는것으로예제에서는개수로조절하라는 ChangeInCapacity 로지정되었다. ScalingAdjustment 는조절할클라우드서버의양을지정하는것으로 AdjustmentType 에따라값의유형이달라진다. 예제에서는 ChangInCapacity 가클라우드서버의개수를의미하므로 ScalingAdjustment 값을 1 과 -1 로하여정책이수행될때 1 개의서버를각각늘리거나줄이는것으로지정되었다. MyCPUHighAlarm 과 MyCPULowAlarm 이라는 UPAC::Alarm 리소스는 ucloud watch 의모니터링결과로발생시킬알람을의미한다. MyCPUHighAlarm 의경우 MyAutoscalingGroup 이라는오토스케일링그룹의클라우드서버들의 5 분동안의 ("Period":"5") 평균 CPU 사용량이 90%("Threshold:"1","Unit":"Percent") 을초과하는경우가 2 회 ("EvaluationPeriods":"2") 발생하면앞서생성한 MyUpScalingPolicy 정책에따라클라우드서버 1 개가생성된다. MyCPULowAlarm 은평균 CPU 사용량이 70% 미만일경우에클라우드서버 1 개가종료된다. AlarmActions 는이알람이발생할때수행할작업들의리스트로서예제에서는앞서생성한 클라우드서버를 1 개생성하는오토스케일링정책을지정하였다. MyLoadBalancerIp 라는결과값은로드밸런서생성결과로패키지생성시점에얻을수있는로드밸런서의서비스 IP 주소를얻기위해 GetAtt 내장함수를사용한다. Outputs 항목에서지정한정보들은패키지생성이후에 ucloud packaging 서버에저장되고콘솔화면이나 open api 호출을통해값을얻을수있다. 예제에서지정한결과값인 MyLoadBalancerIp 값을이용하여외부에서웹서버에접속할 IP 주소로사용할수있다. 문서개정일 : 2013.07.25 페이지 19 / 19