In summary, it was a very positive experience from start to finish. The interviews were setup quickly and professionally, the interviewers were friendly, and the overall process was well streamlined. However, the interviews were anything but a cakewalk. You had better know your data structures well, and preferably have lots of prior experience working with clustered and multitiered systems. Even though they didn't give me an offer, I'm happy with the experience.
The process started with a recruiter with Amazon contacting me via e-mail. She setup a phone interview within the week and got things rolling. The phone interview covered two things: coding challenges and a casual interview. I was asked two questions a little more difficult than a FizzBuzz question, and asked to write code to solve it in the language of my choice. The interviewer was more interested in measuring thought process than he was correct working code. The casual interview was the same: it was designed so that he could understand how compatible I would be working for the company, and I would get a better understanding of the companies culture.
After the interview, the recruiter contacted me within the week and setup an in-person interview at their company. This included Amazon covering a plane ticket, hotel, and travel costs. This second interview involved five separate one-on-one interviews which lasted the whole day. Here is where the real test is: Each interview will give you a unique coding challenge to solve. These are far more difficult and involved than the phone interview questions. It's your job to understand the problem, design a solution, and code it up. You had better understand your data structures and be comfortable using them on-the-fly. I won't divulge specifically what the questions were, but they ranged from esoteric let's-design-an-elevator questions, to more real world "This is a technical challenge we're having with message passing between these servers, how would you solve it?". The best way to study is to practice solving problems (google them, there are lots out there!). Again, the language you use isn't as important as the process you develop.
On the whole, it was a good interview. I imagine I didn't get an offer from simple lack of experience (I graduated college not too long ago). Their interview process is streamlined and efficient, and they were willing to fly me out even though I live in a different state. Working conditions there seemed somewhat rigorous, but Amazon expects a lot from their employees. Good luck!