Scalr – A RightScale Alternative for Cheap!?

I came across Scalr by accident when I was browsing projects in Google Code.  It appears as though Scalr has become a pay service to manage your AWS instances along similar lines to RightScale.  But the main difference is that Scalr charges a scant $50 a month.  From the Scalr Google Code page:

Scalr is a fully redundant, self-curing and self-scaling hosting environment utilizing Amazon’s EC2.

It allows you to create server farms through a web-based interface using prebuilt AMI’s for load balancers (pound or nginx), app servers (apache, others), databases (mysql master-slave, others), and a generic AMI to build on top of.

The health of the farm is continuously monitored and maintained. When the Load Average on a type of node goes above a configurable threshold a new node is inserted into the farm to spread the load and the cluster is reconfigured. When a node crashes a new machine of that type is inserted into the farm to replace it.

Multiple AMI’s are provided for load balancers, mysql databases, application servers, and a generic base image to customize. Scalr allows you to further customize each image, bundle the image and use that for future nodes that are inserted into the farm. You can make changes to one machine and use that for a specific type of node. New machines of this type will be brought online to meet current levels and the old machines are terminated one by one.

I would love to hear some comments from those already using the service and how it compares to RightScale.

Using OpenVPN to Manage Multisourced Infrastructure

Saw this article when looking for information on using OpenVPN with Amazon Web Services.  It is not exactly what I am looking to do with my latest project.  But it is some good helpful information for those with existing infrastructure looking to use AWS.  There is also VPN-Cubed which is another option if looking for a supported product.  I have not used it but would love to hear some comments by those who have.

Managing EC2 Configurations Using SVN

I am a big fan of using Subversion for things other than just versioning code.  In the past I have used SVN to manage configuration files across many servers.  Making it easy to deploy and (if needed) roll back changes.  It is also a big help on development servers for PHP developers to commit changes and see them live on the development server.  This is easily accomplished using SVN hooks.  There are plenty of HowTos on this topic if seeking that information.

Now that I am up to my eyeballs in Amazon Web Services I am looking to use SVN to help me leverage the new found power of the cloud.  Now I am not saying it is a good thing to use SVN for things other than code versioning.  But it has always worked for me in many other ways as well.

Some of the things I am thinking of using SVN:

  • Update DEV web server using hook scripts for devs to see changes to trunk.
  • Maintain Apache and other config files for AMIs.
  • Maintain code repository for versioning along with take advantage of S3 for backup and processing power of EC2.

This is a work in progress so I am looking to perfect the design to my liking soon.

Amazon EC2,S3,EBS,CloudFront. . .OH MY!

I have been working on some new projects since leaving my last job about 6 months ago.  One is to build an entire infrastructure that is highly available and redundant.  With Amazon Web Services this is a snap and almost makes my job obsolete.  With EC2, S3, EBS, and CloudFront you can build a scalable solution with dependable backups with ease.  My goal now is to also use AWS to create an intranet for the company.  I have not found much on this topic so I ma taking the time to document it here.  My ideas so far:

  • Use Fedora Directory Server as main LDAP solution.  This can be used with EBS (Elastic Block Storage) with striped volumes to store the LDAP data.  Along with having redundant multi-master replication geographically depending on where the EC2 instance is set.
  • Subversion server using EBS for storage.  Using EC2 for something along the lines of SVN is a good use since it speeds up performance.  Along with having the backup ability of EBS and EBS Snapshots
  • Twiki as documentation for intranet.
  • SugarCRM for customer relationship management which will include project management and bug tracking.
  • S3 for backing up users data automatically.  This is helpful since it is a telecommuting company. Using a tool like JungleDisk or similar.
  • The DEV and Staging environments will also be on AWS with same Amazon Machine Images (AMIs) as the production environment.

That is all I have so far I will update as the project comes along.

OpenVPN Setup

I found the setup and configuration of OpenVPN to be very easy and straight forward.  Much easier than setting up IPSec for sure.  It was as easy as doing a yum install openvpn then editing the configuration file to fit my needs.  One thing I also installed was the OpenVPN Webmin module.  The way I use Webmin is to set it up to use SSL after installing it.  Then I run it once I log in via SSH to a server.  That way it is not running continuously, nor do I keep it on the default port of 10000.

Once the server is configured it is quite easy using the Webmin module to create a CA (Certificate Authority) and generate certs.  Another function the module does well is generate a zip file with the needed keys and a client config file for the user you create.  This makes is easy to maintain a large list of VPN users.  Some clients I use in our environment:

I have found from testing that even with the use of 2048bit keys performance is very good.  By forcing users connected to use our internal DNS servers people can access our intranet sites easily from anywhere.