Now any WordPress (or *any* dynamic Website, for that matter) can seamlessly store all its data on the cloud storage.
Contents
WordPress on Amazon S3: real simple
Create your own WP on S3 with Yapixx
Move website content to the cloud
Cloud storage is awesome. It is highly- durable, reliable, available, and scalable; it has infinite capacity, it is the most mature and thus stable service - all of it on a Pay-For-What-You-Use pricing model.
Using cloud storage to store Website data has the following benefits:
· No backup and recovery is needed for the website data
· Storage is extremely reliable and durable
· Media files (such as pictures, documents) are served by the cloud storage directly
· Storage cost scales with usage, no upfront reservation is needed
· Storage consumption scales up and down with the amount of data stored
A Web server running the website can be hosted pretty much anywhere. Depending on your needs, the Web server can run from your premise, by your favorite hoster or on Amazon Instance in AWS.
As for the website data, you have the following primary deployment choices:
1. [PREFERRED] Take the whole website data to Amazon S3
2. Only migrate website content to Amazon S3 while storing media files in the uploads folder on the Web server running WordPress.
3. Only upload media files to Amazon S3.
· Ready-to-run WordPress on S3 – Yapixx
OblakSoft provides a ready-to-run WordPress on Amazon S3 appliance as an Amazon Machine Image (AMI). The AMI contains a fully configured WordPress stack with a demo website called Yet Another Picture Sharing Site (Yapixx). You can use this AMI as a starting point for your own new WordPress website, or as an example of properly configured WordPress site that runs on Amazon S3.
· WP2Cloud WordPress plugin
WP2Cloud extends WordPress to store media files (such as pictures) on the cloud storage.
Yapixx demonstrates the easiest way to build a dynamic website on cloud storage. Yapixx stands for Yet Another Picture Sharing Website.
Yapixx is WordPress, configured as a picture sharing site, that stores all its data in Amazon S3 (thanks to OblakSoft ClouSE). Yapixx AMI is available from http://www.oblaksoft.com/downloads. It has fully configured WordPress, WP2Cloud plugin and ClouSE, such that all data is stored in Amazon S3.
Yapixx serves as an example of a beautiful yet powerful dynamic Website that seamlessly gets the benefits of cloud storage:
- reliability: The website stores valuable assets - personal pictures. Thus it would benefit from pictures being automatically instantaneously stored in one of the most trusted and reliable cloud storage such as Amazon S3;
- scalability: When large files of this site are accessed via cloud storage URLs (as opposed to local URLs), they can be served directly from cloud storage relying on its enormous power to make delivering the content highly scalable;
- data is always on: The fact that data is always available in the cloud without replication or backup brings a lot of flexibility. E.g. in case the website rapidly picks up in popularity, it can get quickly re-hosted to a larger web server without moving data around.
- unified data management: When unstructured data files (pictures) and related structured data (such as meta tags, blog text, thumbnails) are managed in the same transactional manner, both programming and management models are greatly simplified.
Here are the five easy steps to get Yapixx up and running:
1. Sign up for an AWS account.
2. Create an S3 bucket.
3. Start EC2 instance using Yapixx AMI.
4. Connect to the web application from a web browser.
5. Enter the S3 data location and authentication information.
(The full step-by-step guide for using Yapixx as a WP on S3 template is available here.)
You can use Yapixx as a starting point to create your own beautiful WordPress site. The plugins that turn WordPress into Yapixx, such as the WP2Cloud plugin, the Yapixx theme, etc. are available under the GPL completely FREE.
The Cloud Storage Engine for MySQL ClouSE (ClouSE) is required to be installed and configured on the MySQL server that holds the website.
Here are the steps for installation and configuration of ClouSE:
1. Sign up for an AWS account.
2. Create an S3 bucket if you don’t have one.
3. Install and configure ClouSE.
You can move the whole WordPress database table by table using the following MySQL statements:
ALTER TABLE wp_commentmeta ENGINE=ClouSE;
ALTER TABLE wp_comments ENGINE=ClouSE;
ALTER TABLE wp_links ENGINE=ClouSE;
ALTER TABLE wp_options ENGINE=ClouSE;
ALTER TABLE wp_postmeta ENGINE=ClouSE;
ALTER TABLE wp_posts ENGINE=ClouSE;
ALTER TABLE wp_term_relationships ENGINE=ClouSE;
ALTER TABLE wp_term_taxonomy ENGINE=ClouSE;
ALTER TABLE wp_terms ENGINE=ClouSE;
ALTER TABLE wp_usermeta ENGINE=ClouSE;
ALTER TABLE wp_users ENGINE=ClouSE;
Follow installation instructions for WP2Cloud WordPress plugin to have media content stored in the cloud storage.
Now all WordPress data is stored in the cloud storage!
WP2Cloud stores media files such as pictures, music, videos, documents in the cloud. Media files that are uploaded to the WordPress are actually uploaded to the cloud storage, not to the local file system of the Web server hosting this website.
The media files are served from the cloud storage, the website pages now refer to the media files via direct cloud storage URLs. This makes your site directly powered by the enormous scale and reliability of Amazon S3.
To make serving media files even faster, the plugin can be configured to use a Content Distribution Network (CDN), such as Amazon CloudFront. When the plugin is configured to use a CDN, the website pages refer to the media files via the CDN URLs. The CDN serves the media files from locations around the world to provide the best performance.
WP2Cloud plugin kills three birds with one stone:
1. Media files are stored reliably in the cloud and don't need to be backed up.
2. Website now can leverage the cloud power to scale out content delivery to the browser directly from the cloud storage. The file content is served by the cloud storage utility provider which takes load off of the Web server. This is different from the default WordPress behavior where media files are local files, and are served by the Web server and consume network bandwidth, disk I/O and CPU power of the Web server.
3. WordPress web tier is now stateless, so web tiers can now be auto-scaled and auto-balanced as needed to meet the website's scalability goals.
If you plan to store all WordPress site’s data on Amazon S3 storage, use a ready-to-run WordPress on Amazon S3 (Yapixx) AMI as a starting point or check out the detailed instructions for manual configuration.
In case you are interested only in uploading media files to cloud, please follow WP2Cloud installation instructions below.
You can download and install WP2Cloud plugin using the built-in WordPress plugin installer. If you download WP2Cloud manually, make sure it is uploaded to "/wp-content/plugins/wp2cloud/".
WP2Cloud requires the Cloud Storage Engine for MySQL (ClouSE) to be installed and configured on the MySQL server. If ClouSE is not installed, WP2Cloud will fail to activate.
Here are the steps for installation and configuration of ClouSE:
1. Sign up for an AWS account.
2. Create an S3 bucket if you don’t have one.
3. Install and configure ClouSE.
Once ClouSE is installed and configured, you can activate WP2Cloud plugin:
1. In your WordPress administration, go to the Plugins page
2. Activate the WP2Cloud plugin.
Now all new media files are going to be uploaded to the cloud.
Your website can gain higher availability and scalability!
Optional: to configure the plugin to use a Content Distribution Network (CDN), go to the WordPress to Cloud Settings page and specify the Cloud Distribution URL. The CDN must be configured to use the cloud storage bucket as a content origin.
· MySQL Server 5.5.19 or above
· Apache 2.2.15 or above
· PHP 5.3.2 or above
· ClouSE 1.0b.1.1 or above
If you don't have permissions to install the Cloud Storage Engine (ClouSE) on the MySQL server that stores your WordPress database, you can configure WP2Cloud to use a separate Media Server. The Media Server makes it possible to use cloud storage to store and serve media files, while keeping your existing database solution to store website content.
To use a Media Server, first install and configure a MySQL server with ClouSE. After the Media Server is up and running, create a database for WP2Cloud on your Media Server, as well as a MySQL user who has all privileges for accessing and modifying it.
Edit wp-config.php and fill in the Media Server database configuration into the MEDIA_DB_* settings (similar to the DB_* settings):
// ** MySQL media server settings ** //
/** The name of the database for WordPress media files */
define('MEDIA_DB_NAME', 'putyourdbnamehere');
/** MySQL database username */
define('MEDIA_DB_USER', 'usernamehere');
/** MySQL database password */
define('MEDIA_DB_PASSWORD', 'yourpasswordhere');
/** MySQL hostname */
define('MEDIA_DB_HOST', 'localhost');
1. Add media: when media files are uploaded to the WordPress they are actually uploaded to the cloud storage. The derivative media files (e.g. thumbnails for pictures) are also uploaded to the cloud storage. Note that Link URL points to the WP2Cloud media file redirector: this URL redirects to the cloud storage URL. Note that this changes the default WordPress behavior for media files and their related derivative files to be stored on the local file system of the Web server hosting the website.

2. Insert a picture into a post: when a picture is inserted into a post, WP2CLOUD shortcodes are stored in the post for the webpage instead of the actual picture and thumbnail URLs. Such WP2CLOUD shortcode contains the ID that uniquely identifies the media file on the website.
3. View post source: before the page is delivered by the Web server to the Web client (browser), the WP2CLOUD shortcodes are translated into the actual direct URLs that point to the cloud storage on Amazon S3. The web browser downloads all the media files (including thumbnails) from the cloud storage, bypassing the web server. Note that media files are served by Amazon S3 directly relying on enormous power of the cloud to make serving the content highly scalable.

4. Setup CDN (optional): to make content delivery even faster, you can setup a Content Distribution Network (CDN) for the media files. When the CDN URL is specified, the media files URLs point to the CDN that takes care of distributing files in the most optimal fashion.
5. View post source with CDN: when a CDN is used, the media files are served from the CDN.
WP2Cloud plugin for WordPress:
1. Is the last piece in the puzzle of moving the whole WordPress site to Amazon S3 storage. It allows taking full advantage of cloud storage by consolidating both website content and media on the cloud storage.
2. Makes WordPress web tier stateless: media is stored on cloud storage, not on the web tier filesystem. This makes it possible to auto-scale and auto-balance WordPress web tiers.
3. Uploads files faster because it relies on OblakSoft WebStor - high performance library for Amazon S3.
4. Handles media file uploads in a transactional manner. Either both the whole file and all its derivative files (e.g. thumbnails for pictures) get uploaded or nothing does.
Not at all. Since cloud storage space is nearly limitless, you can use as much of it as you need. WP2Cloud can upload very large files as it uses multi-part upload and thus it is not restricted by the available memory on the Web server.
Media files are uploaded to cloud storage as fast as physically possible with the help of WebStor - high performance library for Amazon S3.
Absolutely, your media experience is not affected by this plugin. You can change image, add title, alternative text, media tags – whatever you might need.
Yes, just make sure you use ClouSE 1.0b.1.4 (or later) and WP2Cloud 1.2.0 (or later).
You can use ssh or PuTTY to log into the instance. You need to have the private key of the key pair that you've used to launch the instance. The ssh command would look like this:
ssh -i your-keypar.pem ec2-user@ec2-N-N-N-N.compute-X.amazonaws.com
The command will get you logged into the instance as the ec2-user. The ec2-user can execute the sudo command, so if you need superuser privileges, just prefix the desired command with sudo. The WordPress root is at /var/www/wordpress and the tree is owned by the apache user, so to edit files there, you must use sudo prefix, e.g. sudo nano /var/www/wordpress/wp-config.php.
To copy files to the instance, you can use scp or PuTTY. The scp command would look like this:
scp -i your-keypar.pem foo.php ec2-user@ec2-N-N-N-N.compute-X.amazonaws.com:.
The command will copy the file foo.php to the ec2-user's home directory. Then you can log into the instance and copy the file to the desired location.
Yes. Standard MySQL tools work well with ClouSE. For example, you can use mysqldump to export the whole WordPress database into a file. In fact, WP2Cloud makes data export easier and more robust, because the database dump now includes the media, so the dump fully represents all website's data.
Yes, you can configure WP2Cloud to use a separate Media Server. The configuraiton instructions are provided here.
You can rely on Amazon S3 bucket policies. For details please refer to WordPress on S3: how to prevent hotlinking.
You can guarantee data confidentiality in the cloud by running the webserver in a datacenter that is different than the datacenter managing your data (Amazon S3). ClouSE encrypts relational data using strong AES-256 encryption before it leaves the database management site. This ensures that the data is visible neither on the wire nor at the cloud storage provider site. In that respect, ClouSE is the only cloud-based relational data management technology available today that solves the problem of data confidentiality in the cloud.
The comprehensive documentation can be found here.
Please visit this forum for questions or comments. Older support discussions can be found here.
If you aren’t able to find a resolution, please email us at bugs@oblaksoft.com. The authors are available for professional consulting to meet your configuration, troubleshooting and customization needs.
Download WP2Cloud (WordPress To Cloud) Source Code: wp2cloud-1.3.5.tgz
WordPress on S3: run a beautiful website on Amazon cloud storage.
WordPress on S3: how it works.
WordPress on S3: run it anywhere.
WordPress on S3: no more backups.
WordPress on S3: now with CDN.