JCLOUDS-1460: Adding instances to AWS
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java b/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
index d5adcc2..a8f4c55 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
@@ -228,7 +228,13 @@
return this;
}
-
+
+ private EC2HardwareBuilder t3() {
+ virtualizationType(VirtualizationType.HVM);
+
+ return this;
+ }
+
private EC2HardwareBuilder m3() {
virtualizationTypes(VirtualizationType.HVM, VirtualizationType.PARAVIRTUAL);
return this;
@@ -394,12 +400,21 @@
}
/**
+ * @see InstanceType#T2_NANO
+ */
+ public static EC2HardwareBuilder t2_nano() {
+ return new EC2HardwareBuilder(InstanceType.T2_NANO).t2()
+ .ram(512)
+ .processors(ImmutableList.of(new Processor(1.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
* @see InstanceType#T2_MICRO
*/
public static EC2HardwareBuilder t2_micro() {
return new EC2HardwareBuilder(InstanceType.T2_MICRO).t2()
.ram(1024)
- .processors(ImmutableList.of(new Processor(1.0, 0.1))).rootDeviceType(RootDeviceType.EBS);
+ .processors(ImmutableList.of(new Processor(1.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
}
/**
@@ -408,7 +423,7 @@
public static EC2HardwareBuilder t2_small() {
return new EC2HardwareBuilder(InstanceType.T2_SMALL).t2()
.ram(2048)
- .processors(ImmutableList.of(new Processor(1.0, 0.2))).rootDeviceType(RootDeviceType.EBS);
+ .processors(ImmutableList.of(new Processor(1.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
}
/**
@@ -417,7 +432,7 @@
public static EC2HardwareBuilder t2_medium() {
return new EC2HardwareBuilder(InstanceType.T2_MEDIUM).t2()
.ram(4096)
- .processors(ImmutableList.of(new Processor(1.0, 0.4))).rootDeviceType(RootDeviceType.EBS);
+ .processors(ImmutableList.of(new Processor(2.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
}
/**
@@ -426,10 +441,93 @@
public static EC2HardwareBuilder t2_large() {
return new EC2HardwareBuilder(InstanceType.T2_LARGE).t2()
.ram(8192)
- .processors(ImmutableList.of(new Processor(1.0, 0.4))).rootDeviceType(RootDeviceType.EBS);
+ .processors(ImmutableList.of(new Processor(2.0, 3.0))).rootDeviceType(RootDeviceType.EBS);
}
/**
+ * @see InstanceType#T2_XLARGE
+ */
+ public static EC2HardwareBuilder t2_xlarge() {
+ return new EC2HardwareBuilder(InstanceType.T2_XLARGE).t2()
+ .ram(16384)
+ .processors(ImmutableList.of(new Processor(4.0, 3.0))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T2_2XLARGE
+ */
+ public static EC2HardwareBuilder t2_2xlarge() {
+ return new EC2HardwareBuilder(InstanceType.T2_2XLARGE).t2()
+ .ram(32768)
+ .processors(ImmutableList.of(new Processor(8.0, 3.0))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_NANO
+ */
+ public static EC2HardwareBuilder t3_nano() {
+ return new EC2HardwareBuilder(InstanceType.T3_NANO).t3()
+ .ram(512)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_MICRO
+ */
+ public static EC2HardwareBuilder t3_micro() {
+ return new EC2HardwareBuilder(InstanceType.T3_MICRO).t3()
+ .ram(1024)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_SMALL
+ */
+ public static EC2HardwareBuilder t3_small() {
+ return new EC2HardwareBuilder(InstanceType.T3_SMALL).t3()
+ .ram(2048)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_MEDIUM
+ */
+ public static EC2HardwareBuilder t3_medium() {
+ return new EC2HardwareBuilder(InstanceType.T3_MEDIUM).t3()
+ .ram(4096)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_LARGE
+ */
+ public static EC2HardwareBuilder t3_large() {
+ return new EC2HardwareBuilder(InstanceType.T3_LARGE).t3()
+ .ram(8192)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_XLARGE
+ */
+ public static EC2HardwareBuilder t3_xlarge() {
+ return new EC2HardwareBuilder(InstanceType.T3_XLARGE).t3()
+ .ram(16384)
+ .processors(ImmutableList.of(new Processor(4.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
+ * @see InstanceType#T3_2XLARGE
+ */
+ public static EC2HardwareBuilder t3_2xlarge() {
+ return new EC2HardwareBuilder(InstanceType.T3_2XLARGE).t3()
+ .ram(32768)
+ .processors(ImmutableList.of(new Processor(8.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
+ }
+
+
+
+ /**
* @see InstanceType#M1_LARGE
*/
public static EC2HardwareBuilder m1_large() {
@@ -606,6 +704,17 @@
}
/**
+ * @see InstanceType#M4_16XLARGE
+ */
+ public static EC2HardwareBuilder m4_16xlarge() {
+ return new EC2HardwareBuilder(InstanceType.M4_16XLARGE).m4()
+ .ram(262144)
+ .processors(ImmutableList.of(new Processor(64.0, 3.1125)))
+ .is64Bit(true)
+ .rootDeviceType(RootDeviceType.EBS);
+ }
+
+ /**
* @see InstanceType#M5_LARGE
*/
public static EC2HardwareBuilder m5_large() {
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java b/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
index 2faf2a4..1a01031 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
@@ -32,6 +32,17 @@
/**
* Micro Burstable Performance Instance
* <ul>
+ * <li>512 MB memory</li>
+ * <li>1 vCPU / 10% baseline performance</li>
+ * <li>No instance storage (EBS storage only)</li>
+ * <li>64-bit platform</li>
+ * </ul>
+ */
+ public static final String T2_NANO = "t2.nano";
+
+ /**
+ * Micro Burstable Performance Instance
+ * <ul>
* <li>1 GB memory</li>
* <li>1 vCPU / 10% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
@@ -73,6 +84,105 @@
*/
public static final String T2_LARGE = "t2.large";
+ /**
+ * Micro Burstable Performance Instance
+ * <ul>
+ * <li>16 GB memory</li>
+ * <li>4 vCPU / 40% baseline performance</li>
+ * <li>No instance storage (EBS storage only)</li>
+ * <li>64-bit platform</li>
+ * </ul>
+ */
+ public static final String T2_XLARGE = "t2.xlarge";
+
+ /**
+ * Micro Burstable Performance Instance
+ * <ul>
+ * <li>32 GB memory</li>
+ * <li>8 vCPU / 40% baseline performance</li>
+ * <li>No instance storage (EBS storage only)</li>
+ * <li>64-bit platform</li>
+ * </ul>
+ */
+ public static final String T2_2XLARGE = "t2.2xlarge";
+
+ /**
+ * Micro Burstable Performance Instance
+ * <ul>
+ * <li>512 MB memory</li>
+ * <li>2 vCPU / 10% baseline performance</li>
+ * <li>No instance storage (EBS storage only)</li>
+ * <li>64-bit platform</li>
+ * </ul>
+ */
+ public static final String T3_NANO = "t3.nano";
+
+ /**
+ * Micro Burstable Performance Instance
+ * <ul>
+ * <li>1 GB memory</li>
+ * <li>2 vCPU / 10% baseline performance</li>
+ * <li>No instance storage (EBS storage only)</li>
+ * <li>64-bit platform</li>
+ * </ul>
+ */
+ public static final String T3_MICRO = "t3.micro";
+
+ /**
+ * Micro Burstable Performance Instance
+ * <ul>
+ * <li>2 GB memory</li>
+ * <li>2 vCPU / 10% baseline performance</li>
+ * <li>No instance storage (EBS storage only)</li>
+ * <li>64-bit platform</li>
+ * </ul>
+ */
+ public static final String T3_SMALL = "t3.small";
+
+ /**
+ * Micro Burstable Performance Instance
+ * <ul>
+ * <li>4 GB memory</li>
+ * <li>2 vCPU / 10% baseline performance</li>
+ * <li>No instance storage (EBS storage only)</li>
+ * <li>64-bit platform</li>
+ * </ul>
+ */
+ public static final String T3_MEDIUM = "t3.medium";
+
+ /**
+ * Micro Burstable Performance Instance
+ * <ul>
+ * <li>8 GB memory</li>
+ * <li>2 vCPU / 10% baseline performance</li>
+ * <li>No instance storage (EBS storage only)</li>
+ * <li>64-bit platform</li>
+ * </ul>
+ */
+ public static final String T3_LARGE = "t3.large";
+
+ /**
+ * Micro Burstable Performance Instance
+ * <ul>
+ * <li>16 GB memory</li>
+ * <li>4 vCPU / 10% baseline performance</li>
+ * <li>No instance storage (EBS storage only)</li>
+ * <li>64-bit platform</li>
+ * </ul>
+ */
+ public static final String T3_XLARGE = "t3.xlarge";
+
+ /**
+ * Micro Burstable Performance Instance
+ * <ul>
+ * <li>32 GB memory</li>
+ * <li>8 vCPU / 10% baseline performance</li>
+ * <li>No instance storage (EBS storage only)</li>
+ * <li>64-bit platform</li>
+ * </ul>
+ */
+ public static final String T3_2XLARGE = "t3.2xlarge";
+
/**
* Small Instance
* <ul>
@@ -269,6 +379,18 @@
public static final String M4_10XLARGE = "m4.10xlarge";
/**
+ * M4 Sexdecuple Extra Large Instance
+ * <ul>
+ * <li>256 GiB memory</li>
+ * <li>199.2 EC2 Compute Units (64 virtual cores with 3.1125 EC2 Compute Units each)</li>
+ * <li>EBS storage only</li>
+ * <li>64-bit platform</li>
+ * <li>I/O Performance: High</li>
+ * </ul>
+ */
+ public static final String M4_16XLARGE = "m4.16xlarge";
+
+ /**
* M5 Large Instance
* <ul>
* <li>8 GiB memory</li>
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java
index cd334fc..119ab57 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java
@@ -60,6 +60,7 @@
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_10xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_16xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_large;
@@ -85,7 +86,17 @@
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_micro;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_nano;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_small;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_2xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_nano;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_micro;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_small;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_medium;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_large;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.x1_16xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.x1_32xlarge;
@@ -122,10 +133,20 @@
sizes.add(g2_2xlarge().supportsImageIds(ccAmis).build());
sizes.add(t1_micro().build());
+ sizes.add(t2_nano().build());
sizes.add(t2_micro().build());
sizes.add(t2_small().build());
sizes.add(t2_medium().build());
sizes.add(t2_large().build());
+ sizes.add(t2_xlarge().build());
+ sizes.add(t2_2xlarge().build());
+ sizes.add(t3_nano().build());
+ sizes.add(t3_micro().build());
+ sizes.add(t3_small().build());
+ sizes.add(t3_medium().build());
+ sizes.add(t3_large().build());
+ sizes.add(t3_xlarge().build());
+ sizes.add(t3_2xlarge().build());
sizes.add(c1_medium().build());
sizes.add(c1_xlarge().build());
sizes.add(c3_large().build());
@@ -164,6 +185,7 @@
sizes.add(m4_2xlarge().build());
sizes.add(m4_4xlarge().build());
sizes.add(m4_10xlarge().build());
+ sizes.add(m4_16xlarge().build());
sizes.add(m5_large().build());
sizes.add(m5_xlarge().build());
sizes.add(m5_2xlarge().build());