Список провайдеров облачного хостинга и примеры кода для создания экземпляров

Вот список провайдеров облачного хостинга:

  1. Веб-сервисы Amazon (AWS)

    import boto3
    # Create an EC2 instance
    ec2 = boto3.resource('ec2')
    instance = ec2.create_instances(
       ImageId='ami-12345678',
       MinCount=1,
       MaxCount=1,
       InstanceType='t2.micro'
    )
  2. Microsoft Azure

    from azure.identity import DefaultAzureCredential
    from azure.mgmt.compute import ComputeManagementClient
    # Create a virtual machine
    credential = DefaultAzureCredential()
    compute_client = ComputeManagementClient(credential, subscription_id)
    vm_params = {
       'location': 'eastus',
       'hardware_profile': {
           'vm_size': 'Standard_D2s_v3'
       },
       'storage_profile': {
           'image_reference': {
               'publisher': 'Canonical',
               'offer': 'UbuntuServer',
               'sku': '16.04-LTS',
               'version': 'latest'
           }
       },
       'os_profile': {
           'computer_name': 'myVM',
           'admin_username': 'azureuser',
           'admin_password': 'MyPassword123'
       },
       'network_profile': {
           'network_interfaces': [{
               'id': '/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Network/networkInterfaces/{nic_name}',
               'properties': {
                   'primary': True
               }
           }]
       }
    }
    vm = compute_client.virtual_machines.create_or_update(resource_group_name, vm_name, vm_params)
  3. Облачная платформа Google (GCP)

    from google.cloud import compute_v1
    # Create a virtual machine
    compute_client = compute_v1.InstancesClient()
    project = 'your-project-id'
    zone = 'us-central1-a'
    config = {
       'name': 'instance-name',
       'machine_type': f'zones/{zone}/machineTypes/n1-standard-1',
       'network_interfaces': [{
           'network': f'projects/{project}/global/networks/default',
           'access_configs': [{'type': 'ONE_TO_ONE_NAT', 'name': 'External NAT'}]
       }],
       'disks': [{
           'boot': True,
           'auto_delete': True,
           'initialize_params': {
               'source_image': 'projects/debian-cloud/global/images/family/debian-10'
           }
       }]
    }
    operation = compute_client.insert(project, zone, config)
  4. DigitalOcean

    import digitalocean
    # Create a Droplet
    manager = digitalocean.Manager(token='your-api-token')
    keys = manager.get_all_sshkeys()
    droplet = digitalocean.Droplet(
       token='your-api-token',
       name='example.com',
       region='nyc3',
       size='s-1vcpu-1gb',
       image='ubuntu-18-04-x64',
       ssh_keys=keys,
       backups=False
    )
    droplet.create()
  5. IBM Cloud

    import ibm_boto3
    from ibm_botocore.client import Config
    # Create a virtual server instance
    service = ibm_boto3.resource('SoftLayer_Virtual_Guest', ibm_api_key_id='your-ibm-api-key', ibm_service_instance_id='your-ibm-service-instance-id', ibm_auth_endpoint='https://iam.cloud.ibm.com/identity/token')
    instance = service.create_object({
       'hostname': 'my-instance',
       'domain': 'example.com',
       'startCpus': 1,
       'maxMemory': 1024,
       'hourlyBillingFlag': True,
       'localDiskFlag': False,
       'operatingSystemReferenceCode': 'UBUNTU_LATEST',
       'datacenter': {'name': 'dal10'},
       'networkComponents': [{'maxSpeed': 1000}],
       'postInstallScriptUri': 'https://example.com/post-install.sh'
    })

Это всего лишь несколько примеров популярных провайдеров облачного хостинга и способов создания экземпляров с использованием их API или SDK. Не забудьте заменить заполнители собственными значениями.