Agree with what you said (I haven't gone through the code; just commenting on 
your proposal)

A common use case for private subnets in a VPC is to create layered 
applications, where each VM belongs to a layer and can be on a different 
subnet. Not all VMs should be reachable from the outside but traffic between 
them should be properly routed, and VMs with private IPs that should connect to 
the Internet (OS package updates, etc), should be able to do so. In AWS, this 
is achieved by using [NAT 
Gateways](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html),
 that act as the gateway for private networks, but that limits a bit the 
topology of your network: VMs in the "public" network must have an elastic IP, 
since the traffic will be routed to the Internet Gateway (without being NATed), 
and VMs in the "internal" subnets shouldn't have an elastic IP, since the 
traffic will be routed to the NAT gateway by default.

I'm just commenting this to illustrate a common use case we should try to cover 
when implementing these APIs. Having the method to set the "auto create 
publicIP" for a certain subnet would definitely help to model the "public" 
networks, and we should also include a `NatGatewayApi` to the list of APIs to 
create. The `RouteTableApi` should allow us to create the table needed to model 
the public/external routing, as in the link above.

I'll review the code in a while. Many thanks for starting this @geomacy!

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1097#issuecomment-300240481

Reply via email to