-
Notifications
You must be signed in to change notification settings - Fork 11
Feature and Usage
hyokyungk edited this page Aug 18, 2021
·
26 revisions
CB-Dragonfly를 이용하여 멀티클라우드를 모니터링하는 순서는 다음과 같다.
1. 모니터링 에이전트 설치
2. 모니터링 알람 임계치 설정
3. 모니터링 환경 설정
4. VM 모니터링 실시
CB-Dragonfly가 제공하는 주요 기능은 다음과 같고, 세부 내용은 아래와 같다.
1. 모니터링 에이전트 자동 설치(Multi-Cloud Monitoring Agent Auto-Installation)
2. 모니터링 방식 및 정책 설정(Multi-Cloud Monitoring Method & Policy Configuration)
3. VM 모니터링 메트릭 조회(Multi-Cloud VM Monitoring Metric Look-up)
- 대상 클라우드(=CSP)에 연동을 위해 필요한 클라우드 정보 및 접속 정보 등을 등록하여 반복 활용한다.
- 이 등록 정보를 클라우드 연결 설정(Cloud Connection Configuration) 정보라 한다.
- 클라우드 연결 설정 정보는 CB-Spider 인터페이스를 활용하여 등록/조회/삭제가 가능하다.
- 등록된 이름을 이용한 등록은 등록된 기존 정보를 업데이트 한다.
- 연결 설정 정보의 등록은 다음 순서로 진행할 수 있다.
(1) Cloud Driver 정보 등록 및 관리 (2) Cloud Credential 정보 등록 및 관리 (3) Cloud Region/Zone 정보 등록 및 관리 (4) Cloud Connection Configuration 정보 등록 및 관리
- Cloud Driver, Credential, Region/Zone 정보의 등록은 순서에 무관하며,
- Cloud Connection Configuration 정보 등록은 앞의 3가지 정보를 등록한 후에 등록이 가능하다.
- CB-Spider는 동적 Plug-in이 가능한 Cloud Driver 기반으로 CSP 연동 대상을 확장 가능한 구조이다.
- 연동하고자 하는 대상 Cloud를 위해서 개발된 Cloud Driver 정보를 등록한다.
- Cloud Driver 정보는 CB-Spider 인터페이스를 활용하여 등록/조회/삭제가 가능하다.
- 등록된 이름을 이용한 등록은 기존 정보를 업데이트 한다.
- 주요 등록 정보는 다음과 같다.
- Cloud Driver 이름: 예시) "aws-driver01"
- 대상 클라우드 종류: 예시) "AWS" (제공 CSP 참고)
- Cloud Driver 라이브러리 이름: "aws-driver-v1.0.so"
- API 활용 예시
- REST API: Register Cloud Driver Info
curl -sX POST http://localhost:1024/spider/driver \ -H 'Content-Type: application/json' \ -d '{ "DriverName": "aws-driver01", "ProviderName": "AWS", "DriverLibFileName": "aws-driver-v1.0.so" }'
- REST API: Register Cloud Driver Info
- 인터페이스 규격 및 예시
- 연동하고자 하는 대상 Cloud(CSP)의 Cloud Credential 정보를 등록한다.
- Cloud Credential 정보는 CB-Spider 인터페이스를 활용하여 등록/조회/삭제가 가능하다.
- Cloud Credential 정보 조회시 credential 정보 자체는 암호화되어 관리 및 제공된다.
- 등록된 이름을 이용한 등록은 기존 정보를 업데이트 한다.
- 주요 등록 정보는 다음과 같다.
- 클라우드 크리덴셜 이름: 예시) "aws-credential01"
- 대상 클라우드 종류: 예시) "AWS" (제공 CSP 참고)
- 대상 클라우드 크리덴셜 정보(Key-Value 형식, CSP별로 다름): 예시) [{"Key":"ClientId", "Value":"AKIAR4XXXXX"}, {"Key":"ClientSecret", "Value":"QOumDIA4XXXXXXXX"}]
- API 활용 예시
- REST API: Register Cloud Credential Info
curl -sX POST http://localhost:1024/spider/credential \ -H 'Content-Type: application/json' \ -d '{ "CredentialName": "aws-credential01", "ProviderName": "AWS", "KeyValueInfoList": [ { "Key": "ClientId", "Value": "AKIAR4XXXXX" }, { "Key": "ClientSecret", "Value": "QOumDIA4XXXXXXXX" } ] }'
- REST API: Register Cloud Credential Info
- 인터페이스 규격 및 예시
- 연동하고자 하는 대상 Cloud(CSP)가 제공하는 Region 및 Zone 정보를 등록한다.
- Cloud Region 및 Zone 정보는 CB-Spider 인터페이스를 활용하여 등록/조회/삭제가 가능하다.
- 등록된 이름을 이용한 등록은 기존 정보를 업데이트 한다.
- 주요 등록 정보는 다음과 같다.
- 클라우드 리전 이름: 예시) "aws-ohio"
- 대상 클라우드 종류: 예시) "AWS" (제공 CSP 참고)
- 대상 클라우드 Region/Zone 정보: 예시)
[{"Key":"Region", "Value":"us-east-2"}, {"Key":"Zone", "Value":"us-east-2a"}]
- API 활용 예시
- REST API: Register Cloud Region/Zone Info
curl -sX POST http://localhost:1024/spider/region \ -H 'Content-Type: application/json' \ -d '{ "RegionName": "aws-ohio", "ProviderName": "AWS", "KeyValueInfoList": [ { "Key": "Region", "Value": "us-east-2" }, { "Key": "Zone", "Value": "us-east-2a" } ] }'
- REST API: Register Cloud Region/Zone Info
- 인터페이스 규격 및 예시
- 연동하고자 하는 대상 Cloud(CSP)의 연결 설정 정보를 등록한다.
- Cloud Connection Configuration 정보는 CB-Spider 인터페이스를 활용하여 등록/조회/삭제가 가능하다.
- 등록된 이름을 이용한 등록은 기존 정보를 업데이트 한다.
- 주요 등록 정보는 다음과 같다.
- 클라우드 연결 설정 이름: 예시) "aws-ohio-config"
- 대상 클라우드 종류: 예시) "AWS" (제공 CSP 참고)
- 대상 클라우드를 위해 등록한 드라이버 이름: 예시) aws-driver01
- 대상 클라우드를 위해 등록한 크리덴셜 이름: 예시) aws-credential01
- 대상 클라우드를 위해 등록한 리전 이름: 예시) aws-ohio
- API 활용 예시
- REST API: Register Cloud Connection Configuration Info
curl -sX POST http://localhost:1024/spider/connectionconfig \ -H 'Content-Type: application/json' \ -d '{ "ConfigName": "aws-ohio-config", "ProviderName": "AWS", "DriverName": "aws-driver01", "CredentialName": "aws-credential01", "RegionName": "aws-ohio" }'
- REST API: Register Cloud Connection Configuration Info
- 인터페이스 규격 및 예시
- 멀티클라우드 컴퓨팅 인프라(VM:Virtual Machine) 운영을 위해서 필요한 클라우드 자원을 생성 및 제어 한다.
- 멀티클라우드 자원을 제어하기 위해서는 대상 클라우드의 연결 설정(Cloud Connection Configuration)의 사전 등록이 필요하다.
- CB-Spider가 제공하는 멀티클라우드 자원은 다음과 같다. 제공 자원 참고
(1) VM Image 정보 제공 (2) VM Spec 정보 제공 (3) VPC/Subnet 생성 및 제어 (4) SecurityGroup 생성 및 제어 (5) VM KeyPair 생성 및 제어
- VM Image는 연동 대상 클라우드(CSP Regin/Zone)에서 제공하는 이미지 목록 및 정보를 제공한다.
- VM Image 정보는 CB-Spider 인터페이스를 활용하여 목록 및 세부 정보 조회가 가능하다.
- 주요 제공 정보는 다음과 같다.
- VM 이미지 이름: 예시) "ami-0bbe28eb2173f6167"
- VM 이미지 운영체제(Geust OS): 예시) "Linux/UNIX"
- VM 이미지 상태: "available"
- VM 이미지 부가 정보(CSP 제공 정보): 예시)
CreationDate:2019-11-07T19:50:06.000Z, Architecture:x86_64, OwnerId:898082745236, ImageType:machine, ImageLocation:amazon/Deep Learning AMI (Ubuntu 18.04) Version 25.3, VirtualizationType:hvm, Public:true, PlatformDetails:Linux/UNIX, Name:Deep Learning AMI (Ubuntu 18.04) Version 25.3, Description:MXNet-1.5.0, TensorFlow-1.14, PyTorch-1.2, Keras-2.2, Chainer-6.1, configured with NVIDIA CUDA, cuDNN, NCCL, Intel MKL-DNN, Docker & NVIDIA-Docker. For a fully managed experience, check: https://aws.amazon.com/sagemaker, ImageOwnerAlias:amazon, RootDeviceName:/dev/sda1, RootDeviceType:ebs, EnaSupport:true
- API 활용 예시
- REST API: Get VM Image
curl -sX GET http://localhost:1024/spider/vmimage/ami-0bbe28eb2173f6167 \ -H 'Content-Type: application/json' \ -d '{ "ConnectionName": "aws-ohio-config" }'
- REST API: Get VM Image
- 인터페이스 규격 및 예시
- VM Spec은 연동 대상 클라우드(CSP Regin/Zone)에서 제공하는 VM 사양 목록 및 정보를 제공한다.
- VM Spec 정보는 CB-Spider 인터페이스를 활용하여 목록 및 세부 정보 조회가 가능하다.
- 주요 제공 정보는 다음과 같다.
- VM 사양 이름: 예시) "p3.2xlarge"
- VM CPU 사양: 예시) "Count: 8, Clock: 2.7GHz"
- VM 메모리 사양: "62464 MB"
- VM GPU 사양: 예시) "Mfr: NVIDIA, Model: V100, Memory: 16384 MB, Count: 1"
- VM 사양 부가 정보(CSP 제공 정보): 예시)
AutoRecoverySupported:true, MemoryInfo:map[SizeInMiB:62464], SupportedVirtualizationTypes:[hvm], InstanceStorageSupported:false, BareMetal:false, CurrentGeneration:true, DedicatedHostsSupported:true, GpuInfo:map[Gpus:[map[Count:1 Manufacturer:NVIDIA MemoryInfo:map[SizeInMiB:16384] Name:V100]] TotalGpuMemoryInMiB:16384], HibernationSupported:false, Hypervisor:xen, ProcessorInfo:map[SupportedArchitectures:[x86_64] SustainedClockSpeedInGhz:2.7], SupportedUsageClasses:[on-demand spot], VCpuInfo:map[DefaultCores:4 DefaultThreadsPerCore:2 DefaultVCpus:8 ValidCores:[1 2 3 4] ValidThreadsPerCore:[1 2]], BurstablePerformanceSupported:false, EbsInfo:map[EbsOptimizedInfo:map[BaselineBandwidthInMbps:1750 BaselineIops:10000 BaselineThroughputInMBps:218.75 MaximumBandwidthInMbps:1750 MaximumIops:10000 MaximumThroughputInMBps:218.75] EbsOptimizedSupport:default EncryptionSupport:supported NvmeSupport:unsupported], FreeTierEligible:false, NetworkInfo:map[DefaultNetworkCardIndex:0 EfaSupported:false EnaSupport:supported Ipv4AddressesPerInterface:15 Ipv6AddressesPerInterface:15 Ipv6Supported:true MaximumNetworkCards:1 MaximumNetworkInterfaces:4 NetworkCards:[map[MaximumNetworkInterfaces:4 NetworkCardIndex:0 NetworkPerformance:Up to 10 Gigabit]] NetworkPerformance:Up to 10 Gigabit], SupportedRootDeviceTypes:[ebs], InstanceType:p3.2xlarge, PlacementGroupInfo:map[SupportedStrategies:[cluster partition spread]]
- API 활용 예시
- REST API: Get VM Spec
curl -sX GET http://localhost:1024/spider/vmspec/p3.2xlarge \ -H 'Content-Type: application/json' \ -d '{ "ConnectionName": "aws-ohio-config" }'
- REST API: Get VM Spec
- 인터페이스 규격 및 예시
- VPC/Subnet 자원은 연동 대상 클라우드(CSP Regin/Zone)에 사용자의 가상 네트워크 환경을 제공하기 위한 자원이다. ※ VPC: Virtual Private Cloud (https://en.wikipedia.org/wiki/Virtual_private_cloud)
- VPC/Subnet 자원은 CB-Spider 인터페이스를 활용하여 생성/조회/삭제가 가능하다.
- Subnet 자원은 VPC 생성시에 함께 생성 할 수 있으며, VPC 생성 이후에도 추가/삭제가 가능하다.
- 존재하는 이름을 이용한 생성 요청은 오류를 반환한다.
- 생성시 주요 입력 정보는 다음과 같다.
- 등록한 클라우드 연결 설정 이름: 예시) "aws-ohio-config"
- VPC 이름: 예시) "vpc-01"
- VPC CIDR 정보: 예시) "192.168.0.0/16"
- Subnet 정보(1개 이상): 예시) [{"Subnet 이름":"subnet-01", "Subnet CIDR":"192.168.1.0/24"}, {"Subnet 이름":"subnet-02", "Subnet CIDR":"192.168.2.0/24"}]
- API 활용 예시
- REST API: Create VPC/Subnet
curl -sX POST http://localhost:1024/spider/vpc \ -H 'Content-Type: application/json' \ -d '{ "ConnectionName": "aws-ohio-config", "ReqInfo": { "Name": "vpc-01", "IPv4_CIDR": "192.168.0.0/16", "SubnetInfoList": [ { "Name": "subnet-01", "IPv4_CIDR": "192.168.1.0/24" } ] } }'
- REST API: Create VPC/Subnet
- 인터페이스 규격 및 예시
- SecurityGroup 자원은 연동 대상 클라우드(CSP Regin/Zone)에 VM 보안그룹(방화벽)을 제공하기 위한 자원이다.
- SecurityGroup 자원은 CB-Spider 인터페이스를 활용하여 생성/조회/삭제가 가능하다.
- SecurityGroup은 VPC 생성 후 생성한 VPC를 대상으로 생성이 가능하다.
- 존재하는 이름을 이용한 생성 요청은 오류를 반환한다.
- 생성시 주요 입력 정보는 다음과 같다.
- 등록한 클라우드 연결 설정 이름: 예시) "aws-ohio-config"
- 보안그룹 이름: 예시) "sg-01"
- 대상 VPC 이름: 예시) "vpc-01"
- 보안규칙 정보(1개 이상): 예시) [{"From Port 번호":"1", "To Port 번호":"65535", "IPProtocol":"tcp", "Direction":"inbound", "CIDR":"1.2.3.4/32"}] ※ CIDR: VM 접근 허용 대상 IP 주소 범위 설정 ※ CIDR 설정의 생략은 default 값인 0.0.0.0/0 설정과 동일
- API 활용 예시
- REST API: Create SecurityGroup
curl -sX POST http://localhost:1024/spider/securitygroup \ -H 'Content-Type: application/json' \ -d '{ "ConnectionName": "aws-ohio-config", "ReqInfo": { "Name": "sg-01", "VPCName": "vpc-01", "SecurityRules": [ { "FromPort": "1", "ToPort": "65535", "IPProtocol": "tcp", "Direction": "inbound", "CIDR": "1.2.3.4/32" # 0.0.0./0 설정의 경우 생략 가능 } ] } }'
- REST API: Create SecurityGroup
- 인터페이스 규격 및 예시
- KeyPair 자원은 연동 대상 클라우드(CSP Regin/Zone)에 VM 접속(SSH)을 제공하기 위한 자원이다.
- KeyPair 자원은 CB-Spider 인터페이스를 활용하여 생성/조회/삭제가 가능하다.
- 존재하는 이름을 이용한 생성 요청은 오류를 반환한다.
- 생성시 주요 입력 정보는 다음과 같다.
- 등록한 클라우드 연결 설정 이름: 예시) "aws-ohio-config"
- 키페어 이름: 예시) "keypair-01"
- API 활용 예시
- REST API: Create KeyPair
curl -sX POST http://localhost:1024/spider/keypair \ -H 'Content-Type: application/json' \ -d '{ "ConnectionName": "aws-ohio-config", "ReqInfo": { "Name": "keypair-01" } }'
- REST API: Create KeyPair
- 인터페이스 규격 및 예시
- 멀티클라우드 컴퓨팅 인프라 운영을 위해서 필요한 가상머신을 생성 및 라이프사이클을 제어한다.
- 멀티클라우드 VM을 제어하기 위해서는 대상 클라우드의 연결 설정(Cloud Connection Configuration)의 사전 등록이 필요하다.
- CB-Spider가 제공하는 가상머신 관련 기능은 다음과 같다.
(1) VM 생성 및 라이프사이클 제어 (2) VM 상태 목록 및 정보 조회 (3) VM 목록 및 정보 조회
- VM은 연동 대상 클라우드(CSP Regin/Zone)에서 생성 및 운영 된다.
- VM은 CB-Spider 인터페이스를 활용하여 생성/조회/삭제 및 라이프사이클 제어가 가능하다.
- VM 생성을 위해서는 VM Image, VM Spec, VPC/Subnet, SecurityGroup 및 VM KeyPair 자원의 사전 준비가 필요하다.
- CB-Spider는 다음과 같은 VM lifecycle을 제공한다.
- VM 가동 및 종료
- VM 중지 및 재개
- VM 재가동
- CB-Spider는 다음과 같은 VM 상태를 제공한다.
- Creating 상태: VM이 생성되고 있는 상태
- Running 상태: VM이 정상 동작 중인 상태
- Suspending 상태: VM이 running 상태에서 Suspended 상태로 상태 전이 중인 상태
- Suspended 상태: VM이 일시 중지된 상태(재시작 가능)
- Resuming 상태: VM이 Suspended 상태에서 Running 상태로 상태 전이 중인 상태
- Rebooting 상태: VM이 재가동 중인 상태
- Terminating 상태: VM이 종료 중인 상태
- Terminated 상태: VM이 종료된 상태(재시작 불가)
- NotExist 상태: VM이 존재 하지 않는 상태
- Failed 상태: VM 생성시 오류가 오류가 발생한 상태
- 존재하는 이름을 이용한 생성 요청은 오류를 반환한다.
- VM 생성이 완료 되어도 SSH를 통한 VM 접속은 일정 시간 후에 가능할 수 있다.
- 생성시 주요 입력 정보는 다음과 같다.
- 등록한 클라우드 연결 설정 이름: 예시) "aws-ohio-config"
- VM 이름: 예시) "vm-01"
- VM 이미지 이름: 예시) "ami-0bbe28eb2173f6167"
- VM 사양 이름: 예시) "p3.2xlarge"
- VPC 이름: 예시) "vpc-01"
- Subnet 이름: 예시) "subnet-01"
- SecurityGroup 이름(1개 이상): 예시) "sg-01"
- VM KeyPair 이름: 예시) "keypair-01"
- API 활용 예시
- REST API: Create VM
curl -sX POST http://localhost:1024/spider/vm \ -H 'Content-Type: application/json' \ -d '{ "ConnectionName": "aws-ohio-config", "ReqInfo": { "Name": "vm-01", "ImageName": "ami-0bbe28eb2173f6167", "VMSpecName": "p3.2xlarge", "VPCName": "vpc-01", "SubnetName": "subnet-01", "SecurityGroupNames": [ "sg-01" ], "KeyPairName": "keypair-01" } }'
- REST API: Create VM
- 인터페이스 규격 및 예시
- Overview
- Supported-Metrics
- Install & Start Guide
- Feature & Usage
-
User Interface
- Window Monitoring Agent Installer(until Cappuccino)
- CLI Tool Guide
- REST API Guide
- GRPC API Guide
- Design
- Roadmap
- Developer Guide
- Test Reports
- History
- Issue