I have my application code which handles routing and the restful API, written in golang, however all my client side code is written in Vue and I wanted to isolate the two so I did not have to deploy the entire container when I modified a div. I looked into hosting all my static content on a CDN however its a bit hard to dynamically reference the hash
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Test</title>
<link href=/static/css/app.c6d9c9fc12c1dbaee77703a4dd731a8b.css rel=stylesheet>
</head>
<body>
<div id=app>
</div>
<script type=text/javascript src=/static/js/manifest.c40d98f512f01d44a02f.js>
</script>
<script type=text/javascript src=/static/js/vendor.94202f7575960a15f341.js>
</script>
<script type=text/javascript src=/static/js/app.7a2bba27be158abd2c91.js>
</script>
</body>
</html>
I have thought of dynamically pulling from S3 front end, however, this could be costly even if I cache it. Is there any way to tie AWS EB git hooks and pulling onto the appropriate docker containers?
What I ended up doing was using cloudfront, pointing my www.website.com
to the cloudfront site, set up ssl so now my front end deployment is just pushing to s3 essentially.
Then I have my api running on elastic beanstalk and also have ssl set up, so now if I want to hit the api i forward any api.website.com
to the name of the server. I also setup ssl so everything is encrypted.
I am also versioning my api like so
api.website.com/v1/<endpoint>
Deployments are a breeze now!