Transporting Game-Day Data With AWS Snowball

Transporting Game-Day Data With AWS Snowball

Our games are going to have around 15 cameras rolling and naturally, we need to archive all of the footage. Traditionally, this may happen in a large truck at the stadium. At our games, we're funneling video archives into a briefcase-sized box of hard drives called a "Snowball".

Before the Game

Before each game, Amazon will deliver two or more Snowballs to the stadium. We're using the Snowball "Edge":

SnowballEdgeAppliance

The Snowball Edge weighs just under 50 pounds, and is fairly easy for one person to carry around. The front flap opens up to reveal an integrated Amazon Fire tablet, the rear flap opens up to reveal the Snowball's physical ports, and the top flap opens up to reveal a small compartment that contains the Snowball's power cable. It has a few high speed network interfaces, ~70-80 usable terabytes of storage space, and some compute capacity that we can use for in-stadium services.

Once received at the stadium, the crew will connect it to the network, "unlock" it using credentials provided by Amazon, and set up all of our software.

During the Game

During the game, we feed as much data as possible into the Snowballs. This includes all of our video, our stats, and whatever other data we collect during the game.

After the Game

When the game is over, each Snowball is simply powered off and mailed back to Amazon. Within a few days, the data that we had placed on the Snowballs is made available in Amazon's cloud storage services.

Notes on the Snowball Edge

In exploring the Snowball Edge, we've made several discoveries that weren't covered in the documentation (or were maybe just a bit obscure). For the sake of anyone that may be interested in using one, here are some of our notes:

  • After plugging the Snowball in and turning it on, you may see the word "FIRE" on the screen in big orange-red letters. Don't panic! It's just the Amazon Fire wordmark. 🔥
  • Snowballs are extremely loud. Much louder than your typical desktop computer.
  • There's a large gap around the front-facing display that's used for airflow. Closing the flap on the front while the Snowball is running will block this airflow and tends to result in the Snowball turning itself off.
  • Snowballs do not remember their connection settings after being powered off.
  • To turn off the Snowball, you just press the power button briefly. Nothing will happen immediately, but 10 seconds later or so, it'll turn off. You do not have to hold the button.
  • The Snowball's connection quality / reliability varies greatly from switch to switch.
  • If you have multiple Snowballs, it may be hard to identify which is which.
    • If the Snowball has never been turned on, you can use the tracking number on the e-ink display to identify them. This tracking number is also available via the AWS API for each Snowball. If the Snowball has been turned on, a different tracking number will be presented on the e-ink display once turned off again, but you can typically still find the original tracking number on a sticker somewhere.
    • If you attempt an HTTPS connection to a locked Snowball, the certificate it provides includes the Snowball's job id.
  • The Snowball's SSL certificates change every time the device is powered on. So clients connecting using HTTPS will need to get the new certificates each time.
  • The Snowball's access key id and secret never change, even after being rebooted.
  • The Snowball's metadata service is very limited and the service's index listings are not always accurate. For example, /latest/meta-data/ does not list "public-ipv4" as being available. However, /latest/meta-data/public-ipv4 does in fact work for instances with public IP addresses.
  • The documentation doesn't list it as available, but the EC2 describe-addresses CLI command does work.
  • The AWS CLI requires a region for EC2 operations. Any region, real or fake, works (e.g. "snowball").
  • The table at Supported Instance Metadata and User Data indicates that /public-keys/0/openssh-key is available if supplied at launch time. We don't believe it's possible to supply a public key at launch time.
  • EC2 instances that were running when the Snowball is powered off are put into the "stopped" state when the Snowball powers back on.
  • The Snowball's display may say "No available service." in the compute tab, despite the EC2 service being active and fully functioning.
Transporting Game-Day Data With AWS Snowball
Share this