====== Why and What ======
To implement some functionalities that Amazons EC2 Cloud provides, you have to interface with their command-line API tools. Likely, the product is too young to have the equivalent functionality built-in to their GUI management console yet. For now, we do it this way, and its a little complex.
====== Requirements ======
I setup the environment below on a mac. The setup steps are slightly different on a mac, than from what is explained on the amazon docs, which is angled for straight linux/unix. Mostly the difference is in how macs do environment variables and paths. Please adjust accordingly.
====== Java Setup ======
* set JAVA_HOME
*
nano ~/.bash_profile
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
* restart the shell now - close it and log back in
* Verify it works
*
$JAVA_HOME/bin/java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
====== X.509 Credentials ======
You can use existing ones on the existing amazon account (if you have the private key from whoever originally made it),
OR
You can create your own new ones. Here I made new ones, according to the guide linked above.
* AWS UI Sign in > Accounts > Security credentials > X.509 tab > Create New
* Saved file pk-KFGXD35XEHEO5OUO3IE2OETS5UMPA3JA.pem and cert-KFGXD35XEHEO5OUO3IE2OETS5UMPA3JA.pem
* Put files in appropriate locations
*
mkdir ~/.ec2
mv ~/Downloads/pk-KFGXD35XEHEO5OUO3IE2OETS5UMPA3JA.pem ~/.ec2/
mv ~/Downloads/cert-KFGXD35XEHEO5OUO3IE2OETS5UMPA3JA.pem ~/.ec2/
====== Setup EC2 API tools ======
These are used to run the command line calls that we will use later.
* Find at [[http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351&categoryID=88|EC2 API Tools]]
* Download and unzip as per docs; I unzipped to ~/ec2-api-tools-1.3-46266
* Tell the tools where they live
*
nano ~/.bash_profile
export EC2_HOME=~/ec2-api-tools-1.3-46266
export PATH=$PATH:$EC2_HOME/bin
export EC2_PRIVATE_KEY=~/.ec2/pk-KFGXD35XEHEO5OUO3IE2OETS5UMPA3JA.pem
export EC2_CERT=~/.ec2/cert-KFGXD35XEHEO5OUO3IE2OETS5UMPA3JA.pem
* restart the shell now - close it and log back in
====== Check to see if working ======
*
# check to see that variables are there
env
# check to see that command and connection to AWS is working
ec2-describe-regions
# test create and stop an instance
ec2-run-instances ami-b232d0db --key awsnickkey
ec2-describe-instances i-dd2142b6
ec2-stop-instances i-dd2142b6
ec2-terminate-instances i-dd2142b6