| <?xml version='1.0' encoding='utf-8' ?> |
| <!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ |
| <!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent"> |
| %BOOK_ENTITIES; |
| ]> |
| |
| <!-- Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <section id="aws-ec2-configuration"> |
| <title>Enabling the EC2 and S3 Compatible Interface</title> |
| |
| <para>The software that provides AWS API compatibility is installed along with &PRODUCT;. You must enable the services and perform some setup steps prior to using it. |
| </para> |
| <orderedlist> |
| <listitem id="set-global-config"><para>Set the global configuration parameters for each service to true. |
| See <xref linkend="global-config" />.</para></listitem> |
| <listitem><para>Create a set of &PRODUCT; service offerings with names that match the Amazon service offerings. |
| You can do this through the &PRODUCT; UI as described in the Administration Guide.</para> |
| <warning><para>Be sure you have included the Amazon default service offering, m1.small. As well as any EC2 instance types that you will use.</para></warning> |
| </listitem> |
| <listitem><para>If you did not already do so when you set the configuration parameter in step <xref linkend="set-global-config"/>, restart the Management Server.</para> |
| <programlisting># service cloudstack-management restart</programlisting> |
| </listitem> |
| </orderedlist> |
| <para>The following sections provides details to perform these steps</para> |
| |
| <section id="aws-api-settings"> |
| <title>Enabling the Services</title> |
| <para>To enable the EC2 and S3 compatible services you need to set the configuration variables <emphasis>enable.ec2.api</emphasis> |
| and <emphasis>enable.s3.api</emphasis> to true. You do not have to enable both at the same time. Enable the ones you need. |
| This can be done via the &PRODUCT; GUI by going in <emphasis>Global Settings</emphasis> or via the API.</para> |
| <para>The snapshot below shows you how to use the GUI to enable these services</para> |
| |
| <para> |
| <mediaobject> |
| <imageobject> |
| <imagedata fileref="./images/ec2-s3-configuration.png"/> |
| </imageobject> |
| <textobject> |
| <phrase>Use the GUI to set the configuration variable to <emphasis>true</emphasis></phrase> |
| </textobject> |
| </mediaobject> |
| </para> |
| |
| <para>Using the &PRODUCT; API, the easiest is to use the so-called integration port on which you can make |
| unauthenticated calls. In Global Settings set the port to 8096 and subsequently call the <emphasis>updateConfiguration</emphasis> method. |
| The following urls shows you how:</para> |
| |
| <para> |
| <programlisting> |
| http://localhost:8096/client/api?command=updateConfiguration&name=enable.ec2.api&value=true |
| http://localhost:8096/client/api?command=updateConfiguration&name=enable.ec2.api&value=true |
| </programlisting> |
| </para> |
| |
| <para>Once you have enabled the services, restart the server.</para> |
| </section> |
| |
| <section id="aws-ec2-service-offerings"> |
| <title>Creating EC2 Compatible Service Offerings</title> |
| <para>You will also need to define compute service offerings with names compatible with the <ulink url="http://aws.amazon.com/ec2/instance-types/"> |
| Amazon EC2 instance types</ulink> API names (e.g m1.small,m1.large). This can be done via the &PRODUCT; GUI. |
| Go under <emphasis>Service Offerings</emphasis> select <emphasis>Compute offering</emphasis> and either create |
| a new compute offering or modify an existing one, ensuring that the name matches an EC2 instance type API name. The snapshot below shows you how:</para> |
| <para> |
| <mediaobject> |
| <imageobject> |
| <imagedata fileref="./images/compute-service-offerings.png"/> |
| </imageobject> |
| <textobject> |
| <phrase>Use the GUI to set the name of a compute service offering to an EC2 instance |
| type API name.</phrase> |
| </textobject> |
| </mediaobject> |
| </para> |
| </section> |
| <section id="aws-api-port-change"> |
| <title>Modifying the AWS API Port</title> |
| <note> |
| <para>(Optional) The AWS API listens for requests on port 7080. If you prefer AWS API to listen on another port, you can change it as follows:</para> |
| <orderedlist numeration="loweralpha"> |
| <listitem><para>Edit the files /etc/cloudstack/management/server.xml, /etc/cloudstack/management/server-nonssl.xml, |
| and /etc/cloudstack/management/server-ssl.xml.</para></listitem> |
| <listitem><para>In each file, find the tag <Service name="Catalina7080">. Under this tag, |
| locate <Connector executor="tomcatThreadPool-internal" port= ....<.</para></listitem> |
| <listitem><para>Change the port to whatever port you want to use, then save the files.</para></listitem> |
| <listitem><para>Restart the Management Server.</para></listitem> |
| </orderedlist> |
| <para>If you re-install &PRODUCT;, you will have to re-enable the services and if need be update the port.</para> |
| </note> |
| </section> |
| |
| </section> |