Tuesday, December 27, 2011

Monitor your estimated AWS charges with Amazon CloudWatch

At BitNami we are focused (some will say obsessed, really :) on making it easier to deploy and manage web applications in general and in the Amazon cloud in particular. In our experience, one of the main issues mainstream developers and admins have when moving to the Amazon Cloud is that it is sometimes difficult to estimate what the total cost of a deployment. Even the Simple Monthly Calculator is well, a bit scary in comparison with the more or less straightforward pricing of traditional dedicated or shared hosting. Its 'pay per usage' model, combined with reserved and spot instances, can help reduce your bill for many kinds of deployments. It also makes it highly desirable to be able to control whether it grows more than expected, either because a surge in traffic/usage or because somebody accidentally left running hundreds of machines from a traffic load test (it happens!)

Up to now, AWS did not offer any programmatic access to billing data. Although part of it could be derived from CloudWatch usage data, to get accurate data you had to manually log in directly to the AWS console. Because of these shortcomings, third-party tools for monitoring AWS spending had to ask end users for their username and password (as opposed to being able to provide IAM credentials). That gives us the creepies and it is the reason why we have preferred instead to just present our users with rough estimates... until now: in the past few days Amazon quietly rolled out support for monitoring estimated charges using Cloudwatch. We received the following the following email:

Dear AWS customer,
We are pleased to inform you that Premium Support customers can now monitor AWS estimated charges using Amazon CloudWatch. You can view your estimated charges as Amazon CloudWatch metrics and create alarms that automatically send you email notifications when these charges exceed levels that you set. This feature is currently available as a limited beta and you can share feedback on how we can make it better by submitting a case at: https://aws.amazon.com/support/createCase and selecting ‘Amazon CloudWatch’ in the case description.
To enable monitoring for your estimated charges, visit the AWS account activity page at: http://aws.amazon.com/account/ and click ‘Enable Now’. Once your account is enabled, you can view metric data and set alarms using the Amazon CloudWatch APIs or the AWS Management Console at: http://aws.amazon.com/console/cloudwatch/
You can use this feature to track and manage your AWS spending more easily. For example, you can graph estimated charges for Amazon EC2, Amazon S3, and AWS Data Transfer over the last two weeks and then set alarms that send you an email as soon as one exceeds $100, or you can set an alarm that emails you if total AWS estimated charges exceed $300.
These metrics are provided at no additional charge, and any alarms that you create are priced at standard Amazon CloudWatch rates. More information about Amazon CloudWatch pricing is available at:http://aws.amazon.com/pricing/cloudwatch/.
If you have any questions regarding this new feature, the AWS Support Team is available at: http://aws.amazon.com/support/.
Amazon Web Services
As mentioned in the email, this functionality is available only to Premium support customers, while Amazon works on further refining it. Since we have not seen a review or mention of it anywhere, we gave it a spin and documented the experience. The first step was to enable it from the AWS account activity page:
AWS Account activity

Estimated charges functionality enabled

After enabling the functionality and waiting a few minutes, it is possible to start querying estimated monthly charges, either in aggregate or separately by each service, including EC2, RDS, Route53, SNS and SQS are supported. The system is also able to track the cost of running Premium support and charges related to data transfer.

Estimated monthly charges for EC2

In order to keep an eye on the costs, it is possible to create alarms that get triggered when the projected costs exceed a certain target. For example, the following screen captures show the process to setup an email alert in case the projected bandwidth costs go over $500

Selecting data transfer metric

Naming the alarm and setting a threshold
Send an email if the alarm is triggered

Review and create the alarm

This functionality is just a taste of many new features Amazon is going to be adding in the next few months regarding billing automation and API access. As mentioned, this is particularly interesting for us, as we are building our cloud application hosting offering on top of Amazon's infrastructure. As an aside it is simply amazing the rate of innovation that keeps coming out of AWS, where other cloud vendors offering is still pretty much limited to starting/stopping VMs on demand...

Friday, December 23, 2011

BitNami Stacks Available in Chinese

As you may know, we have been working on translating our stacks to multiple languages, starting with some of the most popular. In addition to English, Spanish and Portuguese languages, we added support for Simplified Chinese in WordPress, Joomla!Drupal and Redmine, thanks to contributions from our community.

Drupal welcome page
Chinese Joomla!

We are looking to translate BitNami Stacks to more languages. If you would like to help, please check our wiki entry on translations and start translating in translate.bitnami.org. Thanks to Deng Kangming  for the Chinese translation!

Wednesday, December 21, 2011

Cloud Tools for Amazon API updated

We are happy to announce a new version of BitNami Cloud Tools. This installer is a collection of the most popular command line tools for the Amazon API: EC2, Beanstalk, ELB, RDS, SES etc. The installer ships all of the required dependencies to provide you with a fully configured environment for every Amazon API, including a JDK, Perl and Ruby runtimes, etc. BitNami Cloud Tools is available for Windows, Linux and OS X.

Here is the list of upgrades for the 1.3-0 version:

  • Update aws-ec2-api
  • Update aws-ec2-ami
  • Update aws-ses 2011-11-30
  • Update aws-sdk-ruby 1.2.5
  • Update aws-sdk-java
  • Update ruby 1.9.3
You can learn more about the installation process and the configuration in a previous post.

Monday, December 19, 2011

BitNami, bem-vindo ao Brasil!

As part of our commitment to make BitNami more accessible to end-users, we are working on translating our stacks to multiple languages, starting with some of the most popular. To welcome the new Sao Paulo Amazon region released last week, we released a Portugûes (Brasil) version of our WordPress, Joomla! and Drupal AMIs. Together with our pre-existing Spanish language support, it makes BitNami AMIs ideal for deployment in South America. The new language features are also supported on VMWare appliances and native installers. Please see below for some screenshots:

Welcome page for WordPress AMI
BitNami WordPress Stack

You can help us getting these and other stacks translated into your language. We have set up a translation server (running our BitNami Pootle Stack of course) so that BitNami users can help us to make the Stacks available in more languages.

Please check our wiki entry on translations to see how you can collaborate and start translating in translate.bitnami.org.

Wednesday, December 14, 2011

Amazon Launches on a New Continent, BitNami AMIs Are Ready to Go

You may have seen that Amazon just announced its new Sao Paulo, Brazil Region for the Amazon Cloud. We are very happy to announce that most of the BitNami library of applications is available immediately for this new region, with the rest to follow soon. We have been working with Amazon throughout the beta of the Sao Paulo region to ensure that the BitNami AMIs were ready to go for the launch, so they have already been tested in the new region. You can find the new AMIs in the Amazon catalog and they will be available within the next 24 hours on the BitNami site.

We are particularly excited about the launch of this new region because a large and very rapidly growing number of BitNami users are based there. In light of that, we are also working on adding Brazilian Portuguese support to the BitNami Wordpress, Joomla! and Drupal Stacks, which means that users will be able to deploy those apps with the language packs already installed and configured.

Support for the Sao Paulo region is also in the works for BitNami Cloud Hosting, which simplifies the process of deploying and managing the BitNami library of applications and development environments in the cloud. If you are not familiar with it, it offers dynamic deployments, automatic backups, monitoring and other features that make it easier to run applications in the cloud.

Support for the Oregon Region and Reserved Instances Now in BitNami Cloud Hosting

We are pleased to announce a couple of new features that were recently released in BitNami Cloud Hosting. First, we have added support for the Oregon region, so you now have a choice of West Coast regions for server deployment. We have also added support for selecting Availability Zones, so you can choose which zone to launch your server in and take advantage of Amazon's Reserved Instance pricing, which could save you 40% or more on your hosting bills.

This new Availability Zone support also introduces the ability to use Reserved Instances with BitNami Cloud Hosting. With Reserved Instances you pay a low, one-time fee and in turn receive a significant discount on the hourly charge for that instance. Reserved Instances are purchased for a specific Availability Zone, so it was not previously possible to take advantage them with BitNami Cloud Hosting. Now, you can specify which Availability Zone to launch your server to (as shown below). Provided that you choose an Availability Zone that you have Reserved Instances available for, you will automatically receive the Reserved Instance pricing. Using Reserved Instances can dramatically reduce your AWS bill, so if you plan to have your server(s) in operation for an extended period of time, we encourage you to look into it.

To select an Availability Zone when creating your server, click on the
 'Advanced Options' link after clicking the region selection button.
Select your preferred Availability Zone from the list of available options.
Please note that selecting an Availability Zone is not necessary, and only recommended if you are trying to take advantage of Reserved Instance pricing or want to keep servers running in different zones for redundancy purposes. If you do not select an Availability Zone, AWS will automatically select the best Availability Zone based on available resources.

If you are not already familiar with BitNami Cloud Hosting, it provides the easiest way to launch and manage Drupal, Joomla!, Redmine, Alfresco, SugarCRM and your other favorite open source applications and development frameworks in the cloud. Sign up today for a free developer account!

Get started with CodeIgniter in the Amazon Cloud

We recently released BitNami LAMP WAMP and MAMP Stacks with CodeIgniter 2, a popular development framework (the *AMP Stacks also bundle other frameworks like ZendFramework, Symfony and CakePHP). In this post, we will walk you step by step through how to start a project with CodeIgniter in the Amazon Cloud using a BitNami LAMP Stack AMI

First, you will need an Amazon acount to access the AWS Console. You can find how to create your account here (note that they have a free tier which provides you with a free micro instance for a year). Once you login to the AWS Console, go to the EC2 tab and launch a new Instance. You can locate the BitNami LAMP Stack image by searching in the Community AMIs tab for "lampstack-5.3.8-2", which is the latest version at the time of this writing.

Another option is to launch directly from the BitNami website. You can select your preferred region (United States, Europe or Asia) and the architecture (32 or 64 bits) and click on the appropriate link. Then, you can set different parameters from the AWS Console: availability zone, ssh key, the image type (micro, small, medium) and the security group. Once the machine is started, access it by typing the public DNS name in a browser. You should see something similar to the screenshot below.

The next step involves connecting to the machine. You can download the private SSH key from your Amazon account. If you want to connect to the machine from Windows using the popular tool Putty, you will need to convert your private key to the .PPK format. Take a look at this tutorial if you are not sure how to perform this conversion.

On Linux or OS X, you can open a Terminal and run the following command:

$ ssh -i /path/to/your/private/key.pem bitnami@ec2-xx-xx-xx-amazonaws.com

You will see a welcome message similar to:

All the required files are in the "/opt/bitnami" folder:

ctlscript.sh: It is the main script to start/stop the servers.
frameworks/codeigniter: The CodeIgniter framework files.
apache2: The Apache server files.
php: The PHP language files.
mysql: The MySQL database files.

You can edit the files online with a command line editor (nano, vim, emacs) but many people prefer to edit files with a graphical editor locally. Using an SFTP client like FileZilla, you can edit the files from your computer. If you need help, see our how-to for configuration instructions.

Edit the Apache configuration file /opt/bitnami/apache2/conf/httpd.conf and uncomment the following line at the end of the file:

Include "/opt/bitnami/frameworks/codeigniter/conf/codeigniter.conf"

Restart the Apache server and visit the CodeIgniter welcome page at http://ec2-xx-xx-xx-amazonaws.com/codeigniter

$ sudo /opt/bitnami/ctlscript.sh restart apache

Success! You can now access the CodeIgniter user guide and create your own application in the Amazon cloud using this framework.

Thursday, December 8, 2011

BitNami LAMP Stacks now include popular PHP frameworks

Our goal at BitNami is to simplify the creation and deployment of web applications. Most developers do not start their projects from scratch, but rather build on top of existing libraries and applications like Drupal or Joomla!. We are happy to announce that the latest versions of our BitNami PHP platform stacks (LAMPMAMPWAMPLAPPMAPP and WAPP) now bundle four popular development frameworks. These stacks are available as downloadable native installers,  virtual appliances and cloud images.

This is the list of PHP frameworks and versions that we are including:
  • ZendFramework 1.11.11
  • Symfony 2.0.6
  • CodeIgniter 2.1.0
  • CakePHP 2.0.4
If you have additional suggestions for other frameworks we should be adding, please let us know!

You can find a quick guide about how to start your first project using one of these frameworks at http://wiki.bitnami.org/Components/Frameworks

Friday, December 2, 2011

Get BitNami in your preferred language!

We recently started the process of getting BitNami translated into different languages. The BitNami Redmine Stack is available in Japanese and we already offers BitNami WordPress, Drupal, Joomla! and Redmine in Spanish. Our cloud offering, BitNami Clould Hosting, has also been translated into Spanish recently.

You can help us getting these and other stacks translated into different languages. For this reason we have set up a server running our BitNami Pootle Stack so that BitNami users can help us to make the Stacks available in more languages.

Please check our wiki to see how you can collaborate and start translating in translate.bitnami.org.