ownCloud is a popular free and open source file hosting server. It is cross platform and can be installed in many operating systems such as Unix FreeBSD, Linux, Windows and Mac OSX. Many people consider it as an alternate to Dropbox. With mobile clients like Android and IOS phone devices, we can easily access the ownCloud Server.

What is ownCloud and why should you know it?

ownCloud is written in PHP and Javascript. Some great database management systems like SQLite, MariaDB, MySQL, Oracle Database, and PostgreSQL can easily work with ownCloud.


A few of ownCloud’s many exciting features are:

  • File storage in conventional directory structures or via WebDAV.

  • Encryption of user files.

  • Synchronization of clients running Windows (Windows XP, Vista, 7 and 8), Mac OS X (10.6 or later), or Linux.

  • Calendar (also as CalDAV)

  • Task scheduler.

  • Address book (also as CardDAV)

  • Music streaming (through Ampache)

  • User and group administration (via OpenID or LDAP)

  • Sharing of content across groups or public URLs.

  • Online text editor with syntax highlighting and code folding

  • Bookmarking

  • URL shortening Suite

  • Photo gallery.

  • Video viewer.

  • PDF viewer (using PDF.js)

  • Viewer for ODF Files (.odt, .odp, .ods)

  • Mozilla Sync hosting – If you are a Mozilla Firefox user, all history, form data, bookmarks etc. can be stored in your ownCloud server.

  • RSS/Atom feed reader.

  • Connecting external storages (If you have accounts on Dropbox, GoogleDrive, or Amazon S3, you can mount those storages into your ownCloud installation)

  • Customizable with one-click-install apps.

  • Logging Module: supports logging of file-related actions, logs, who accessed what, when and from where. (Only available in the ownCloud Business, Enterprise and Education Editions)


How to setup ownCloud?

Despite the name, ownCloud doesn’t really have much relation with cloud computing. In this article we will discuss how to setup ownCloud inside AWS VPC.


Architecture of our ownCloud setup

Since we are setting the ownCloud server environment in AWS, we will use the readily available AWS services. Because of the use of s3 bucket, we can easily manage our data from ownCloud server.

  • Virtual Private Cloud (VPC): It is a network of private IP addresses almost similar to a LAN setup.

  • EC2 Instances: We would be using Linux EC2 instances. You can use one or more instances in this setup.

  • Relational Database Service, RDS: MySQL RDS is our choice for this setup. If necessary, you can go for Muti-AZ option with RDS to maximize the availability and fault tolerance.

  • ELB: Elastic Load Balancer, which will load balance the incoming traffic among the EC2 instances and provide maximum availability of ownCloud to user. It enables you to achieve greater levels of fault tolerance in your applications.

  • S3 Bucket: S3 bucket will play vital role for storage. We will upload our data in the S3 bucket through ownCloud. But no plugin would be used in ownCloud. We will use the S3fs , another Open Source utility that helps to mount the S3 bucket in server as file system.

  • Web Server: In our setup we will use the HTTP Apache Webserver.

  • PHP: As PHP is our basic requirement to run the show. We will install PHP and php-modules for the ownCloud setup.


Stay tuned for the second part of this blog which will talk about technical steps to get your blazingly fast running owncloud in AWS.