API kompatybilne z AWS EC2

API kompatybilne z AWS EC2 udostępnia limitowaną zgodność metod udostępnianych do zarządzania wirtualnymi zasobami, takimi jak wirtualne maszyny, wirtualne dyski, sieci prywatne. Każda lokalizacja posiada własny endpoint API:

  • Lokalizacja: Poznań DC1 - https://eu-poland-1poznan.api.e24cloud.com
  • Lokalizacja: Poznań DC2 - https://eu-poland-2poznan.api.e24cloud.com

Przykłady (PHP)

Przykładowy kod PHP, korzystający z API zgodnym z EC2 z użyciem AWS-SDK for PHP.

Inicjalizacja połączenia

$client = new \Aws\Ec2\Ec2Client([
    'version' => '2015-04-15',
    "credentials" => [
        "key" => " api key",
        "secret" => " api secret ",

     ],
    'region' => 'eu-poland-1poznan',
    'endpoint_provider' => function (array $params) {
       return ['endpoint' => 'https://'.$params['region'].'.api.e24cloud.com'];
    },

    'signature_provider' => function ($version, $service, $region) {
      return new \Aws\Signature\SignatureV2();
    },

]); 

Listowanie obrazów

$result = $client->describeImages();

foreach($result['Images'] as $image) {
 echo "ImageId: ".$image['ImageId'].', Name: '.$image['Name'], PHP_EOL;
}

Utworzenie wirtualnej maszyny

$result = $client->runInstances(array(
    'ImageId' => 'ami-000006d8', // ImageId z describeImages
    'MinCount' => 1,
    'MaxCount' => 1,
    'InstanceType' => 'm1.xlarge',
));

Listowanie wirtualnych maszyn

$result = $client->describeInstances();

foreach($result['Reservations'] as $reservation) {
 foreach($reservation['Instances'] as $instance) {
  echo 'id: '.$instance['InstanceId'].', type: '.$instance['InstanceType'].', State: '.$instance['State']['Name'].', PublicIp: '.$instance['PublicIpAddress'], PHP_EOL;
 }
}

Wyłączenie wirtualnej maszyny

$client->stopInstances(array(
    'InstanceIds' => array('70b9e613-d01a-4581-b29f-ba4b6fcebae9')
));

Włączenie wirtualnej maszyny

$client->startInstances(array(
    'InstanceIds' => array('70b9e613-d01a-4581-b29f-ba4b6fcebae9')
));

Usunięcie wirtualnej maszyny

$client->terminateInstances(array(
    'InstanceIds' => array('70b9e613-d01a-4581-b29f-ba4b6fcebae9')
));

Kompatybilność

Ponieważ nie wszystkie usługi dostępne w e24cloud maja swoje odpowiedniki w konwencji wywołań API EC2, nie wszystkie wywołania są dostępne. Dostępne są następujące wywołania:

  • AllocateAddress, AssociateAddress, DescribeAddresses, ReleaseAddress, DisassociateAddress
  • AttachVolume, CreateVolume, DeleteVolume, DetachVolume
  • CreateSnapshot, DeleteSnapshot
  • DescribeInstances, RebootInstances, RunInstances, StartInstances, StopInstances, TerminateInstances
  • CreateKeyPair, DeleteKeyPair, DescribeKeyPairs, ImportKeyPair
  • CreateImage, DeregisterImage, DescribeImageAttribute, DescribeImages
  • DescribeAvailabilityZones, DescribeRegions