Exception: Unable to successfully retrieve correct EC2 image to launch for this version?

User 481 | 4/1/2015, 5:44:17 PM

<pre class="CodeBlock"><code>import graphlab env = graphlab.deploy.environment.EC2('ec2-test', 's3://my-testing/logs', region='us-west-2', instancetype='t2.micro', awsaccesskey='my-access-key', awssecretkey='my-secret-key', numhosts=1)

deployment = graphlab.deploy.predictive_service.create('test-deployment', env, 's3://my-testing/models/test-deployment') deployment</code></pre>

I am running this on an EC2 instance I created.

I get the following error when I run it

<div class="Spoiler">[INFO] Start server at: ipc:///tmp/graphlabserver-31249 - Server binary: /usr/local/lib/python2.7/site-packages/graphlab/unityserver - Server log: /tmp/graphlabserver1427906818.log [INFO] GraphLab Server Version: 1.3.0 [INFO] Launching Predictive Service with 1 hosts, as specified by numhosts parameter [INFO] Launching Predictive Service, with name: test-deployment [INFO] [Step 0/5]: Initializing S3 locations. [INFO] [Step 1/5]: Launching EC2 instances. [WARNING] Tearing down Predictive Service due to error launching [INFO] Deleting model data. Traceback (most recent call last): File "recapp.py", line 15, in <module> deployment = graphlab.deploy.predictiveservice.create('test-deployment', env, 's3://my-testing/models/test-deployment') File "/usr/local/lib/python2.7/site-packages/graphlab/deploy/predictiveservice.py", line 227, in create sslcredentials, awscredentials, started=starttime) File "/usr/local/lib/python2.7/site-packages/graphlab/deploy/predictiveservice/predictiveserviceenvironment.py", line 474, in launch amiserviceparameters = {'service': 'predictive'}) File "/usr/local/lib/python2.7/site-packages/graphlab/connect/aws/ec2.py", line 507, in ec2_factory raise Exception('Unable to successfully retrieve correct EC2 image to launch for this ' Exception: Unable to successfully retrieve correct EC2 image to launch for this version. This could be a temporary problem. Please try again in a few minutes. If the problem persists please contact support@dato.com [INFO] Stopping the server connection.</div>

Comments

User 398 | 4/1/2015, 5:49:43 PM

Hi there.

The problem is that GraphLab Create does not work on EC2 instances smaller than m3.large. Try again setting your instance_type parameter to 'm3.large' and let us know how it goes.

Thanks, Robert


User 1178 | 4/1/2015, 5:51:56 PM

Hi,

Unfortunately, the t2.micro instance is currently not supported, the list of supported EC2 instance types are:

c3.xlarge m1.large
c3.2xlarge m1.xlarge
c3.4xlarge m3.large
c3.8xlarge m3.xlarge
r1.8xlarge m3.2xlarge
i2.xlarge m2.xlarge
i2.2xlarge m2.2xlarge
i2.4xlarge m2.4xlarge
i2.8xlarge hi1.4xlarge
c2.8xlarge hs1.8xlarge
g2.2xlarge c1.xlarge

Thanks!

Ping


User 481 | 4/1/2015, 6:08:49 PM

It looks like it worked. <div class="Spoiler">[INFO] Start server at: ipc:///tmp/graphlabserver-31444 - Server binary: /usr/local/lib/python2.7/site-packages/graphlab/unityserver - Server log: /tmp/graphlabserver1427910790.log [INFO] GraphLab Server Version: 1.3.0 [INFO] Launching Predictive Service with 1 hosts, as specified by num_hosts parameter [INFO] Launching Predictive Service, with name: test-deployment [INFO] [Step 0/5]: Initializing S3 locations. [INFO] [Step 1/5]: Launching EC2 instances. [INFO] Launching an m3.large instance in the us-west-2b availability zone, with id: i-aff95759. You will be responsible for the cost of this instance. [INFO] [Step 2/5]: Launching Load Balancer. [INFO] [Step 3/5]: Configuring Load Balancer. [INFO] [Step 4/5]: Waiting for Load Balancer to put all instances into service. [INFO] Cluster not fully operational yet, [0/1] instances currently in service. [INFO] Cluster not fully operational yet, [0/1] instances currently in service. [INFO] Cluster not fully operational yet, [0/1] instances currently in service. [INFO] Cluster not fully operational yet, [0/1] instances currently in service. [INFO] Cluster not fully operational yet, [0/1] instances currently in service. [INFO] Cluster not fully operational yet, [0/1] instances currently in service. [INFO] Cluster not fully operational yet, [0/1] instances currently in service. [INFO] Cluster not fully operational yet, [0/1] instances currently in service. [INFO] Cluster not fully operational yet, [0/1] instances currently in service. [INFO] Cluster is fully operational, [1/1] instances currently in service. [INFO] [Step 5/5]: Finalizing Configuration. [INFO] Cache enabled successfully! [INFO] Stopping the server connection. </div> Questions 1. How will I be billed for this instance? Will you need more info about me? 2. "[INFO] Stopping the server connection" means only the connection to ec2 instance is severed correct? The server is still running. 3. Does it make any difference where I run my script from? Can I run it from my local, rather than an ec2 instance? 4. Since I didnt save the environment, graphlab.deploy.enviroments does not show me any enviroment in my memory. What happens to the ec2 instance/cluster. How do I delete it/control it?

Thanks !


User 1394 | 4/2/2015, 3:09:39 AM

Hey MSH -

  1. For billing, after your 30-day trial expires, you will have to convert to a commercial license to continue using Dato Predictive Services. You have two options for pricing: you can purchase yearly licenses for each of your predictive service nodes or you can pay hourly for on-demand usage. Contact sales@dato.com to find out the best option.

  2. Depends, how did you launch the Predictive Service? Was it deployed from a Job or from an Python session? This message makes sense from a Job but not from a Python session.

  3. The script to launch/manage the Predictive Service deployment? No, that can be run from any machine with GraphLab Create installed on it.

  4. You can see the Predictive Service deployments by running:

<pre class="CodeBlock"><code>graphlab.deploy.predictive_services </code></pre> And you can load the Predictive Service by running:

<pre class="CodeBlock"><code>deployment = graphlab.deploy.predictive_services['name']

or deployment = graphlab.deploy.predictive_services[index number]</code></pre>

You can also load an existing Predictive Service by providing the S3 state path specified when launching the Predictive Service:

<pre class="CodeBlock"><code>deployment = graphlab.deploy.predictiveservice.load(s3state_path) # you can optionally provide AWS credentials as well. </code></pre> Let me know if you have any other questions, great to see you using Dato Predictive Services!

Thanks,

Rajat