I'm wrinting a PHP API that serves mobile apps, hosted in the AWS. This app is image based, like Instagram. All the images are uploaded in a AWS Bucket and requested using a GET url, for example http://my-bucket.s3.amazonaws.com/image-name.extension. My question is: what is the best way to serve those images? With AWS Bucket or CloudFront?

"...replicate in servers across the world..." Not exactly. Cloudfront is a pull-through cache with independent globally-distributed nodes. There is no active replication of content. Still, it's a logical choice for the fastest global response times, at least on popular downloads.
– Michael - sqlbotNov 4 '14 at 22:52