작성자: 정영균
Autoscaling을 테스트해 보았습니다. 이미 OCI Docs에는 내용이 반영되어 있습니다.
https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/autoscalinginstancepools.htm
Autoscaling이 되려면 먼저 인스턴스에 대한 모니터링이 되어야 하고, 메트릭을 수집해야 가능한데, 컴퓨트 인스턴스쪽에 보면 아래와 같이 메트릭 정보를 그래프로 보여주도록 업데이트가 되어 있습니다. 참고로 최신 VM 이미지는 메트릭 수집이 기본적으로 활성화되어 있고, 구 버전 또는 기존 사용자 이미지는 OracleCloudAgent 소프트웨어를 설치해야 하는 것으로 나옵니다.
Autoscaling 설정 작업 절차는 다음과 같습니다.
참고로 선택적으로 로드밸런서를 설정할 수 있습니다. 이럴 경우, scale-out 했을 때 백엔드 셋에 해당 인스턴스가 자동으로 등록된다고 합니다. 이부분은 테스트 안해 봤습니다.
1. Instance Configuration Creation
Autoscaling의 기준 템플릿 VM 같은 겁니다. Pool에 여러개 만들 인스턴스의 템플릿이라고 생각하면 될 듯합니다. 인스턴스 상세 화면에서 생성합니다.
2. Instance Pool Creation
[Compute] > [Instance Pools]에서 생성합니다. Pool에 인스턴스를 몇개를 만들 지 설정합니다. 이때 앞서 생성한 Instance Configuration을 지정합니다. 이렇게 하면 Instance Configuration으로 설정한 VM이 지정한 갯수만큼 만들어집니다. AD, VCN, Subnet 등 네트웍도 지정합니다.
3. Autoscaling Configuration
Autoscaling 정책을 설정합니다.
- Autoscaling을 할때 어떤 기준으로 할 지 – CPU or Memory
- 최소 유지 인스턴스 수, 최대 인스턴스 수, 최초 인스턴스 수
- Scale-out 기준 Threshold, Scale-in Threahold
메트릭 정보는 1분마다 수집합니다. 그리고 위 그림에는 나오지 않는데 Autoscaling 정책 만들때
“Cooldown in seconds”라는 것을 지정합니다. 이는 Threshold에 도달해도 바로 Scale-out, Scale-in을 하지 않고 지정한 시간만큼 기다렸다가 작동을 하게 합니다. 기본값은 300초입니다.
Instance Pool을 만들 때 최대 인스턴스 수로 지정했던 2개 인스턴스가 만들어집니다. 그리고 Autoscaling 정책을 만들고 나면, 최초 인스턴스 수로 1을 지정했기 때문에 둘 중 하나가 삭제되었습니다.
만들어진 인스턴스의 호스트 이름은 “instpub-7055”와 같이 Instance Configration을 만들었던 호스트명에 “-숫자”를 붙인 형태로 만들어 졌습니다.
Autoscaling을 테스트하기 위해 Pool에 있는 인스턴스에 SSH 접속을 했습니다.
SSH 접속 후 부하 툴인 “stress”를 설치했습니다.
$ ssh -i C:\\Users\\youjung\\.ssh\\id_rsa opc@132.145.192.62 Last login: Wed Mar 6 05:44:55 2019 from instpub.subnetpub.demovcn.oraclevcn.com [opc@instpub-7055 ~]$ sudo yum install stress -y Loaded plugins: langpacks, ulninfo Resolving Dependencies --> Running transaction check ---> Package stress.x86_64 0:1.0.4-16.el7 will be installed --> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================ Package Arch Version Repository Size ================================================================================================================ Installing: stress x86_64 1.0.4-16.el7 ol7_developer_EPEL 39 k
Transaction Summary ================================================================================================================ Install 1 Package
Total download size: 39 k Installed size: 94 k Downloading packages: stress-1.0.4-16.el7.x86_64.rpm | 39 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : stress-1.0.4-16.el7.x86_64 1/1 Verifying : stress-1.0.4-16.el7.x86_64 1/1
Installed: stress.x86_64 0:1.0.4-16.el7
Complete! [opc@instpub-7055 ~]$ rpm -qa | grep stress stress-1.0.4-16.el7.x86_64 |
Instance Configuration이 1 OCPU VM Shape이라 2개 프로세스를 다 쓰도록 “stress”를 수행했습니다.
[opc@instpub-7055 ~]$ stress -c 2 stress: info: [16041] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
|
잠시 후, 인스턴스가 Scale-out된 것을 확인할 수 있었습니다.
다시 “stress”를 다시 수행해서 프로세서를 하나만 쓰도록 실행해 봤습니다.
[opc@instpub-7055 ~]$ ps -ef | grep stress | grep -v grep opc 16041 15888 0 05:54 pts/0 00:00:00 stress -c 2 opc 16042 16041 99 05:54 pts/0 01:03:12 stress -c 2 opc 16043 16041 99 05:54 pts/0 01:03:15 stress -c 2 [opc@instpub-7055 ~]$ kill -9 16041 [opc@instpub-7055 ~]$ kill -9 16042 [opc@instpub-7055 ~]$ kill -9 16043 [opc@instpub-7055 ~]$ ps -ef | grep stress opc 12030 11980 0 06:59 pts/2 00:00:00 grep --color=auto stress [opc@instpub-7055 ~]$ stress -c 1 stress: info: [12033] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd
|
메트릭은 지연이 있기는 하지만 잘 그려주고 있습니다. Interval은 1분이 최소 단위입니다.
“stress” 툴을 중지 시켜서 부하를 제거해 보았습니다.
[opc@instpub-7055 ~]$ ps -ef | grep stress | grep -v grep opc 12033 11980 0 06:59 pts/2 00:00:00 stress -c 1 opc 12034 12033 99 06:59 pts/2 00:37:11 stress -c 1 [opc@instpub-7055 ~]$ kill -9 12033 [opc@instpub-7055 ~]$ kill -9 12034 |
잠시 후 Instance Pool 이 “running”에서 “scaling”을 변경되고, 인스턴스 한개는 삭제되었습니다.
'Cloud > Oracle Cloud Infrastructure' 카테고리의 다른 글
OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 2.쿠버네티스 및 OCI 쿠버네티스(OKE) 개요 (0) | 2021.03.17 |
---|---|
OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 1. Introduction (0) | 2021.03.17 |
OCI NAT 게이트웨이 사용 방법 (0) | 2019.02.15 |
OCI CLI 사용방법 및 가상머신 인스턴스 만들기 (0) | 2019.01.22 |
29. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 데이터베이스 (DR 구성) (0) | 2019.01.17 |