Experimental Game Dev Interviews — The First Game Dev Podcast Ever
RSS icon Home icon
  • Using Amazon Web Services To Build Your Online and Mobile Games

    Posted on September 12th, 2010 IndieGamePod No comments

    Jeff, Amazon Web Services Evangelist, discusses how game developers can benefit from EC2, S3, and other services

    You can download the podcast here…
    http://www.indiegamepod.com/podcasts/cc-aws.mp3

    Or listen to it here…


    Show Notes:
    Interviewer: I’m here at the Casual Connect in Seattle, and with me today is a special guest. How about you introduce yourself?

    Jeff: My name is Jeff Barr, and I’m the Amazon Web Services Evangelist.

    Interviewer: So, what is Amazon Web Services about, and how would game developers even use it?

    Jeff: So, AWS is a set of services that we would think of as infrastructure level services, so things like processing, storage, networking, messaging, databases, content distribution and stuff. Each with an individual service name, each with a discreet business model and pricing model that developers can, basically, opt-in to various services and pick and choose any set that they’d like to build their games and their applications.

    Interviewer: OK. So, some of these services might be storage. Some are just computational power or content hosting, stuff like that, like CDN.

    Jeff: Exactly right. So, for example, we have EC2, the elastic compute cloud for processing. We have S3 for storage which is coupled in with cloud front for content distribution. Simple DB and the relational database service for both the no SQL style of storage and then RDS for the relational style database storage.

    Interviewer: So, how would a game developer go about using your service if they wanted to host their whole game on your system?

    Jeff: So, a lot of developers already do host their games on AWS, and there’s a couple of different ways they might go about it. Perhaps, they’re running on a different kind of a hosting environment, and they can generally pick it up and move it, more or less, unchanged.

    You can run standard Linux applications and Windows applications on the cloud, essentially unchanged. Now, you start to adopt a slightly different architectural model, and you can start to build very scalable applications in the cloud where you take advantage of things like an automatic scaling service.

    It measures the load on your servers, and then we’ll add additional servers or remove servers to your mix, based on actual load or a load balancing service that will evenly distribute traffic across the array of automatically scaled servers.

    Interviewer: So, one of the interesting things I want to point out is that in your business model it’s not a month to month thing. It’s an hourly rate that people can charge. Can you talk about that?

    Jeff: Right. I think this really important aspect of the cloud is the model that we call “pay as you go.” So, I think a good analogy would be the utility-based pricing that you probably pay for your cell phone or utilities in your house or your apartment.

    So, after you create your account and you attach your credit card, you make requests for use of the various services of the cloud. When you make those requests, you include an identifier so we know which account to charge for that usage. At any given point, after you use, let’s say, an hour of CPU time or a gigabyte of storage or bandwidth, you can always log into your account. You enter in your password and you can then go to our portal page, and you can see line by line an itemized statement of exactly how much of each service that you’ve used.

    Interviewer: And so, if developers had a spike in traffic and stuff, it’s easy for them to just generate or launch new instances on demand.

    Jeff: That’s right. And so, to me one of the really good advantages of the cloud for gaming is that you build your application in a very scalable way and then, regardless of the amount of traffic, you’re only paying for the amount of infrastructure that you actually need.

    And so, in the beginning when you only have a few users, you use, maybe, only one modest size server and paying a few cents per hour for that server. When you get very popular and you have thousands or tens of thousands or even tens of millions of users which some of our customers do, you can scale up and you can scale from almost nothing up into quite a bit in a matter of just a few minutes.

    Interviewer: What have been some of the surprise cases that you’ve seen game developer or game companies use your cloud services for?

    Jeff: So, the obvious one is really to host the game, and that could range all the way from the simplest case where they’re, perhaps, just hosting the static content, maybe, the various assets and graphics. If it’s a downloadable game, they could host the actual bits of the game itself in the cloud, and then for a game with a server side component, like most social games do, they would run the game in the cloud.

    But then, the next step past that is when developers start to instrument the games, and they start to measure various kinds of metrics. And they want to actually understand in great detail the characteristics and behavior and performance of the user. So, they instrument the game. They start storing a lot of behavioral performance data in the cloud, and then they can also use the cloud as an analytic tool.

    So, they can process vast amounts of data and get a really good understanding on a dynamic basis of who are the users and what are they doing and use that to make informed decisions about where they need to go next.

    Interviewer: This analytic data, is it usually stored then in their own relational database, or will they use something like Simple DB or RDS?

    Jeff: So, to me one of the great benefits of our model is that developers have a lot of choice. We don’t lock them into any of the above. If they’re going with a new application, they can store that in Simple DB, and they don’t have to go and put in a lot of upfront work with designing schemas or tables or anything like that. Simply store data in Simple DB, and it will adapt to the shape of the data.

    If they already have an existing relational model for storing metrics, they can use RDS, and RDS is a hosted version of My SQL that handles all the kind of dirty work behind the scenes. So, a lot of what they’ve already done is going to be very, very applicable.

    Interviewer: So, Simple DB and RDS are kind of like databases of service. Simple DB is more of less a schemaless DB. A database and a RDS is more like My SQL, a hosted My SQL.

    Jeff: That’s right. And so, if you’ve ever had to run a relational database on your own, you know that there’s a lot of dirty work behind the scenes, all the way from finding your hardware and installing and configuring your operating system in your database to making sure you have enough space to arrange for backups and doing backups and recoveries to dealing with failures and failure recovery and so forth. RDS takes all that dirty work and just packages it up into a nice point and click style database as a service.

    Interviewer: Does RDS also handle scaling, or is that something that needs to be built on top of RDS?

    Jeff: It actually does handle that, and it handles two different dimensions. So, the first dimension is that you can choose from any one of five different sizes. They’re basically different amounts of CPU power to run your database. That’s the computational power side of RDS. And it also handles storage scaling.

    So, when you create your first RDS instance, you can create them as small as five gigabytes of storage, and you can go up to one terabyte of storage. If at any point you are getting close to the allocated capacity, you can go to the console. You can enter in a new value, and while that database is running, it will dynamically add additional storage to that database instance.

    Interviewer: Now, what’s also interesting about AWS is that there’s an ecosystem around all of your services. Can you just talk about what are some of the possibilities and things, third party services, that actually can help someone who’s using AWS?

    Jeff: Sure. So, we’re really focused on building the services themselves and making them very, very – I’d think of them as horizontal style services where they’re very, very widely applicable to a number of different use cases.

    So, we have a large number of different partner companies that have built advanced management tools, layering on top of our own services, advanced ways to set up your cloud to measure performance, to configure it, to control it, to have good insights into how it’s working.

    There’s actually so many partners there that I wouldn’t want to slight any one of them by mentioning because if I mention one name, I’ll have to just omit so many others. But we have a great partnering system.

    Interviewer: Sure. Is there anything else then that would be relevant for game developers who are looking to into AWS or set up their own system in the cloud?

    Jeff: I think that if you think of the cloud as your resource provider, it really lets you focus on the unique aspects of what you want to contribute. So, instead of having to worry about datacenters and colas and hosting and power and cooling and bandwidth and servers, all that messy stuff which we often call the muck, you can really focus on the fun part.

    You can say, I want to imagine a really, really cool game. I want to build it. I want to put it out there. I want to fine tune the game and fine tune the business model, and then count on the cloud to be your infrastructure supplier and kind of take it for granted, like, everything that we do is really, really interesting to me and really, really cool and powerful. But you kind of want it to fade into the background and let the developer focus more on the application. And let them succeed and kind of take for granted that the cloud’s going to be there to help them out in the ways that they need to.

    Interviewer: When the cloud paradigm kind of started going, you were concerned about liability. Is that a concern now, and what are the issues? And what are the things that developers need to keep in mind when they’re using cloud services?

    Jeff: So, I think it’s important to point out that the infrastructure we offer here is the same architecture that we use to run our own retail site, which has had extremely good reliability and extremely good performance. We give service oriented agreements or SOAs on the major components in the cloud.

    And there are services themselves that developers build very fault tolerant applications, that either have built-in replication or easy fail over or the ability to start EC2 instances in more than one zone or even multiple regions around the globe to make sure that if there is a temporary issue at any one location, you can automatically route traffic to another location.

    Interviewer: And where can developers get started in just signing up for the service or just using it?

    Jeff: So, we make this as easy to start as possible. And you can go to AWS.Amazon.com. You can create your account. You can log in. You can download documentation, get your developer tokens, and you can get started right away.

    Interviewer: Great. Thank you very much.

    Leave a reply