features and usages - cloud-barista/cb-spider GitHub Wiki


[CB-Spider ν™œμš© κ°œμš”]


image


κ·Έλ¦Όμ—μ„œ λ³΄λŠ” 바와 같이, 
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 μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν™œμš©ν•˜μ—¬ 등둝/쑰회/μ‚­μ œκ°€ κ°€λŠ₯ν•˜λ‹€.
  • λ“±λ‘λœ 이름을 μ΄μš©ν•œ 등둝은 κΈ°μ‘΄ 정보λ₯Ό μ—…λ°μ΄νŠΈ ν•œλ‹€.
  • μ£Όμš” 등둝 μ •λ³΄λŠ” λ‹€μŒκ³Ό κ°™λ‹€.
  • 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"
      }'
      

(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"}]
      • λŒ€μƒ ν΄λΌμš°λ“œ 별 ν¬λ¦¬λ΄μ…œ 정보 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"
           ],
           ... μ€‘λž΅ ...
        
  • 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"
              }
          ]
      }'
      

(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"
              }
          ]
      }'
      

(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"
      }'
      

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)μ—μ„œ μ œκ³΅ν•˜λŠ” 이미지 λͺ©λ‘ 및 정보λ₯Ό μ œκ³΅ν•œλ‹€.
  • 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"
            },
      ... μ€‘λž΅ ...
      

(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]"
         },
      ... μ€‘λž΅ ...
      

(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"}]
  • 특이 사항
  • 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"
                  }
              ]
          }
      }'
      

(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 μ„€μ •κ³Ό 동일
  • 특이 사항
  • 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 μ„€μ •μ˜ 경우 μƒλž΅ κ°€λŠ₯
                  }
              ]
          }        
      }'
      

(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"
          }
      }'
      

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"
    • 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"
          }
      }'
      

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)

[κ΄€λ ¨ 정보]