Why we love AWS Beanstalk but are leaving it anyway

Cross-posted from Telia’s Tech Blog. We have had our mission-critical webapp running on AWS Elastic Beanstalk for three years and have been extremely happy with it. However we have now outgrown it and move to a manually managed infrastructure and CodeDeploy. AWS Beanstalk provides you with lot of bang for the buck and enables youContinue reading “Why we love AWS Beanstalk but are leaving it anyway”


Pains with Terraform (perhaps use Sceptre next time?)

Cross-posted from Telia’s Tech Blog We use Amazon Web Services (AWS) heavily and are in the process of migrating towards infrastructure-as-code, i.e. creating a textual description of the desired infrastructure in a Domain-Specific Language and letting the tool create and update the infrastructure. We are lucky enough to have some of the leading Terraform expertsContinue reading “Pains with Terraform (perhaps use Sceptre next time?)”

AWS ebextensions: Avoiding “Could not enable service” (or .. disable ..)

If you are adding a service entry to your .ebextensions/ config to run a service in AWS Elastic Beanstalk and it fails with either “Could not enable service [..]” or “Could not disable service [..]” (based on the value of ensureRunning), make sure that the service init.d file supports chkconfig, i.e. contains the comments it looks for.

Fixing a mysterious .ebextensions command time out (AWS Elastic Beanstalk)

Our webshop, nettbutikk.netcom.no, runs on AWS Elastic Beanstalk and we use .ebextensions/ to customize the environment. I have been just trying to get Gor running on our leader production instance to replay some traffic to our staging environment so that we get a much richer feedback from it. However the container_command I used caused the instance to time out andContinue reading “Fixing a mysterious .ebextensions command time out (AWS Elastic Beanstalk)”

AWS: Passing private configuration to a Docker container (via S3)

Philipp Garbe describes how to pass environment variables that you want to keep private to a public Docker instance run on Amazon Web Services (beanstalk or ECS) in his post How to Run HuBot in Docker on AWS EC2 Container Services – Part 3. The trick is: Put them into an env.sh file that you canContinue reading “AWS: Passing private configuration to a Docker container (via S3)”

AWS API: Proper syntax for filtering by tag name and value (e.g. describeInstances)

It took me quite a while to figure out the right syntax for filtering instances by tag name and value in the AWS EC2 API’s describeInstances. The documentation is not exactly crystal-clear to me: tag:key=value – The key/value combination of a tag assigned to the resource, where tag:key is the tag’s key. Anyway, here isContinue reading “AWS API: Proper syntax for filtering by tag name and value (e.g. describeInstances)”

Mounting an EBS volume to Docker on AWS Elastic Beanstal

Mounting an EBS volume to a Docker instance running on Amazon Elastic Beanstalk (EB) is surprisingly tricky. The good news is that it is possible. I will describe how to automatically create and mount a new EBS volume (optionally based on a snapshot). If you would prefer to mount a specific, existing EBS volume, you shouldContinue reading “Mounting an EBS volume to Docker on AWS Elastic Beanstal”

AWS CloudWatch Alarms Too Noisy Due To Ignoring Missing Data in Averages

I want to know when our app starts getting slower so I sat up an alarm on the Latency metric of our ELB. According to the AWS Console, “This alarm will trigger when the blue line [average latency over the period of 15 min] goes above the red line [2 sec] for a duration ofContinue reading “AWS CloudWatch Alarms Too Noisy Due To Ignoring Missing Data in Averages”

Most interesting links of October ’13

Recommended Readings Google engineers insist 20% time is not dead—it’s just turned into 120% time – it is interesting to see how has this evolved; “I have done many engineering/coding 20% projects and other non-engineering projects, with probably 20-40% producing “real” results (which over 7 years I think has been more than worth it forContinue reading “Most interesting links of October ’13”