Our website is made possible by displaying online advertisements to our visitors. Please consider supporting us by disabling your ad blocker.

Host A Podcast For Cheap On Amazon’s S3 Service

TwitterFacebookRedditLinkedInHacker News

This year was the year that I started two different podcasts, one titled The Polyglot Developer Podcast and the other being The NoSQL Database Podcast. I’ve been getting a few questions regarding this, but people are asking where I’m hosting the episodes.

This is a great question!

I’m actually hosting these podcasts using Amazon’s S3 service because it is cheap and incredibly easy to get set up with. I’m going to walk through the steps I took to make this possible, and share the fees that I’m experiencing as of right now.

If you’ve never used Amazon S3 before, you may be unfamiliar with how things work. The S3 service is bucket based so you can create separated buckets for storing files. I have two buckets created, one for each podcast.

Working with Amazon S3 for Hosting

Start by going to the AWS S3 website so we can create a new bucket.

AWS S3 Create Bucket

It is probably best to choose a region that is either closer to you or closer to your audience. Some regions are more expensive than others so you may want to check the pricing calculator.

Your new bucket will be empty at this point, but in order to make your S3 bucket web ready, you’ll need to upload an HTML file. Create an index.html file locally and include the following code:

<html>
    <head>
        <meta http-equiv="refresh" content="0;url=https://www.thepolyglotdeveloper.com/category/podcasts/" />
    </head>
    <body>
    </body>
</html>

I’m using WordPress for this blog and want all traffic re-routed to the podcast category of my blog. You can choose whatever redirect link that you’d like.

Upload this file to the root of your S3 bucket.

AWS S3 Upload File

You need to make sure to edit the details and permissions otherwise the file will be private from the world. You’ll want to choose make everything public. The type of storage you choose is up to you. Check out the pricing and definitions to see what makes the most sense for you.

Next we need to enable static hosting on S3. Technically by doing this you can host any static website in this bucket whether it be something you hand crafted or through a static website engine like Hugo.

AWS S3 Enable Static Hosting

After clicking Properties and then Static Website Hosting choose to Enable website hosting. There you will need to enter the index.html file for both the Index Document and Error Document.

A few more things need to be done before the S3 bucket is ready for hosting podcast episodes.

By default, the permissions are very strict. Navigating to the hosted website will likely result in some kind of permission error. This is why we must first change the permissions to allow file requests.

AWS S3 Edit Permissions

In the same Properties section as seen previously, click the Permissions dropdown instead. We’re going to choose Add bucket policy and add the following chunk of text:

{
    "Version": "2012-10-17",
    "Id": "Policy1459549921318",
    "Statement": [
        {
            "Sid": "Stmt1459549919181",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::test.thepolyglotdeveloper.com/*"
        }
    ]
}

This was generated using the the AWS Policy Generator. Change the text test.thepolyglotdeveloper.com to whatever you’ve named your bucket.

Back in the Static Website Hosting section of the Properties tab there is an endpoint URL. At this point it is now public and the URL that people can access. If you don’t want to use your own domain name, you don’t need to. However, if you do want to, take this endpoint URL to your domain name provider and create a new CNAME that maps to it.

I like to keep my Amazon S3 bucket clean. I generally create a data directory and an images directory rather than dropping all media files at the root. It is entirely up to you. Whatever you choose, the file permissions need to be make everything public. When you place your podcast.xml file on your server, submit it to iTunes and all the popular repositories. This feed will contain links to the appropriate data files in your bucket.

If you need help creating a podcast.xml file, see my previous post on the topic.

I’ve been podcasting since January 2016 and have four (4) episodes published for The Polyglot Developer Podcast. Last month I spent $1.54 on podcast hosting with AWS S3.

It costs hardly anything to host the files on S3. In fact it only costs around $0.01 for me to host all my files. Most of the expenses come from transfers. The more podcast downloads I receive, the more it will cost me. Last month I had about 18GB of transfers. So assuming each of my podcast files are around 35MB in size, my podcast (any episode) was downloaded 526 times. Not bad!

Conclusion

Amazon’s AWS S3 service is great for anyone getting started with podcasting. It offers incredibly cheap and reliable hosting for all files. If your podcast has a slow start you won’t have to worry about spending hundreds of dollars. I definitely recommend S3 for hosting your podcast.

Nic Raboy

Nic Raboy

Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in C#, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Unity. Nic writes about his development experiences related to making web and mobile development easier to understand.