2014-04-26

Broadcasting this Weekend

I'll be actively broadcasting for large portions of the day this weekend, including something new for me, recorded voice segments. 

I'll be recording introductions to special short playlists, such as the Ryan Clark Collabs playlist that I played within the last hour. 

Please give me feedback on the songs I'm playing using the Thumbs Up feature on Grooveshark, and feel free to leave comments here, in the broadcast chat, on twitter, facebook, or even on my Grooveshark profile.  There are plenty of ways to follow what I'm up to with my broadcast.

Thanks for listening!

2014-04-24

Now Broadcasting from Amazon EC2 Instance

Unfortunately all of the below is impossible due to the IO requirements of running the full Grooveshark client in a browser on the EC2 instance.  This quickly exceeds the Free Tier.

Hopefully Grooveshark will allow broadcasting without forcing you to listen to the stream from the broadcast location.  Until then, it will cost money to broadcast from a stable location such as EC2.

Well, due to a combination of several factors, I discontinued my grooveshark broadcast for several months, shortly after trying to make things work together.

One of the largest factors in discontinuing my broadcast was my own internet connection.  The connection would drop periodically, and I ran over my monthly caps two months in a row while broadcasting.

The solution I am trying is to take advantage of the Free Tier usage for Amazon Web Services.  I've set up a Windows 2008 Server on a t1.micro instance to run the broadcast from.  I'm going to try to detail out the steps that I took to make this a reality so that hopefully someone else can benefit from what I learned.

The first step, which I had actually done months ago was to sign up for the free 12 months of AWS that Amazon offers.  You can look at the details over at their pricing page. There is quite a bit of documentation on how to make everything work from AWS, but you should probably read the Windows Server basics.  You will definitely want to follow the AWS security suggestions to make sure you control access to your new servers.

After setting up my account, I created the key pair needed to securely access instances.  This will be needed immediately after launching your Windows 2008 Server. The AWS getting started documentation suggests creating the key after you launch, but I did it before. 

Next, I found an appropriate AMI by searching for what seemed to be the lightest weight Windows instance available for the Free Tier.  This is step 1 of the Instance Launch wizard. (You'll want to pick a region appropriate for the access you need. If you go beyond the free tier, the region will potentially impact pricing)  I selected the Windows 2008 Server R2 instance, but if I have the chance to experiment later, I might try out the 32 bit Windows 2003 R2 instance to see if it handles the broadcast with less lag and skipping.

After selecting an AMI, I jumped directly to step 4 in the wizard, which is Add Storage.  Normally the defaults are just fine, but if you decide like I did to also run a free Linux instance and not rack up billing, you'll want to halve the disk size to 15 GB so you can run 15 GB on both servers and not go over the 30 GB monthly free limit. Unfortunately, avoiding the disk overage is impossible as the minimum disk for Windows 2003 and 2008 servers is 30 GB. (edit on 2014/04/26)

Step 6 of the wizard is where I made my next changes.  The default security rule that it suggests is allowing only RDP traffic in from anywhere.  I change that to be a little paranoid, and only allow RDP traffic from my own home IP address.  You can change the IP address any time you have access to the EC2 Console, and they have a very handy "My IP" option in the source selection.

Now it's time for Step 7 of the wizard, which is to review and launch your instance.  Give it a little bit of time, and it will be up and running!  Immediately after launching it you should be able to go to the instances section of your EC2 Dashboard and see it listed as running.  Give your new instance a click, and then press the Connect button above the list.  Here's where the security key you created comes into play. After you clicked Connect, you should see a Get Password button.  Give it a click and up should come a dialog asking for your security key.  You can browse to the key file you downloaded, and click Decrypt Password.  If you're doing this from a recent version of windows, you should then either be able to press Download Remote Desktop File, or launch mstsc directly.  You can see the public IP address of your new server in the instances list.  Use that to connect.  You'll want to use the Administrator account name, and the password you decrypted.  I had trouble with the password when I used copy and paste in the RDP client.  I strongly recommend you type in the Administrator password when you try to log in.

Assuming you've successfully logged in to your new instance, you will be presented with a mostly empty blue desktop, with details of your instance in the upper right.  You should be excited! You've just launched a free Windows server that you can use for your broadcast!  At this point, I strongly suggest downloading a better browser than Internet Explorer, such as Chrome or Firefox.  I had success with Chrome.  Open up Internet Explorer and battle the ridiculous default security settings.  You'll want to go to the Chrome Download page, or the Firefox Download page.  Grab it and install it.  That'll hopefully be the last time you need to use IE.

After you have a better browser installed, you'll want to get the latest Adobe Flash.  If it has a hard time detecting your browser or OS, just fill out the details.  I made sure to uncheck the McAfee Security Scan "Optional Offer", because that would be a waste of space and CPU on my under powered micro instance.

Now that the browser and flash are installed, you'll want to open up the services list in Start -> Administrative Tools -> Services. Find the Windows Audio service, double click on it, and change it from Manual to Automatic.  Next you'll want to force the service to start now, by clicking Start in the same dialog, and then OK.  This will prevent the Grooveshark client from skipping every song because it fails to play.  It's OK that it doesn't actually have a sound card configured.

The next few steps are probably optional, but I strongly suggest running your browser from a non-admin account.  To facilitate that, we'll need to create a new account from the Server Manager, which is on the task bar as a Quick Link, right next to the Start Button.  Local Users and Groups is under Configuration. Click Users, and you should see Administrator and Guest.  Right Click in the empty space below Guest, and choose New User.  Give it a User Name, Full Name, and a password.  You can uncheck "User must change password at next logon" since it's your account.  Then click Create.

You'll want this new user to be able to log in remotely, so you'll need to add them to the Remote Desktop Users group.  I was able to do this by double clicking on the user, then switching to the Member Of tab.  From there I clicked Add..., and next Advanced...  Now I used the Find Now button to bring up a full list of groups, and chose the correct group from the list.  Clicking OK twice completed the group change.

Now it's time to Log Off as the Administrator, and log in as the account you created.  Make sure to change from Administrator to your new username in the Remote Desktop Connection dialog, and key in the correct password.  You should see the desktop looking very similar to when you were logged in before.  Launch the browser, and open up grooveshark.com.  Load up your queue, and start broadcasting! 

In summary, here's the steps I'm suggesting:

  1. Sign up for AWS
  2. Create security keys
  3. Start the Launch Wizard and select Windows 2008 Server R2
  4. Set the storage to 15GB
  5. Restrict access for incoming traffic to your IP and RDP protocol
  6. Launch the instance, decrypt the Administrator password, and connect
  7. Download and install a new browser
  8. Install Flash
  9. Enable Windows Audio
  10. Create new Account
  11. Add Remote Desktop Users group to new user
  12. Log in as new user
  13. Start Broadcasting!