- Amazon Web Services (AWS) EC2: AWSのEC2は広く利用される仮想マシンホスティングサービスです。コストを抑えるためには、以下のようなコードを使用することができます。
import boto3
ec2_client = boto3.client('ec2')
# インスタンスの作成
response = ec2_client.run_instances(
ImageId='ami-XXXXXXXX',
InstanceType='t2.micro',
MinCount=1,
MaxCount=1,
KeyName='your-key-pair'
)
print(response['Instances'][0]['InstanceId'])
- Google Cloud Platform (GCP) Compute Engine: GCPのCompute Engineは柔軟性とスケーラビリティに優れた仮想マシンホスティングサービスです。以下は、最も低コストなインスタンスタイプを作成するコード例です。
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
service = discovery.build('compute', 'v1', credentials=credentials)
# インスタンスの作成
project = 'your-project-id'
zone = 'us-central1-a'
request = service.instances().insert(
project=project,
zone=zone,
body={
'name': 'instance-name',
'machineType': 'zones/{}/machineTypes/f1-micro'.format(zone),
'disks': [{
'boot': True,
'autoDelete': True,
'initializeParams': {
'sourceImage': 'projects/debian-cloud/global/images/family/debian-10'
}
}],
'networkInterfaces': [{
'network': 'global/networks/default',
'accessConfigs': [{
'type': 'ONE_TO_ONE_NAT',
'name': 'External NAT'
}]
}]
}
)
response = request.execute()
print(response['id'])
- Microsoft Azure Virtual Machines: Azure Virtual Machinesは柔軟なスケーリングと低コストなオプションを提供します。以下は、最も安価なVMを作成するコード例です。
from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient
from azure.mgmt.compute.models import DiskCreateOption
credential = DefaultAzureCredential()
subscription_id = 'your-subscription-id'
resource_group_name = 'your-resource-group'
location = 'japaneast'
compute_client = ComputeManagementClient(credential, subscription_id)
# VMの作成
async_vm_creation = compute_client.virtual_machines.create_or_update(
resource_group_name,
'your-vm-name',
{
'location': location,
'os_profile': {
'computer_name': 'your-vm-name',
'admin_username': 'your-username',
'admin_password': 'your-password'
},
'hardware_profile': {
'vm_size': 'Standard_B1ls'
},
'storage_profile': {
'image_reference': {
'publisher': 'Canonical',
'offer': 'UbuntuServer',
'sku': '20_04-lts',
'version': 'latest'
},
'os_disk': {
'name': 'your-os-disk',
'create_option': DiskCreateOption.from_image
}
},
'network_profile': {
'network_interfaces': [{
'id': '/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Network/networkInterfaces/your-nic-name'.format(subscription_id, resource_group_name)
}]
}
}
)
result = async_vm_creation.result()
print(result.id)
これらはいくつかの人気のある仮想マシンホスティングサービスの例ですが、他にもさまざまなオプションがあります。コード例は各プロバイダの公式ドキュメントやAPIリファレンスを参照してカスタマイズすることができます。
注意点として、最も安価な仮想マシンホスティングプランを選択する際には、パフォーマンスやスケーラビリティの制約に注意する必要があります。価格が低い場合、リソース制限や制約があることがありますので、アプリケーションの要件に合わせて適切なプランを選択することが重要です。
また、仮想マシンホスティングの選択には他の要素も考慮する必要があります。それにはデータセンターの地理的な位置、サポートの品質、セキュリティ対策、信頼性、スケーラビリティなどが含まれます。最も安価なオプションだけでなく、これらの要素も総合的に考慮して最適な仮想マシンホスティングプロバイダを選択してください。