Tencent Cloud Resources

텐센트 클라우드의 다양한 소식과 기술 문서 및 정보를 확인하실 수 있습니다.

텐센트 클라우드를 이용한 Web Service 구성하기

 

 

 

 

4부. 텐센트 클라우드를 활용한 웹서비스 구성 – Auto Scaling

 

이번 순서에서는 텐센트 클라우드의 Auto Scaling 서비스에 대해 알아보겠습니다.

불특정 다수를 대상으로 서비스를 제공할 때, 얼마나 요청이 들어올지 서버 용량은 어느 정도로 산정해야 하는지 가늠하는 것은 어려운 일입니다. 어느 날 갑자기 사용자가 폭증할 수도 있고, 대량의 공격 패킷이 유입될 수도 있습니다. 특정 시간대에 요청이 집중될 수도 있습니다.  서비스 요청의 급증에 미리 대비하지 않으면, 가장 중요한 순간에 시스템 장애와 함께, 비즈니스 기회를 날려버릴지도 모릅니다.

그러나, 사용자 요청이 가장 많을 때를 가정하고 시스템을 준비하는 것은 비용 면에서도 효율적이지 못합니다. 가장 좋은 접근방법은, 요청의 변화에 맞추어 시스템 용량을 동적으로 조절하는 것입니다.

텐센트 클라우드의 Auto Scaling 기능은, 미리 정의한 정책에 따라 여러분의 운영시스템 수를 자동으로 관리해 줍니다.

 

 

Auto Scaling은 어떤 장점을 가지고 있을까요?

  • 시스템 자원의 사용현황을 모니터링 하면서, 서비스에 필요한 인스턴스 수를 탄력적으로 유지하고 관리합니다.
  • 사용자 요청이 급격히 증가할 때, 서비스 지연 현상을 미리 예방할 수 있습니다.
  • 사용자 요청이 많지 않을 때는, 적은 수의 시스템을 유지하므로 비용 절감 효과를 얻을 수 있습니다.

 

 

이번 순서에 구성할 시스템은 Auto Scaling을 적용해서 구성하려고 합니다. 시스템 구성도는 다음과 같습니다.

 

 

 

Auto Scaling을 구성하기 전, 사전 준비사항

  • 인스턴스 시작과 함께 서비스가 가능하도록, 필요한 s/w를 모두 설치한 custom image 파일을 준비 해야 합니다.
  • CLB를 미리 구성해 둡니다.

 

지난 2부에서, 웹 서비스를 구성했습니다. 여기서는, 2부에서 구성한 웹서버 이미지를 재사용 하면서 Auto Scaling 을 구성하겠습니다.

3부에서는, CLB를 구성 했습니다. Auto Scaling을 설정하면서, CLB가 필요한 단계에서는 이미 생성해둔 CLB 구성을 재사용 하겠습니다.

다음의 순서대로 Custom Image를 생성 합니다.

 

 

  1. Products > Cloud Virtual Machine > Instances 로 이동합니다.

 

 

 

인스턴스 리스트에서 cvm1을 찾습니다. 오른쪽 Operation 메뉴를 보면 More 메뉴가 보입니다.  More를 클릭하고 Create Image 메뉴를 선택합니다.

 

 

  1. Create custom image 화면에서, Image Name을 입력하고, Create Image 버튼을 클릭합니다.

 

 

 

  1. Products > Cloud Virtual Machine > Images > Custom Image 로 이동해서, 이미지가 잘 생성되었는지 확인합니다.

 

 

 

 

 

Auto Scaling 구성하기

Auto Scaling을 구성하는 순서는 다음과 같습니다.

  1. Launch Configuration 설정
  2. Scaling group 설정
  3. Scaling policy 설정

먼저, 텐센트 클라우드 콘솔에서 Product > Auto Scaling 로 이동합니다. Auto Scaling 바로가기

 

 

 

 

1단계: Launch Configuration 설정하기

필요한 순간에 인스턴스를 자동으로 생성하려면, ‘어떤 스펙으로 인스턴스를 생성 할 것인지’ 미리 정해두어야 합니다.

Launch Configuration 설정 단계는 바로, 인스턴스 스펙을 결정하는 단계입니다.

화면 왼쪽에서 Launch Configuration 메뉴를 선택하고, Create 버튼을 클릭합니다.

 

 

 

Create Launch Configuration 화면이 나타납니다. 이 화면 구성은, CVM을 구매하는 화면과 비슷합니다.

scale-out이 필요한 순간에, 자동으로 여기서 정한 스펙대로 CVM을 구매하게 됩니다.

 

 

  1. Select a Model 화면

 

 

 

  • Launch configuration name : 설정 이름을 입력합니다. 여기서는 as-launch-config 라고 입력하겠습니다.
  • Billing Mode : Pay as you go
  • Region : Seoul
  • Available Zone : Seoul Zone 1

 

 

 

  • Instance : 1-core 1GB 를 선택합니다. 우리의 테스트는 이정도 자원으로도 충분합니다.
  • Model : S3.SMALL1 모델을 선택합니다.

 

 

 

  • Image : Custom Image, cvm1-custom-img (cvm1 으로부터 미리 만들어두었던, custom image 이름을 선택합니다.)
  • System Disk : Premium Cloud Storage 50GB 를 그대로 선택하고 진행합니다.
  • Data disk : 지금은 저장할 데이터가 많지 않으니, Data disk는 선택하지 않습니다.

 

 

 

  • Assign a dedicated public IP for free : 기본 설정 값인 체크박스 선택 상태 그대로 진행합니다.
  • Public network bandwidth : 100Mbps 로 설정합니다.

‘Select a model’ 부분의 설정을 마쳤습니다. Next: Complete Configuration 버튼을 클릭합니다.

 

 

  1. Complete Configuration 화면

 

 

 

  • Project : 관리 목적으로 별도의 프로젝트를 만들어서 추가할 수도 있습니다. 여기서는 ‘DEFAULT PROJECT’를 선택하겠습니다.
  • Security Groups : Existing Security Groups를 선택합니다. (2부에서 CVM을 구매할 때 생성했던 Security Group 이름을 선택합니다.
  • 여기서는 ‘Custom Template’을 선택하겠습니다.)

 

 

 

  • Login Method : Custom Password를 선택합니다.
  • Password : 패스워드 규칙에 맞게 입력합니다. 패스워드 규칙은, 영문 대문자+소문자+숫자+특수문자 포함 입니다.
  • Confirm : 입력한 패스워드를 다시 한 번 입력합니다.
  • Security Service : Enable for FREE 체크박스를 선택합니다.
  • Cloud Monitoring : Enable for FREE 체크박스를 선택합니다.

 

 

 

지금까지 선택한 스펙대로 인스턴스를 생성하면, 한 개의 인스턴스당 한 시간에 0.03$ 의 요금이 발생한다는 것을 알려줍니다.

Next: Confirm Configuration 을 클릭합니다.

 

 

  1. Confirm Configuration 화면

지금까지 선택한 Launch Configuration 설정들을 요약해서 보여 줍니다.

 

 

 

설정 내용을 확인한 후, Create Launch Configuration 버튼을 클릭합니다.

 

잠시 기다리면, 새로 생성한 Launch Configuration을 확인할 수 있습니다.

 

 

 

 

2단계: Scaling Group 설정하기

이 단계에서는, scaling 수행 조건, 최소/최대 인스턴스 수, 네트워크 정보, 기타 scale-in/out에 필요한 정보들을 설정합니다.

Auto Scaling 화면에서, 왼쪽 Scaling group 메뉴를 선택합니다.

 

 

 

새로운 정책을 만들기 위해, Create 버튼을 클릭합니다.

 

 

 

scaling 정보들을 입력하는 Create scaling group 화면이 나타납니다.

입력 화면은 총 3가지 화면(Basic, Load Balancer, Other Configuration)으로 구성되어 있습니다.

 

 

  1. Basic Configuration 화면

 

 

  • Name : scaling group 이름을 입력합니다. 여기서는 as-scaling-group이라고 입력하겠습니다.
  • Min Capacity : 최소 인스턴스 수를 입력합니다. 여기서는 1 을 선택하겠습니다.
  • Initial Capacity : 처음 policy를 생성할 때, 인스턴스 수를 입력합니다. 여기서는 1 을 선택하겠습니다.
  • Max Capacity : 최대 인스턴스 수를 입력합니다. 테스트 목적이므로 인스턴스는 총 3개 까지만 허용하겠습니다.
  • Launch Configuration : 1단계에서 만들어두었던 Launch Configuration 이름을 선택합니다.
  • Supported Network : 테스트 목적이므로, 기본으로 만들어져 있던 Default-VPC를 선택하겠습니다.
  • Support subnet : 테스트 목적이므로, 기본으로 만들어져 있던 subnet을 선택하겠습니다.

계속해서 다음 설정을 위해, Next 버튼을 클릭합니다.

 

 

  1. Load Balancer Configuration

 

 

 

  • Cloud Load Balancer : scale-out을 수행했을 때, 새로 생성한 인스턴스를 어느 CLB에 연결할지 선택합니다.
    여기서 2부에서 만들어두었던 techblog-clb 를 선택하겠습니다.
  • Mount the listener : 미리 만들어두었던 http-listener 이름을 선택합니다.
  • Domain Name : 테스트 목적으로 미리 만들어두었던 test.com을 선택합니다.
  • Path URL : 미리 만들어두었던 / path를 그대로 사용합니다.
  • Instance port weight : 80 port와 가중치 10을 입력합니다.

계속해서 다음 설정을 위해, Next: other configurations 버튼을 클릭합니다.

 

 

 

  1. Other configurations 화면

 

 

 

  • Removal policy : scale-in을 수행할 때, 어떤 인스턴스를 제거할 것인지 결정합니다.
    ‘가장 오래된 인스턴스’ 와 ‘가장 최근의 인스턴스’ 중에서 선택할 수 있습니다. 여기서는 ‘가장 최근의 인스턴스’를 선택하겠습니다.
  • Instance Creation Policy : 인스턴스를 생성할 때, 어느 네트워크 영역에 생성할 것인지 결정합니다.
    기본값인 ‘Preferred Availability Zones (Subnets) First’ 를 그대로 선택하고 진행하겠습니다.

 

scaling group 정보를 모두 입력했습니다. Completed 버튼을 클릭합니다.  잠시 기다리면, Scaling group 리스트에, 새 항목이 추가된 것을 볼 수 있습니다. ​

 

 

 

 

3단계: Scaling Policy 생성하기

서비스 요청의 증감은 시스템의 자원 사용량을 변화시킵니다.
이번 단계에서는, 어느 자원이 얼마만큼의 사용되었을 때 scale-in/out을 수행할 것인지 결정합니다.

 

 

  1. Scaling group 리스트에서, group 이름을 클릭합니다.

 

 

 

  1. Scaling Group Details 화면이 나타나면, 화면 상단에서Alarm Trigger Policy 탭을 선택합니다.

 

 

 

  1. Alarm Trigger Policy 화면이 나타나면, Create 버튼을 클릭합니다.

 

 

 

  1. Create Alarm Policy 화면

 

 

 

  • Name : trigger alarm의 이름을 입력합니다. 여기서는 increase-instance-cpu-over-40 으로 입력하겠습니다.
  • if Instances in the scaling group : CPU load가 1분동안 50% 이상 유지될 때 scale-out을 수행하도록 설정하겠습니다.
    CPU Utilization , 1 minute, Min, > , 50 , Consecutive 1 time 을 선택합니다.
  • Scaling group activities : 조건을 만족하면, 1개의 인스턴스를 추가로 구매하고 실행하도록 설정하겠습니다.
    Increase 1 instances, cooldown 60 seconds 를 선택합니다.

 

 

OK 버튼을 클릭합니다. 잠시 기다리면, 새로운 Alarm trigger policy가 리스트에 추가된 것을 볼 수 있습니다. ​

 

 

 

 

 

Auto Scaling 테스트

Alarm Trigger Policy 에서, 트리거를 동작시켜 보겠습니다.

  1. Auto Scaling > Scaling group 으로 이동한 후, 리스트에서 그룹 이름을 클릭합니다.

 

 

 

  1. Scaling Group Details 화면이 나타나면, 화면 상단에서Alarm Trigger Policy 탭을 선택합니다.

 

 

 

  1. Alarm Trigger Policy 화면에 조금 전 생성해둔 trigger policy가 보입니다. 오른쪽Execute를 클릭합니다.

 

 

 

Execute scaling policy now 확인 창이 나타나면, OK 버튼을 클릭합니다.

 

 

 

  1. Products > Cloud Virtual Machine > Instances 에서, 인스턴스를 확인합니다.
    scale-out이 잘 수행되었고, 인스턴스가 하나 더 늘어난 것을 볼 수 있습니다.

 

 

 

수고하셨습니다.

여기까지 텐센트 클라우드를 사용하여, Auto Scaling을 구성하고 동작을 확인 해 보았습니다.

기술 블로그 내용 중에 궁금한 점이 있다면, 질문하기를 통해 문의 해 주세요.

 

 

 

 

 

참고링크

    • Tencent Cloud Auto Scaling 문서 센터
    • 이 콘텐츠는 저작권법에 의해 보호받는 저작물로 메가존클라우드에 저작권이 있습니다.
    • 이 콘텐츠는 사전동의 없이 2차 가공 및 영리 목적으로의 이용을 금합니다.