Skip to content

Instantly share code, notes, and snippets.

@jlyon
Last active December 28, 2015 01:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jlyon/7419550 to your computer and use it in GitHub Desktop.
Save jlyon/7419550 to your computer and use it in GitHub Desktop.
Getting started with AWS: Auto-assigning an IP on boot, etc
#!upstart
description "aws_associate_ip"
start on startup
#stop on shutdown
env EC2_HOME=/opt/ec2-api-tools
env PATH=$PATH:$EC2_HOME/bin
# Add account credentials
env AWS_ACCESS_KEY=""
env AWS_SECRET_KEY=""
# Instance-specific configs
env EC2_REGION="us-west-2"
env EC2_URL=https://ec2.$EC2_REGION.amazonaws.com
env EC2_ELASTIC_IP="xxx.xxx.xxx.xxx"
env EC2_INSTANCE_ID="i-xxxxxx"
script
# Associate the ip
ec2-associate-address $EC2_ELASTIC_IP -i $EC2_INSTANCE_ID
end script
#pre-stop script
#end script

Install ec2 tools

Set JAVA_HOME
  • See if JAVA_HOME is set: $JAVA_HOME
  • Find Java path (see AWS docs)
echo 'export JAVA_HOME="/usr/lib/jvm/java-6-openjdk-amd64/jre"' >> ~/.bashrc
# May also be: echo 'export JAVA_HOME="/usr/lib/jvm/java-7-oracle"' >> ~/.bashrc
# verify Java path
JAVA_HOME/bin/java -version
Download ec2 api tools
cd /tmp
unzip ec2-api-tools.zip
mv ec2-api-tools-1.6.11.0 /opt/ec2-api-tools
Add sys variables
# ec2 tools path
export EC2_HOME=/opt/ec2-api-tools
export PATH=$PATH:$EC2_HOME/bin

# Add account credentials
export AWS_ACCESS_KEY="<key>"
export AWS_SECRET_KEY="<secret>"

source ~/.bashrc

# Verify ec2 tools setup:
ec2-describe-regions

Auto-assign IP on reboot

Install upstart (see this gist)

Get the aws_associate_ip.conf script below and modify accordingly:

cd /etc/init
wget https://gist.github.com/jlyon/7419550/raw/a0eba450b2b9a4f1c88080d9ad514c48bb238d86/aws_associate_ip.conf

Test it (ip should get assigned and you should lose your connection):

start aws_associate_ip
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment