I am looking to build a single tenant application that will have an api endpoint of
api.customername.mydomain.com then I would like there to also be
app.customername.mydomain.com that is for the UI (Vue.js).
Normally when I am working with a multi-tenant application I can just host the UI on S3 and point a DNS record to it, simple. However I am wanting to have a single S3 bucket that I can point DNS to allow me to have the url structure above.
My ideal setup woudld be something like ...
user => app.customername.mydomain.com => route53 => cloudfront => my-single-bucket
Where I am not sure is how to handle the multiple domain names as well as to make sure that only approved domain names - ie my customers only - can query the cloudfront/s3 bucket and get resources.
Idea is I don't want to have a bucket for each customer and have to pay for increased costs once I scale this idea.
My api will be hosted on a EKS/Kubernetes cluster that is using a nginx ingress controller with multiple ingress resources to direct traffic to the proper namespace/customer. So that part is solved just need to figure out the UI.