diff --git a/environs/ec2/state.go b/environs/ec2/state.go
index <HASH>..<HASH> 100644
--- a/environs/ec2/state.go
+++ b/environs/ec2/state.go
@@ -74,8 +74,15 @@ func (e *environ) PutFile(file string, r io.Reader, length int64) error {
 	return nil
 }
 
-func (e *environ) GetFile(file string) (io.ReadCloser, error) {
-	return e.bucket().GetReader(file)
+func (e *environ) GetFile(file string) (r io.ReadCloser, err error) {
+	for a := shortAttempt.start(); a.next(); {
+		r, err = e.bucket().GetReader(file)
+		if err, _ := err.(*s3.Error); err != nil && err.StatusCode == 404 {
+			continue
+		}
+		return
+	}
+	return
 }
 
 func (e *environ) RemoveFile(file string) error {
environs/ec2: eventual consistency for GetFile