Jump to content
  • Advertisement
Sign in to follow this  
  • entries
    6
  • comments
    3
  • views
    1478

General Why Troll Purse Migrated to AWS

Martin H Hollstein

1529 views

Originally posted on Troll Purse Dev Blog

Recently, Troll Purse made the decision to migrate from the cloud in Digital Ocean to Amazon Web Services for cloud and website services. There were several reasons behind this critical decision. These reasons are infrastructure, flexibility, and future plans.

aws-v-do.png

Infrastructure

Digital Ocean has a nice setup. They have a slick looking User Interface, easy to find services, and awesome community driven documentation. Troll Purse quite liked Digital Ocean if not for a few issues regarding infrastructure in comparison to Amazon Web Services (AWS).

Cost

Digital Ocean was not overly expensive. However, their base monthly rate ($5 / month + $1 / month for backups), was still higher than hosting a static website on AWS. This is because, to host a static website and blog, Digital Ocean achieves this via Droplets. This does not scale the wallet very well - especially if traffic started to boom. Digital Ocean only offers referral bonuses. So, if we were famous - we could potentially host everything for free. Big gamble at this moment.

AWS charges $0.50 / month forRoute 53 (DNS Name Servers) and a variable cost for S3 storage of our static website content. Based on traffic trends, the variable costs of AWS were a huge benefit. Finally, it helps that AWS offers a full year of various resources for free.

Continuous Delivery

Digital Ocean had a lot of APIs for Continous Delivery of our website, but it didn't offer a full suite of solutions for proper Developer Operations. Digital Ocean would require a lot of extra Developer Operations overhead writing build and deployment scripts using their APIs. AWS integrates with Bitbucket and Github - two services we use for source control. AWS also offers managed build and deployment services that Troll Purse will be leveraging.

Architecture

Digital Ocean is limited to Droplets. This pales in comparison to AWS's robust EC2, ECS, or serverless services. In AWS, Troll Purse can decouple services and code for various solutions. To do the same distributed computing in Digital Ocean as Troll Purse is enabled to do in AWS would require a significant investment in architecting infrastructure. In AWS, this is vastly done for Troll Purse - once an architecture is designed, only configuration of the services need to be done.

With Digital Ocean, Troll Purse had to setup an Nginx server for serving static website content. It did not scale well (without more invested time in building an architecture and more configurations) as all content was stored on that server. In AWS, Troll Purse can distribute web content using Cloud Front for CDN and server static content from S3. Totally serverless and decoupled from the blogging platform and the forum servers (the latter is yet to be deployed).

Flexibility

In Digital Ocean it was difficult to manage servers and logical groupings of services. AWS offers tagging of resources and services to help better monitor health, costs, and grouping of application services built and provided by Troll Purse.

Unfortunately, Digital Ocean does not offer the robust services and infrastructure needed for a company built with development speed in mind. A lot of services need to be hand crafted, as well as servers. This slows development efforts and makes iterative development a nightmare. Using small, simple services each with a specific purpose in mind, Troll Purse is better able to develop an experiment based on the offerings provided by AWS.

Digital Ocean only provides five real services, Compute, Object Storage, Block Storage, Networking, and Monitoring. Each of these are small in comparison to comparable AWS services such as Compute Services (ECS or EC2), Storage, Virtual Private Cloud (Networking), and Cloud Watch (Monitoring). In AWS each of those services / categories work with each other or are umbrellas to a myriad of other flexible offerings.

Finally, AWS has way more to offer - just take a look!

Future Plans

After much discussion, Troll Purse concluded our future development needs will be implemented faster and scale naturally in AWS over Digital Ocean. While we enjoyed our brief experience with Digital Ocean, we are excited to build using AWS as our cloud and hosting provider.

While we do not plan to build anything with Lumberyard now, we have some exciting projects that will easily leverage the power of AWS. Such projects are backend analytics of our games using Amazon API Gateway, Lambda, and data services. We also hope to build an integrated environment so that each game shares common interfaces into our development and publishing environment. 

Conclusion

While this blog post is mostly given as an explanation of our tactical decision to migrate to AWS, Troll Purse hopes it will serve as guidance to future developers facing the same decisions. We found that AWS provides a lot for small and large companies when it comes to infrastructure, flexibility, and accommodating future plans.

Originally posted on Troll Purse Dev Blog



3 Comments


Recommended Comments

Thanks for sharing your experience!

Did you consider any other options (such as Google's services) or just Digital Ocean and AWS?

I'd be interested to hear why other options were discarded if any were considered. :)

Share this comment


Link to comment
4 hours ago, jbadams said:

Thanks for sharing your experience!

Did you consider any other options (such as Google's services) or just Digital Ocean and AWS?

I'd be interested to hear why other options were discarded if any were considered.

No problem jbadams! Always glad to help. 

I had looked into Google cloud services, but the lack of community and, what seemed to me features for the cost, turned me off. It may have also hurt that configuration for service integration in Google cloud seemed wonky at best ( I had started to set up a Google Home integration service). The reason being is that there are configuration options in the console not only for Google cloud, but also for all of their other services (Google+ for instance). This made it feel like a management nightmare.

I have experience in Azure, but I found it too rigid. If I was planning on going full Windows Stack, I may have actually gone with Azure. But, from past experience, the simple act of running the equivalent of an AMI was expensive. I actually had to shut down a repo server due to the overwhelming cost. I had also deployed a game out to Azure as well . It still runs but I found managing infrastructure a nightmare in Azure.

AWS was a natural fit (disclaimer: I have since become a certified Solutions Architect) for what I wanted to achieve. Fast iterations of cloud infrastructure, simple UI on the web and a sensible CLI. From previous experience, I had deployed a defunct game and editor to AWS back in 2013/2014. That was the smoothest and most straight forward experience I had with cloud infrastructure.

Now, I do find AWS great, but one thing that peeves me off right now is the lack of Dev Ops for Windows builds. I really want to use CodeBuild, CodeCommit, CodeDeploy (might as well as use CodePipeline at that) to start deploying and distributing ALL of my game builds in UE4. However, at this point, I will have to provision an AMI to build Windows, which means deploying a CI tool as well (such as Jenkins).

 

I hope you find that information useful. If you have any other questions, feel free to ask! I really enjoy conversation and feedback.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Advertisement
  • Blog Entries

  • Similar Content

    • By Lauren Tuccy
      So my only coding experience is with writing Interactive Fiction games with Inform, so I get the logic and stuff, but, I'm so used to starting with a program with libraries and assets already built in, that I have no idea how to build something from scratch. 
      I'm would like to make this simulation game where the player is a student in a [magic] school, and I've got stats for the students, their personality types, and ideas on how that should effect their performance in class, and experience rates, and all this data in a google spreadsheet, but I have NO idea how to start creating this game on a code level. So, I'm just struggling on finding out how to get started. Can anybody give me some advice?
    • By petya-kurochkin
      Hello, I have a 'join'-function that joins an array's elements to a string. This is what I want:
      vector<int> a = {1,2,3} array<int, 3> b = {1,2,3} cout << join(a) << endl; // "1, 2, 3" cout << join(b) << endl; // "1, 2, 3" So I'm trying to declare the function this way:
      template <typename T, typename C> string join(const C<const T> &arr, const string &delimiter = ", "){ ... } But without any success. I understand, that I could declare it this way:
       
      template <typename T> string join(T &arr){ ... } or this way:
      template <typename Iter> string join(Iter &begin, Iter &end){ ... }
      But I just wonder, is it possible to implement it like:
       
      template <typename T, typename Collection> string join(const Collection<const T> &data){ ... } Thank you!
    • By sausagejohnson
      All games written with Orx have a profile screen that can be called up to monitor for any inefficiencies or bottlenecks.
      Iarwain will be demonstrating the Profile Mode for Orx over twitch tomorrow night at:
      Come along if you're interested to learn about it. There will be an opportunity to cover any topics after the demo.
      Here's some time zones as a guide to when it's on:
      Montréal, Canada      Tue, 11 Dec 2018 at 1:00 am EST     
      Rome, Italy           Tue, 11 Dec 2018 at 7:00 am CET     
      San Francisco, USA    Mon, 10 Dec 2018 at 10:00 pm PST    
      Sydney, Australia     Tue, 11 Dec 2018 at 5:00 pm AEDT    
      You can check other time zones here: https://www.timeanddate.com/worldclock/converter.html?iso=20181211T060000&amp;p1=165&amp;p2=215&amp;p3=224&amp;p4=240
       
       

    • By DavinCreed
      As I like to say with a deep sadness in my soul, I've been failing at game dev for about three decades. I've been having fun, but I'm ultimately disappointed with my progress. So I've once again changed my goals and strategy and over engineered it. Which brings me to my current project.
      My new goal is to get better through repetition, but using a strategy for that repetition to make my skill development more efficient. So far, I've completed some clones of the first levels of two games (Ninja Gaiden and Super Mario Bros. for the NES), and am starting out on making the first level of Bionic Commando (also for the NES). I'm redoing the graphics in half the res of the originals for now.


      So far, this strategy seems to have taught me more in the few months I've been doing it, than the five years it took me to complete my last game. The difference I suppose is that I'm not going to attempt to release most of these games. I might consider polishing and releasing the ones that aren't clones. This big learning project looks like it will take me a few years, in the meantime I'll probably start other projects while still working through it but this is going to be my primary project for a long while. And something that I think I should have done in the first place so many years ago.
      I'd like to share my progress from time to time and hopefully have some discussions.
    • By Octolancers
      Hi there, my name is René, and Im a pixel artist, this is my first post here and Im kind of exploring my own freelancing possibilities in the field.
      Please excuse my english, Im from the chaotic Venezuela, I'm currently living in Colombia, and looking forward to know another beautiful country and culture.
      I have years of experience working professionally on 2d and 3d animated pieces for a wide variety of cases, but I'm a bit tired of rendering times, illumination artifacts, rigging and binding stuff here and there, processor slowness, plugins mismatch, plugin bugs, plugins outdated, licensing updates, corporative projects, that's a good reason, and found a lovely branch on the field that embraced my like a cotton cloud on a shiny day, Pixel Art.
      Then I begun a surprisingly productive journey on Fiverr a few months ago, until a guy got my attention with a interesting project that I'm about to begin. So I had to put my Fiverr status on standby for a while.
      While we take our time to start that project, my mind and hart asks for a taste of the Patreon experience, and so I've been thinking for a while of doing something related to the Cyberpunk dystopia, but as I have no time to do another project, I thought releasing graphic assets packs in some way, so I've been relating this and that and figuring maybe in some developers community I could let know this to begin with.
      There are so many styles and mechanics on the gaming possibilities that I want to release a wide range of assets for general purposes, but inside a unique world theme, so I made my mind over this Cyberpunk topic now, but if things go well, I would need to ask to the audience for a new Theme.
      This is my on my avatar hehe by the way, just a pic to express a bit of my animation skills.
      I established my corner on Patreon already, but I have little knowledge of the platform, so any suggestions are welcome, and you are welcome as well to visit and comment any inquiry related to the topic.
      Check it here: My Patreon
      Thanks for reading. Have a nice day!
      René.
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!