SendGrid can be configured to send events like bounces and click tracking to a URL of your choice via their Webhooks feature. This post describes how to configure an AWS Lambda function to process these SendGrid events. By using Lambda you can easily handle the large amount of traffic SendGrid Webhooks can generate, while keeping costs and system administration work to a minimum.
I wanted to follow up to my previous post about free cloud services with details on what I am currently using. This post details the system architecture I am currently testing. I'm also including some updated findings and recommendations.
First I want to make it clear that this system configuration is absolutely overkill for a blog that gets as much traffic as this one does. However my main purpose in setting up this blog was to give myself a platform for testing all these different services so that I can make informed decisions about which ones to use on my other projects. Since one of my other projects gets an average of half a million page views a month, my goal is to figure out how to build systems that can scale to meet that level of demand. I've tested this configuration using Loader.io (another free-tier service) to simulate 1,000 concurrent users, and it handled that load easily.
Let's start with a diagram of my current setup that I will be referencing through the rest of the post:
PhantomJS isn't available from the standard Amazon Linux yum repository. Follow these steps to download a binary distribution of PhantomJS and install it on a server running Amazon Linux.
One of the reasons I started this blog was to have a platform for testing various third-party services. I wanted to be able to test things like cloud hosting, content delivery networks and rss-to-email services so that I could make informed recommendations to my clients. I'd rather not pay any monthly fees to keep this site up so I naturally gravitated toward the services with "free forever" pricing tiers. I've been pleasantly surprised to find that you can put together a really nice site out of services that are completely free. This is a roundup of the free services out there, along with my recommendations.
You can't install PencilBlue plugins on your OpenShift server by running
git clone into your plugins directory. Even if you were to ssh into each OpenShift server, clone the plugin, and restart the server, the plugin would be erased the next time OpenShift did an automatic deployment. What we need is a way to instruct OpenShift to clone the appropriate plugins into the PencilBlue plugins directory any time there is a deployment or a new server instance created.