7 ms·
You know what's still stupid? That if you have an S3 bucket in the same region as your VPC that you will get billed on your NAT Gateway to send data out to the
by SOLAR_FIELDS 1y ago
You know what's still stupid? That if you have an S3 bucket in the same region as your VPC that you will get billed on your NAT Gateway to send data out to the public internet and right back in to the same datacenter. There is simply no reason to not default that behavior to opt out vs opt in (via a VPC endpoint) beyond AWS profiting off of people's lack of knowledge in this realm. The amount of people who would want the current opt-in behavior is... if not zero, infinitesimally small.
- deleted 1y ago[deleted]
- afandian 1y agoHaving experienced the joy of setting up VPC, subnets and PrivateLink endpoints the whole thing just seems absurd. They spent the effort of branding private VPC endpoints "PrivateLink". Maybe it took some engineering effort on their part, but it should be the default out of the box, and an entirely unremarkable feature. In fact, I think if you have private subnets, the only way to use S3 etc is Private Link (correct me if I'm wrong). It's just baffling.
- time0ut 1y agoYou can provision gateway endpoints for S3 and DynamoDB. They are free and considered best practice. They are opt-in though, but easy to enable.
- mdaniel 1y agoAnd ECR, which I would guess impacts more folks than DynamoDB https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html#ecr-setting-up-vpc-create https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-e... And, as as added benefit, they distinguish between "just pull" and "pull and push" which is nice
- afandian 1y agoTrue, I forgot that. But depending on services you still have to have some Gateway and some Interface endpoints.
- tux3 1y agoThat is price segmentation. People who are price insensitive will not invest the time to fix it People who are probably shouldn't be on aws - but they usually have to for unrelated reasons, and they will work to reduce their bill.
- nbngeorcjhe 1y ago> People who are price insensitive will not invest the time to fix it This just sounds like a polite way of saying "we're taking peoples' money in exchange for nothing of value, and we can get away with it because they don't know any better".
- amenghra 1y agoPrice segmentation happens all the time in pretty much every industry.
- hinkley 1y agoThere’s an entire Pandora’s box of shitty things that happen in pretty much every industry. I don’t think you want to use that defense.
- happytoexplain 1y agoMust be un-criticizable then?
- robertlagrant 1y agoIt's more like: we made loads of stuff super cheap but here's where we make some money because it scales with use.
- happytoexplain 1y ago>People who are price insensitive will not invest the time to fix it Hideous.
- dmart 1y agoVPC endpoints in general should be free and enabled by default. That you need to pay extra to reach AWS' own API endpoints from your VPC feels egregious.
- otterley 1y agoGateway endpoints are free. Network endpoints (which are basically AWS-managed ENIs that can tunnel through VPC boundaries) are not free. S3 can use either, and we recommend establishing VPC Gateway endpoints by default whenever you need S3 access. (Disclaimer: I work for AWS, opinions are my own.)
- Hikikomori 1y agoWhy don't you have gateway endpoints for all your APIs?
- count 1y agoThe service teams don’t talk to each other…
- mdaniel 1y agoI think that is by design https://konghq.com/blog/enterprise/api-mandate https://konghq.com/blog/enterprise/api-mandate
- donavanm 1y agoThe original private endpoints implementation required meaningful work from the service teams (ec2 networking, s3, & ddb). It also changed how the "front end" API servers handled requests and how their infrastructure was deployed (at the time?). The newer LB/ENI style privatelink abstracts away _most_ of that "per service" implementation effort at the cost of more per-request/connection work fromthe virtual network. Hence why theres more support from other services, and it includes a cost.
- kbolino 1y agoThe problem is that VPC endpoints aren't free. They should be, of course, at least when the destination is an AWS service in the same region. [edit: I'm speaking about interface endpoints, but S3 and DynamoDB can use gateway endpoints, which are free to the same region]
- paulddraper 1y agoWell yeah that's the point....why route through the public internet.
- kbolino 1y agoI doubt the traffic ever actually leaves AWS. Assuming it does make it all the way out to their edge routers, the destination ASN will still be one of their own. Not that the pricing will reflect this, of course. The other problem with (interface) VPC endpoints is that they eat up IP addresses. Every service/region permutation needs a separate IP address drawn from your subnets. Immaterial if you're using IPv6, but can be quite limiting if you're using IPv4.
- immibis 1y agoSounds like a good reason to use IPv6.
- kbolino 1y agoThere were still a couple of services/features that choked on IPv6 last time I looked (1.5-2 years ago) but it works with most things and they do seem to be making progress on the others.
- paulddraper 1y agoI don’t know any software that doesn’t work with IPv6 as of 2021. Just some internet services that haven’t upgraded. (But fixed by NAT.)
- otterley 1y agoThis is the intended use case for S3 VPC Gateway Endpoints, which are free of charge. https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpo... (Disclaimer: I work for AWS, opinions are my own.)
- SOLAR_FIELDS 1y agoThe problem is that the default behavior for this is opt-in, rather than opt-out. No one prefers opt-in. So why is it opt-in?
- otterley 1y agoAWS VPCs are secure by default, which means no traffic traverses their boundaries unless you intentionally enable it.
- SOLAR_FIELDS 1y ago"The door is locked, so instead of suggesting to the end user that they should unlock the door with this key that we know how to give the end user deterministically, we instead tell them to drive across town and back on our toll roads and collect money from it" This has been a common gotcha for over a decade now: https://www.lastweekinaws.com/blog/the-aws-managed-nat-gateway-is-unpleasant-and-not-recommended/ https://www.lastweekinaws.com/blog/the-aws-managed-nat-gatew...
- otterley 1y agoSpeaking solely on my own behalf: I don't know a single person at AWS (and I know a lot of them) who wants to mislead customers into spending more money than they need to. I remember a time before Gateway Endpoints existed, and customers (including me at the time) were spending tons of money passing traffic through pricey NAT Gateways to S3. S3 Gateway Endpoints saved them money.
- 1y ago
- solatic 1y agoIt's a design that is secure by default. If you have no NAT gateway and no VPC Gateway Endpoint for S3 (and no other means of Internet egress) then workloads cannot access S3. Networking should be closed by default, and it is. If the user sets up things they don't understand (like NAT gateways), that's on them. Managed NAT gateways are not the only option for Internet egress and users are responsible for the networks they build on top of AWS's primitives (and yes, it is indeed important to remember that they are primitives, this is an IaaS, not a PaaS).
- bilalq 1y agoFine for when you have no NAT gateway and have a subnet with truly no egress allowed. But if you're adding a NAT gateway, it's crazy that you need to setup the gateway endpoint for S3/DDB separately. And even crazier that you have to pay for private links per AWS service endpoint.
- solatic 1y agoThere's very real differences between NAT gateways and VPC Gateway Endpoints. NAT gateways are not purely hands-off, you can attach additional IP addresses to NAT gateways to help them scale to supporting more instances behind the NAT gateway, which is a fundamental part of how NAT gateways work in network architectures, because of the limit on the number of ports that can be opened through a single IP address. When you use a VPC Gateway Endpoint then it doesn't use up ports or IP addresses attached to a NAT gateway at all. And what about metering? If you pay per GB for traffic passing through the NAT gateway, but I guess not for traffic to an implicit built-in S3 gateway, so do you expect AWS to show you different meters for billed and not-billed traffic, but performance still depends on the sum total of the traffic (S3 and Internet egress) passing through it? How is that not confusing? It's also besides the point that not all NAT gateways are used for Internet egress, indeed there are many enterprise networks where there are nested layers of private networks where NAT gateways help deal with overlapping private IP CIDR ranges. In such cases, having some kind of implicit built-in S3 gateway violates assumptions about how network traffic is controlled and routed, since the assumption is for the traffic to be completely private. So even if it was supported, it would need to be disabled by default (for secure defaults), and you're right back at the equivalent situation you have today, where the VPC Gateway Endpoint is a separate resource to be configured. Not to mention that VPC Gateway Endpoints allow you to define policy on the gateway describing what may pass through, e.g. permitting read-only traffic through the endpoint but not writes. Not sure how you expect that to work with NAT gateways. This is something that AWS and Azure have very similar implementatoons for that work really well, whereas GCP only permits configuring such controls at the Organization level (!) They are just completely different networking tools for completely different purposes. I expect closed-by-default secure defaults. I expect AWS to expose the power of different networking implements to me because these are low-level building blocks. Because they are low-level building blocks, I expect for there to be footguns and for the user to be held responsible for correct configuration.
- immibis 1y agoA company making revenue is not stupid.
- torginus 1y agoIf you had an ALB inside the VPC that routed the requests to something that lives inside the VPC, which called the AWS PutObject api on the bucket, would that still be the case?