How to Use Amazon S3 to Host Presenter Courses

Dec232008
Written by Pat and Lorna Shanks — Posted in Articulate Presenter

This guest blog entry was written by Articulate customers Pat and Lorna Shanks.


What do Articulate and Amazon have in common? They are at the top of their fields: Articulate is the market leader in rapid e-learning software and Amazon is a market leader of e-commerce worldwide.

Who are Pat and Lorna Shanks? We are the co-founders of SpectacularPresentations.com, a company that creates Articulate presentations for direct marketers whose content is currently in audio and text format.

We noticed a few months ago that we were approaching our bandwidth limits on some of our hosting accounts. So we searched for a service that was scalable, reliable and would grow as we grew our business, without having to invest in hardware and networking infrastructure beforehand. We have chosen to use Amazon S3. This will allow us to continue to grow our business without the extra costs of prepaying for the network infrastructure. It’s basically a pay-as-you-grow scenario, which is great for us as owners of a growing business.

You can start by viewing the tutorial in Articulate Presenter, or you can read more details of how to use Amazon S3 to host your Presenter courses below:

View Demo on How to Use Articulate with Amazon S3

Background

Amazon S3 (Simple Storage Service) is an online storage web service offered by Amazon Web Services (AWS). Amazon claims that S3 uses the same scalable storage infrastructure that Amazon.com uses to run its own global e-commerce network. S3’s design aims to provide scalability, high availability and low latency at commodity costs. Amazon charges end users prices that start at only $0.15 per gigabyte-month, with additional charges for bandwidth used in sending and receiving data.

There are a couple of caveats with S3:

  • It’s not designed to be a web server. There’s no default page as there is for web servers.
  • There are no guarantees that customer data will not be lost.

Amazon S3 bandwidth is already inexpensive and unlimited, and the cost went down even more on November 1, 2008.

Amazon S3 Basics

Amazon S3 is a web service that allows developers to gain access to highly scalable, very reliable, and inexpensive storage space. Amazon S3 is highly economical because you pay only for what you use. Data is replicated to multiple servers at multiple data centers.

Files or data that you want to store on Amazon S3 are called “Objects.” Once an object is stored in S3, it will contain: (1) contents of the file, and (2) the given amount of metadata. The given object can be from 1 byte to 5 GB.

“Buckets” provide unique namespaces for management of objects contained in the bucket. Bucket namespaces are global across all of S3. An S3 account is allowed 100 buckets.

A “Key” is a unique identifier for an object within a bucket.

Amazon S3 “Authentication” ensures that nobody else sees your private data.

  • Access Key ID: Access Key ID is a unique identifier that tells S3 to target a specific user account.
  • Secret Access Key: Secret Access Key is used to access control on the given Access Key ID. You can grant various access models for an object or an entire bucket:
    • private
    • public-read
    • public-read-write
    • authenticated-read

Secret Access Key tells S3 what type of access control you have on any given Access Key ID.

Steps for New Amazon S3 Users

  1. You first need to have your own Amazon S3 Account.
  2. You will need a way to create/manage Amazon S3 buckets and upload objects, so you’ll need to install a client on your PC (FTP does not work).
  3. There are two clients that we have used, one is free; the other is fee-based:

    • S3 Organizer add-on for the Firefox web browser is a free, less-featured alternative.

    • Bucket Explorer is a fee-based, full-featured and easy-to-use client that runs on Windows, Linux and Mac.

    We use both for various needs and requirements, as both have small bugs or inconsistencies when working on our Amazon S3 account.

  4. Install your application of choice, but we would recommend installing both of the above.
  5. Obtain your Amazon AWS Access Key ID and Secret Access Key and enter them into each application. These are available by logging into your Amazon AWS account, mousing-over “Your Account” in the upper right-hand corner, and selecting “Access Identifiers:”

Bucket Names

Buckets provide unique namespaces for management of objects contained in the bucket. So you can think of buckets as the highest folders at the root of your S3 account. Bucket namespaces are global across all of S3. An S3 account is allowed 100 buckets.

Bucket names and keys are chosen so that objects are addressable using HTTP URLs.

The default access to your files is based on a Domain/Bucket/Key combination:

  • http://s3.amazonaws.com/bucket/key
  • http://bucket.s3.amazonaws.com/key
  • http://bucket/key (where bucket is a DNS CNAME record pointing to s3.amazonaws.com)

For example, our bucket name is s3.2yourvideo.com (case is very important – always use lowercase for bucket names). Our key name (folder) is 409622.

Our live Articulate Presenter examples:

Here’s what we provide to our customers and what we use for tracking purposes:

S3 Organizer with Bucket = s3.2yourvideo.com, Key = 409622:

How to Set Up an Articulate Presentation to Work from Amazon S3

We have now given you a good understanding of what Amazon S3 is, why we are using it for our business requirements and some basic S3 terminology. We have also recommended some client software on a PC that will allow you to work with buckets and folders (keys) and allow you to move your Articulate-published objects to Amazon S3.

For this example of moving the Articulate-published objects to Amazon S3, we will use Firefox and the S3 Organizer add-on.

Here’s what to do:

  1. Open Firefox and go to Tools menu -> S3 Organizer:
  2. Select the “bucket” that you want to use:
  3. Create a new folder (“key”) by selecting the “Create New Folder” icon, then entering the name of the folder ”key” you want to use (eg., 409654), and clicking “OK:”
  4. Upload your Articulate Presenter presentation to Amazon S3 by selecting the folder you want to upload from your hard drive, then selecting the objects that you wish to upload (this should be the published folder from Articulate), select the folder “key” that you want to upload your presentation into, selecting the blue arrow pointing right to move the objects to Amazon S3:
  5. After the upload, the objects are now located on Amazon S3:
  6. Return to the folder (key) level in Amazon S3, then select the “Folder” that you just uploaded the objects to, right-click and select “Edit ACL” (ACL = Access Control List):
  7. Check the “Read” box for Everyone, click the “Apply to subfolders” checkbox, then “Save” to apply the permissions:
  8. We’re done!

Note On ACL (Access Control List) or Permissions

You’ll need to set permissions on your bucket, folders and the files within using your favorite bucket management tool. We recommend setting the Bucket permission to “full control by owner” and “read access for everyone,” and setting the permissions of the Folders/Files within the Bucket to “full control by owner” and “read access for everyone.” This will prevent people from being able to browse/list the files in your bucket.

How Articulate Looks Running From Amazon S3

If you haven’t already done so, take a look at the Articulate Presenter version of this tutorial, which is hosted on Amazon S3.

Can you tell the difference running from Amazon S3?

If you want to learn more about Pat & Lorna Shanks and SpectacularPresentations.com, helping audio content producers create spectacular presentations from audio, we invite you to visit our blog at PatAndLorna.com or our Spectacular Presentations site. You can also follow us on Twitter.

6 responses to “How to Use Amazon S3 to Host Presenter Courses”

1

Great post on Amazon S3! Why don’t you try CloudBerry Explorer for Amazon S3. It make managing files on S3 easy and it is Free! http://www.cloudberrylab.com

Thanks!

Andy // Posted at 11:19 am on December 23rd, 2008
2

Good idea.

And if you have a global audience, you may also want to use Amazon CloudFront with S3 to further speed up the process.

Amit Agarwal // Posted at 12:44 pm on December 23rd, 2008
3

You don’t need to set Bucket Permission as “read access for everyone”. If a Bucket is set as “read all”, then anyone can list contents of a bucket. In most cases, this is not what you want.

You did mention about some in-consistencies with Bucket Explorer. I would love to get the feedback on our forum about those issues, so we can improve the product.

Thanks
Saurabh

Saurabh // Posted at 1:17 pm on December 23rd, 2008
4

Nice introduction for S3 service! I also suggest that you can have a try of the new S3 tool CrossFTP client, which easily works like a traditional FTP client for S3, SFTP, WebDav, etc. http://www.crossftp.com/

Alex // Posted at 4:22 pm on January 4th, 2009
5

I am enthralled by this concept.

From what I’m seeing all content that you post is “open access” or you create a site for client to whom you provide a dedicate

Is is possible to control and manage access to content hosted on S3 using a subscription business model?

Yakov // Posted at 3:45 pm on June 1st, 2009
6

As far as I can see we there is no way to host on S3 without revealing all to the world. It would have worked had we easily been able to substitute the relative links for mp4 files and swf files that Articulate uses internally for absolute ones, then those movie files could have been stored on S3 and replaced/updated as required. But the described method (the only method it seems) is to upload the whole directory structure of Articulate files and this means we’ve no choice but to expose them all.

The only other way to do it I guess is to use a web object, but that is really clunky.

Liz // Posted at 1:41 pm on October 28th, 2009

Comments are closed on this post. Need more help? Post your question in the E-Learning Heroes Discussions.

Recent Comments