I saw AWS architecture that IGW is placed in front of ELB (i.e., see page 8 in http://www.slideshare.net/AmazonWebServices/high-availability-application-architectures-in-amazon-vpc-arc202-aws-reinvent-2013); and I also see ELB is placed directly to Internet connection (i.e., see page 14/15 at http://www.slideshare.net/AmazonWebServices/stg305)
What's the use cases for either architecture? or what's the pros and cons for either architecture design?
IGW is implied on the second slides too, because otherwise your VPC won't be connected to the World.
Update: Have just tested: IGW cannot be deleted until you have a route to 0.0.0.0/0 and a LB. It says 'Network vpc-* has some mapped public address(es). Please unmap those public address(es) before detaching the gateway'
After deleting the dependencies I was able to delete the IGW, but when then I re-created the LB it was assigned with internal IP only.
Just as a note, you can create an ELB only within a VPC, it means the LB will be inside it, thus needs a route and gateway to get outside.