Shared Chef Code For Amazon Machine Images and Docker Images

If you are building Docker images you might be using a Dockerfile to define the state of the image. For example: FROM centos:7 RUN yum install -y httpd RUN mkdir -p /var/www/html/images COPY images/foo.png /var/www/html/images/foo.png RUN chown apache: /var/www/html/images/foo.png EXPOSE 80 If you have been creating Amazon Machine Images (AMIs) you might be using Chef or some other configuration management tool. A problemContinue reading “Shared Chef Code For Amazon Machine Images and Docker Images”

Deploy a Serverless SFTP Server With AWS

Let’s imagine you want to migrate an existing SFTP server to Amazon Web Services (AWS). You might consider deploying an EC2 instance to facilitate this. With this approach you are responsible for maintaining and patching that instance. Also, if you want to make your service highly available you would have to deploy multiple instances acrossContinue reading “Deploy a Serverless SFTP Server With AWS”

Serverless Web Applications In AWS

In this article I will demonstrate how to start developing serverless web applications in Amazon Web Services (AWS). A serverless architecture allows developers to focus on their code — the complexity of building and maintaining the infrastructure necessary to run the code is removed from their view. Design Starfleet has asked you to create a web applicationContinue reading “Serverless Web Applications In AWS”

Continuous Deployment with AWS CodePipeline and Chef Zero

In this article I will show how you can use AWS CodePipeline and Chef Zero to implement a blue-green continuous deployment model to automatically release changes to your EC2 hosted web application. AWS CodePipeline is a fully managed continuous delivery service that helps you automate your release pipelines for fast and reliable application and infrastructure updates. CodePipeline automates the build, test,Continue reading “Continuous Deployment with AWS CodePipeline and Chef Zero”

EC2 Jump Host For ECS Fargate Docker Containers

Introduction The benefits of Docker containers are well understood however, the challenges in managing the host operating system remain. AWS Fargate solves this problem. Fargate makes it easy for you to focus on building your applications. Fargate removes the need to provision and manage servers. By outsourcing the management of the host OS to AWS you doContinue reading “EC2 Jump Host For ECS Fargate Docker Containers”

Automated UI Testing With Amazon CloudWatch Synthetics

Introduction In a previous article I investigated the use of Amazon Sagemaker to perform automated UI testing for a web application. The intent was to produce an automated test suite which could detect obvious visual errors. In this article I will demonstrate a more robust technique using Amazon CloudWatch Synthetics. More specifically, I will beContinue reading “Automated UI Testing With Amazon CloudWatch Synthetics”

OpenVPN over AWS Systems Manager Session Manager

Introduction AWS Systems Manager Session Manager allows you to establish a shell session to your EC2 instances and Fargate containers even when these resources don’t have a public IP address. Also, with EC2 instance port forwarding, you can redirect any port inside your remote instance to a local port on your client to interact withContinue reading “OpenVPN over AWS Systems Manager Session Manager”

Serverless Caching With AWS AppConfig and Lambda Extensions

Introduction In this article I will show how you can deploy a simple caching solution for AWS Lambda functions by combining the AWS AppConfig service with the Lambda Extensions feature. To demonstrate this, lets create a problem that we must solve. Suppose you have been asked to implement a solution that will allow the engineersContinue reading “Serverless Caching With AWS AppConfig and Lambda Extensions”

Serverless Jenkins and Amazon ECS Exec

In this very short article I will show how you can create a serverless Jenkins instance and start a shell session in an AWS Fargate task without opening SSH ports or managing SSH keys. Why Serverless? No server is easier to manage than no server. Werner Vogels, CTO @ Amazon Managing a fleet of EC2Continue reading “Serverless Jenkins and Amazon ECS Exec”

Blue/Green Deployments in AWS Fargate with Automated Testing and Rollbacks

Introduction AWS CodeDeploy makes it easy to setup Blue/Green deployments for your containerised applications running in AWS Fargate. In this article, I will show how you can configure CodeDeploy and Fargate to allow automated testing of your deployments before they receive production traffic. Additionally, I will show how you can configure automatic rollbacks, if yourContinue reading “Blue/Green Deployments in AWS Fargate with Automated Testing and Rollbacks”