I don’t see why the DB server cannot see any S3 services and need a NAT or a Gateway. What prohibits the DB server from access S3 services? I thought all objects in Amazon can inherently see any other so long as they have permission.
To answer this question, I will assume that your DB server is an EC2 server that you have deployed in a private network.
AWS services are not linked like this by magic. Like any other servers, if you want to access AWS API, you will need to have access to internet (With a NAT gateway) and then request what you want.
However, AWS, with VPC endpoints, allows you create a easier and more secure way to interact between your AWS services. With VPC endpoints, you won’t need to manage internet access on EC2. Instead, when your EC2 will request something to your S3, the traffic will be routed to the VPC endpoints and then will send into the AWS backbone.
I hoped it answered your question