From 6d1d9e1cc92f7388c2a0f4018b34ba2e14fe8b8f Mon Sep 17 00:00:00 2001 From: Joshua Tauberer Date: Mon, 17 Mar 2014 01:11:07 +0000 Subject: [PATCH] remove old Amazon EC2-related things since no one should ever deploy a mail server to EC2 (IPs have bad reputation) --- ec2/README.md | 47 ----------------------------------------- ec2/new_volume.sh | 6 ------ ec2/start_instance.sh | 35 ------------------------------ tools/get_ubuntu_ami.py | 26 ----------------------- 4 files changed, 114 deletions(-) delete mode 100644 ec2/README.md delete mode 100644 ec2/new_volume.sh delete mode 100644 ec2/start_instance.sh delete mode 100644 tools/get_ubuntu_ami.py diff --git a/ec2/README.md b/ec2/README.md deleted file mode 100644 index d01e806a..00000000 --- a/ec2/README.md +++ /dev/null @@ -1,47 +0,0 @@ -Deploying to EC2 -================ - -Amazon's EC2 isn't a great place to host a mail server. For one, you don't know if you'll get an IP address with a bad reputation from its previous owner. Also, setting reverse DNS requires a special request. But EC2 makes deployment easy, so it may at least be useful for testing. - -Instructions ------------- - -Sign up for Amazon Web Services. - -Create an Access Key at https://console.aws.amazon.com/iam/home?#security_credential. Download the key and save the information somewhere secure. - -Set up your environment and paste in the two parts of your access key that you just downloaded: - - sudo apt-get install ec2-api-tools - - export AWS_ACCESS_KEY=your_access_key_id - export AWS_SECRET_KEY=your_secret_key - export EC2_URL=ec2.us-east-1.amazonaws.com - export AWS_AZ=us-east-1a - -Here we're using the Ubuntu 13.04 amd64 instance-store-backed AMI in the us-east region. You can select another at http://cloud-images.ubuntu.com/locator/ec2/. - -Generate a new "keypair" (if you don't have one) that will let you SSH into your machine after you start it: - - ec2addkey mykey > mykey.pem - chmod go-rw mykey.pem - -Then launch a new instance. We're creating a m1.small instance --- it's the smallest instance that can use an instance-store-backed AMI. So charges will start to apply. - - source ec2/start_instance.sh - -It will wait until the instance is available. - -You'll probably want to associate it with an Elastic IP. If you do, you'll need to update the INSTANCE_IP variable. - -Log into the server: - - ssh -i mykey.pem ubuntu@$INSTANCE_IP - -Then follow the instructions in the main README. - -If you were just testing and are ready to destroy your instance (and all data), run: - - ec2-terminate-instances $INSTANCE - - diff --git a/ec2/new_volume.sh b/ec2/new_volume.sh deleted file mode 100644 index da88cb0b..00000000 --- a/ec2/new_volume.sh +++ /dev/null @@ -1,6 +0,0 @@ -export VOLUME_SIZE=1 # in GiB (2^30 bytes) -ec2-create-volume -s $VOLUME_SIZE -z $AWS_AZ > volume.info -export VOLUME_ID=`cat volume.info | awk {'print $2'}` -export VOLUME_IS_NEW=1 -echo Created new volume: $VOLUME_ID - diff --git a/ec2/start_instance.sh b/ec2/start_instance.sh deleted file mode 100644 index 57ba57f5..00000000 --- a/ec2/start_instance.sh +++ /dev/null @@ -1,35 +0,0 @@ -if [ -z "$EC2_KEYPAIR_NAME" ]; then - EC2_KEYPAIR_NAME=mykey -fi - -UBUNTU_CONFIG="us-east-1 13.04 amd64 instance-store" - -export AMI=`curl -s http://cloud-images.ubuntu.com/locator/ec2/releasesTable | python3 tools/get_ubuntu_ami.py $UBUNTU_CONFIG` - -ec2-create-group -d "mailinabox" "mailinabox" -for PORT in 25 53 587 993; do ec2-authorize mailinabox -P tcp -p $PORT -s 0.0.0.0/0; done -for PORT in 53; do ec2-authorize mailinabox -P udp -p $PORT -s 0.0.0.0/0; done - -ec2run $AMI -k $EC2_KEYPAIR_NAME -t m1.small -z $AWS_AZ -g mailinabox > instance.info -export INSTANCE=`cat instance.info | grep INSTANCE | awk {'print $2'}` - -echo Started instance $INSTANCE - -sleep 5 -while [ 1 ] -do - export INSTANCE_IP=`ec2-describe-instances $INSTANCE | grep INSTANCE | awk {'print $14'}` - if [ -z "$INSTANCE_IP" ] - then - echo "Waiting for $INSTANCE to start..." - else - break - fi - sleep 6 -done - -# Give SSH time to start. -sleep 5 - -echo New instance has IP: $INSTANCE_IP - diff --git a/tools/get_ubuntu_ami.py b/tools/get_ubuntu_ami.py deleted file mode 100644 index 3cd64974..00000000 --- a/tools/get_ubuntu_ami.py +++ /dev/null @@ -1,26 +0,0 @@ -import sys, json, re - -# Arguments: -region, version, arch, instance_type = sys.argv[1:] - -# Read bytes from stdin. -dat = sys.stdin.read() - -# Be flexible. The Ubuntu AMI list is invalid JSON by having a comma -# following the last element in a list. -dat = re.sub(r",(\s*)\]", r"\1]", dat) - -# Parse JSON. -dat = json.loads(dat) - -for item in dat["aaData"]: - if item[0] == region and item[2] == version and item[3] == arch and item[4] == instance_type: - ami_link = item[6] - - # The field comes in the form of ami-id - ami_link = re.sub(r"<.*?>", "", ami_link) - - print(ami_link) - break - -