Today Amazon S3 has been down for several hours. A lot of sites depends on this service and have been built around it without taking into consideration it could be down. That’s a big mistake and even respected companies such as 37signals doesn’t properly handle this.

It’s important to handle all external systems as being external i.e. you cannot expect it to be up all time and even though it might have a must better up-time than your own service it makes your service look bad when it *is* down.

In the case of just using the S3 link in an image tag, why no go the extra mile of setting an onerror attribute on the image to do a proper fallback.

Handle external systems as being something your service _could_ live without for a limited amount of time; in case you cannot communicate with it, disable your function depending on this and notify your users about it. That’s the best way to ensure reliability towards your customers.