features and usages - cloud-barista/cb-spider GitHub Wiki
[CB-Spider νμ© κ°μ]
κ·Έλ¦Όμμ 보λ λ°μ κ°μ΄,
CB-Spiderλ₯Ό μ΄μ©νμ¬ λ©ν°ν΄λΌμ°λλ₯Ό μ μ΄νλ μ£Όμ μμλ λ€μκ³Ό κ°λ€.
1. μ°λ λμ ν΄λΌμ°λ μ°κ²° μ€μ λ±λ‘
2. VM μμ±μ νμν μμ μμ±
3. μμ± μμμ νμ©ν VM μμ± λ° λΌμ΄νμ¬μ΄ν΄ μ μ΄
4. μμ± μμμ νμ©ν Kubernetes(Provider-Managed Kubernetes) μμ± λ° μ μ΄
CB-Spiderκ° μ 곡νλ μ£Όμ κΈ°λ₯μ λ€μκ³Ό κ°κ³ , μΈλΆ λ΄μ©μ μλμ κ°λ€.
1. λ©ν°ν΄λΌμ°λ μ°κ²° μ€μ κ΄λ¦¬(Multi-Cloud Connection Configuration Management)
2. λ©ν°ν΄λΌμ°λ VM μΈνλΌ μμ μ μ΄(Multi-Cloud VM Infra Resource Control)
3. λ©ν°ν΄λΌμ°λ VM λΌμ΄νμ¬μ΄ν΄ μ μ΄(Multi-Cloud VM Lifecycle Control)
4. λ©ν°ν΄λΌμ°λ λμ€ν¬ μ μ΄(Multi-Cloud Disk Control)
5. λ©ν°ν΄λΌμ°λ λ€νΈμν¬ λ‘λ벨λ°μ μ μ΄(Multi-Cloud NLB; Network LoadBalancer Control)
6. λ©ν°ν΄λΌμ°λ VM Snapnot/MyImage μ μ΄(Multi-Cloud VM Snapshot/MyImage Control)
7. λ©ν°ν΄λΌμ°λ Kubernetes μ μ΄(Multi-Cloud Kubernetes Control)
8. λ©ν°ν΄λΌμ°λ Region/Zone μ 보(Multi-Cloud Region/Zone Info)
9. λ©ν°ν΄λΌμ°λ Price μ 보(Multi-Cloud Price Info)
1. λ©ν°ν΄λΌμ°λ μ°κ²° μ€μ κ΄λ¦¬(Multi-Cloud Connection Configuration Management)
- λμ ν΄λΌμ°λμ μ°λμ μν΄ νμν ν΄λΌμ°λ μ 보 λ° μ μ μ 보 λ±μ λ±λ‘νμ¬ λ°λ³΅ νμ©νλ€.
- μ΄ λ±λ‘ μ 보λ₯Ό ν΄λΌμ°λ μ°κ²° μ€μ (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κ°μ§ μ 보λ₯Ό λ±λ‘ν νμ λ±λ‘μ΄ κ°λ₯νλ€.
(1) Cloud Driver μ 보 λ±λ‘ λ° κ΄λ¦¬
- 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" (CSP λΌμ΄λΈλ¬λ¦¬ μ΄λ¦ μ°Έκ³ )
- 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
(2) Cloud Credential μ 보 λ±λ‘ λ° κ΄λ¦¬
- μ°λνκ³ μ νλ λμ Cloud(CSP)μ Cloud Credential μ 보λ₯Ό λ±λ‘νλ€.
- Cloud Credential μ 보λ CB-Spider μΈν°νμ΄μ€λ₯Ό νμ©νμ¬ λ±λ‘/μ‘°ν/μμ κ° κ°λ₯νλ€.
- Cloud Credential μ 보 μ‘°νμ credential μ 보 μ체λ μνΈνλμ΄ κ΄λ¦¬ λ° μ 곡λλ€.
- λ±λ‘λ μ΄λ¦μ μ΄μ©ν λ±λ‘μ κΈ°μ‘΄ μ 보λ₯Ό μ λ°μ΄νΈ νλ€.
- μ£Όμ λ±λ‘ μ 보λ λ€μκ³Ό κ°λ€.
- ν΄λΌμ°λ ν¬λ¦¬λ΄μ μ΄λ¦: μμ) "aws-credential01"
- λμ ν΄λΌμ°λ μ’ λ₯: μμ) "AWS" (μ 곡 CSP μ°Έκ³ )
- λμ ν΄λΌμ°λ ν¬λ¦¬λ΄μ
μ 보(Key-Value νμ, ν΄λΌμ°λ λ³λ‘ λ€λ¦):
- ν΄λΌμ°λ λ³λ‘ 2κ°μ§ νμ
μ 곡
- (1) Type-1: Spider νμ
- (2) Type-2: CSP νμ
- AWS Type-1 μμ:
[{"Key":"ClientId", "Value":"AKIAR4XXXXX"}, {"Key":"ClientSecret", "Value":"QOumDIA4XXXXXXXX"}]
- AWS Type-2 μμ:
[{"Key":"aws_access_key_id", "Value":"AKIAR4XXXXX"}, {"Key":"aws_secret_access_key", "Value":"QOumDIA4XXXXXXXX"}]
- AWS Type-1 μμ:
- λμ ν΄λΌμ°λ λ³ ν¬λ¦¬λ΄μ
μ 보 Key Name νμΈ λ°©λ²(μμ:
AWS
κ²½μ°)curl -sX GET http://localhost:1024/spider/cloudos/metainfo/AWS -H 'Content-Type: application/json' |json_pp |more { "Credential" : [ <========== Type-1 "ClientId", "ClientSecret" ], "CredentialCSP" : [ <========== Type-2 "aws_access_key_id", "aws_secret_access_key" ], ... μ€λ΅ ...
- ν΄λΌμ°λ λ³λ‘ 2κ°μ§ νμ
μ 곡
- API νμ© μμ(Type-2)
- 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": "aws_access_key_id", "Value": "AKIAR4XXXXX" }, { "Key": "aws_secret_access_key", "Value": "QOumDIA4XXXXXXXX" } ] }'
- REST API: Register Cloud Credential Info
(3) Cloud Region/Zone μ 보 λ±λ‘ λ° κ΄λ¦¬
- μ°λνκ³ μ νλ λμ 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
(4) Cloud Connection Configuration μ 보 λ±λ‘ λ° κ΄λ¦¬
- μ°λνκ³ μ νλ λμ 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
2. λ©ν°ν΄λΌμ°λ VM μΈνλΌ μμ μ μ΄(Multi-Cloud VM Infra Resource Control)
- λ©ν°ν΄λΌμ°λ μ»΄ν¨ν VM μΈνλΌ μ΄μμ μν΄μ νμν ν΄λΌμ°λ μμμ μμ± λ° μ μ΄ νλ€.
- λ©ν°ν΄λΌμ°λ μμμ μ μ΄νκΈ° μν΄μλ λμ ν΄λΌμ°λμ μ°κ²° μ€μ (Cloud Connection Configuration)μ μ¬μ λ±λ‘μ΄ νμνλ€.
- CB-Spiderκ° μ 곡νλ λ©ν°ν΄λΌμ°λ μμμ λ€μκ³Ό κ°λ€. μ 곡 μμ μ°Έκ³
(1) VM Image μ 보 μ 곡 (2) VM Spec μ 보 μ 곡 (3) VPC/Subnet μμ± λ° μ μ΄ (4) SecurityGroup μμ± λ° μ μ΄ (5) VM KeyPair μμ± λ° μ μ΄
(1) VM Image μ 보 μ 곡
- VM Imageλ μ°λ λμ ν΄λΌμ°λ(CSP Regin/Zone)μμ μ 곡νλ μ΄λ―Έμ§ λͺ©λ‘ λ° μ 보λ₯Ό μ 곡νλ€.
- β» MyImage νμ©μ VM Snapshot/MyImage μ μ΄ λ° API μ°Έκ³
- 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?ConnectionName=aws-ohio-config | json_pp
{ "GuestOS" : "Linux/UNIX", "IId" : { "NameId" : "ami-0bbe28eb2173f6167", "SystemId" : "ami-0bbe28eb2173f6167" }, "KeyValueList" : [ { "Key" : "CreationDate", "Value" : "2020-08-10T20:29:49.000Z" }, { "Key" : "Architecture", "Value" : "x86_64" }, { "Key" : "OwnerId", "Value" : "099720109477" }, ... μ€λ΅ ...
- REST API: Get VM Image
(2) VM Spec μ 보 μ 곡
- 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?ConnectionName=aws-ohio-config | json_pp
{ "Gpu" : [ { "Count" : "1", "Mem" : "16384", "Mfr" : "NVIDIA", "Model" : "V100" } ], "KeyValueList" : [ { "Key" : "EbsInfo", "Value" : "map[EbsOptimizedInfo:map[BaselineBandwidthInMbps:1750 BaselineIops:10000 BaselineThroughputInMBps:218.75 MaximumBandwidthInMbps:1750 MaximumIops:10000 MaximumThroughputInMBps:218.75] EbsOptimizedSupport:default EncryptionSupport:supported NvmeSupport:unsupported]" }, ... μ€λ΅ ...
- REST API: Get VM Spec
(3) VPC/Subnet μμ± λ° μ μ΄
- 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 Name":"subnet-01", "Subnet CIDR":"192.168.1.0/24"}, {"Subnet Name":"subnet-02", "Subnet CIDR":"192.168.2.0/24"}]
- νΉμ΄ μ¬ν
- μ 곡 μμ VPC νΉμ΄μ¬ν μ°Έκ³
- 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
(4) SecurityGroup μμ± λ° μ μ΄
- SecurityGroup μμμ μ°λ λμ ν΄λΌμ°λ(CSP Regin/Zone)μ VM 보μκ·Έλ£Ή(λ°©νλ²½)μ μ 곡νκΈ° μν μμμ΄λ€.
- SecurityGroup μμμ CB-Spider μΈν°νμ΄μ€λ₯Ό νμ©νμ¬ μμ±/μ‘°ν/μμ κ° κ°λ₯νλ€.
- SecurityGroupμ VPC μμ± ν μμ±ν VPCλ₯Ό λμμΌλ‘ μμ±μ΄ κ°λ₯νλ€.
- Security Rule(보μκ·Έλ£Ή κ·μΉ, λ°©νλ²½ μ κ·Ό κ·μΉ)μ SecurityGroup μμ±μμ ν¨κ» μ€μ ν μ μμΌλ©°,
- SecurityGroup μμ± μ΄νμλ μΆκ°/μμ κ° κ°λ₯νλ€.
- Security Ruleμ λ³λμ κ°λ³ IDκ° μ‘΄μ¬νμ§ μμΌλ©°, κ·μΉμ μ€μ κ°μΌλ‘ κ΅¬λΆ λ° κ΄λ¦¬ν μ μλ€.
- Security Rule κ·κ²© λ° μΈλΆ λ΄μ©μ CB-Spider Security Group and Rulesμ μ°Έκ³ νλ€.
- μ‘΄μ¬νλ μ΄λ¦μ μ΄μ©ν μμ± μμ²μ μ€λ₯λ₯Ό λ°ννλ€.
- μμ±μ μ£Όμ μ
λ ₯ μ 보λ λ€μκ³Ό κ°λ€.
- λ±λ‘ν ν΄λΌμ°λ μ°κ²° μ€μ μ΄λ¦: μμ) "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 μ€μ κ³Ό λμΌ
- νΉμ΄ μ¬ν
- μ 곡 μμ Security Group νΉμ΄μ¬ν μ°Έκ³
- 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
(5) VM KeyPair μμ± λ° μ μ΄
- 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
3. λ©ν°ν΄λΌμ°λ VM λΌμ΄νμ¬μ΄ν΄ μ μ΄(Multi-Cloud VM Lifecycle Control)
- λ©ν°ν΄λΌμ°λ μ»΄ν¨ν μΈνλΌ μ΄μμ μν΄μ νμν VMμ μμ± λ° λΌμ΄νμ¬μ΄ν΄μ μ μ΄νλ€.
- λ©ν°ν΄λΌμ°λ VMμ μ μ΄νκΈ° μν΄μλ λμ ν΄λΌμ°λμ μ°κ²° μ€μ (Cloud Connection Configuration)μ μ¬μ λ±λ‘μ΄ νμνλ€.
- CB-Spiderκ° μ 곡νλ VM κ΄λ ¨ κΈ°λ₯μ λ€μκ³Ό κ°λ€.
(1) VM μμ± λ° λΌμ΄νμ¬μ΄ν΄ μ μ΄ (2) VM μν λͺ©λ‘ λ° μ 보 μ‘°ν (3) VM λͺ©λ‘ λ° μ 보 μ‘°ν
(1) 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"
- β» CSPλ³ ImageName μ°Έκ³ : How to get Image List
- VM μ¬μ μ΄λ¦: μμ) "p3.2xlarge"
- VPC μ΄λ¦: μμ) "vpc-01"
- Subnet μ΄λ¦: μμ) "subnet-01"
- SecurityGroup μ΄λ¦(1κ° μ΄μ): μμ) "sg-01"
- VM KeyPair μ΄λ¦: μμ) "keypair-01"
- RootDiskType μ΄λ¦(optional): μ€μ κ°μ΄λ μ°Έκ³
- RootDiskSize ν¬κΈ°(optional): μ€μ κ°μ΄λ μ°Έκ³
- API νμ© μμ
-
REST API: Create VM (β» CSPλ³ ImageName μ°Έκ³ : How to get Image List )
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" } }'
-