New Stuff!

I’ve been updating the site! I’ve added a projects section, updated resume, and started working on my first Android application, Passport (tenative name). I’ll be adding more details to the project page as I get closer to the release. I also hope to add a few posts about what I learned throughout building the app.

Setting up ephemeral disks as JBOD on EC2

I recently had to setup the instance store blocks on some EC2 instances in a JBOD configuration, and wanted to make note of how I did this for future reference. In this example I was using m3.2xlarge instances with 2x80GB SSD instance stores on it. They are attached at /dev/xvdb and /dev/xvdc. I’m using LVM to do all of this, and the instances are running RHEL 6.5

The first ephemeral disk is usually mounted on launch, so unmount it

1 $ umount /dev/xvdb

[Read More]

Bootstrapping Chef with configs stored in S3

Bootstrapping Chef with configs stored in S3 for fun and profit!

Create an S3 bucket, upload client.rb and chef-validator.pem

Within IAM Roles, create a new role (I used “chef-client”) of AWS Service Roles - Amazon EC2 type, with the following policy:

[Read More]

Find out which user an IAM access key belongs to

Found (and modified) this python script to find out which user an access key belongs to in the following Gist. This assumes that the keys specified in the AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY environment variables have permission to list IAM users.

[Read More]

Synchronous Node shell commands

While working on a deployment script, I had a series of shell commands that needed to be run in sequence. I looked around quite a while for an elegant way of doing that but no one seemed to have one until I stumbled upon this site which had an extremely simple way to do so using the Async library. I modified it a little bit to show the output of the shell command for use in logging. [Read More]

Redhat Amazon Image(AMI) Creation Issues

Continuing with my latest adventures in AWS and Redhat, I found an issue that occurs with a pretty high degree of frequency. The problem occured when I did the following: Launch an image using the default RHEL image Configure/install all of the things needed for that instance Stop instance, create image from it. Launch instance from newly created image Try to connect to instance via SSH Connection refused. Sad face. [Read More]

EC2 Cloudinit and Redhat

Base Redhat AMIs do not come with aws-cfn-bootstrap installed. To use cfn-init in various cloudformation scripts, a new base image is needed with these tools installed. Here is how i did so:

1 $ easy_install requests
2 $ easy_install python-daemon
3 
4 $ wget https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz
5 $ tar -xvzf aws-cfn-bootstrap-latest.tar.gz
6 $ cd aws-cfn-bootstrap*
7 $ python setup.py build
8 $ python setup.py install

Skill Sharpening

After reading this blog post I have decided that I’m going to basically rewrite all of my old college homework assignments of all of the basic data structures and algorithms. Some of them I might even attempt in multiple languages. So here is the list that I plan on working through. I will update this page, and probably add it to the projects page when I get around to making that. [Read More]

Useful Git Merging Workflow

This is a useful git workflow for merging development work into the master branch in git that has made for nice clean merges. Special thanks to my Coworker Jeremy for sharing this.

This assumes you’ve cloned to branch “master”, and are working in local branch “dev”. As a best practice, you never really want to work in master, it should always be a clean copy of the remote origin.

[Read More]