diff --git a/ec2/spark_ec2.py b/ec2/spark_ec2.py
index 3af9f66e17dc2c1e7fb2ebf03781e04ba14712d7..9d5748ba4bc232e7c3718c3657a913cd996b1b6a 100755
--- a/ec2/spark_ec2.py
+++ b/ec2/spark_ec2.py
@@ -230,7 +230,12 @@ def get_spark_ami(opts):
         "c3.xlarge":   "pvm",
         "c3.2xlarge":  "pvm",
         "c3.4xlarge":  "pvm",
-        "c3.8xlarge":  "pvm"
+        "c3.8xlarge":  "pvm",
+        "r3.large":    "hvm",
+        "r3.xlarge":   "hvm",
+        "r3.2xlarge":  "hvm",
+        "r3.4xlarge":  "hvm",
+        "r3.8xlarge":  "hvm"
     }
     if opts.instance_type in instance_types:
         instance_type = instance_types[opts.instance_type]
@@ -538,7 +543,12 @@ def get_num_disks(instance_type):
         "c3.xlarge":   2,
         "c3.2xlarge":  2,
         "c3.4xlarge":  2,
-        "c3.8xlarge":  2
+        "c3.8xlarge":  2,
+        "r3.large":    1,
+        "r3.xlarge":   1,
+        "r3.2xlarge":  1,
+        "r3.4xlarge":  1,
+        "r3.8xlarge":  2
     }
     if instance_type in disks_by_instance:
         return disks_by_instance[instance_type]