Setup Route 53 to latest docker AWS/ECS stack hostname - amazon-web-services

I'm new to AWS and having a hard time navigating what seems like a basic task. I have a docker-generated AWS configuration for a django app, and want to point my domain to this app.
Specifically I'm using docker compose and have successfully launched a demo app (Django+PostgreSQL if relevant) that's accessible through the docker-generated hostname (<semi-random>.<region>.elb.amazonaws.com), and properly displays to the Django site. However I've noticed that each time I down/up the docker instance, the load balancer hostname seems to be a new randomly generated name (specifically <semi-random> part above). I also have a domain name & nameservers registered in Route 53, but the domain doesn't point anywhere yet.
How can I configure my domain to point to the latest version of my docker-generated web service?

Related

Issues configuring AWS Route 53 for Elastic Beanstalk

I am attempting to use a domain registered with Amazon Route 53 to access an Elastic Beanstalk (nodejs) site. I originally had it working ok, but something broke and I can't for the life of me get it to work again.
In summary, I have:
An Elastic Beanstalk environment that is accessible via its url (i.e. ***.ap-southeast-2.elasticbeanstalk.com)
A domain registered through Amazon Route 53
A hosted zone in Route 53, with a document added with Type=A and routing traffic to the Alias (to my Elastic beanstalk environment)
I have edited the named servers in the registered domain to match that of the hosted zone
When I do a "Test Record" from the Hosted Zone, it returns "DNS response code No Error", and returns the IP address of my Elastic Beanstalk application. But, when i go to the URL I get "The Requested Host you requested is not resolvable."
As mentioned, I originally had it working. I then attempted to set up a redirect from http to https via Cloud Front, and managed to break it. I have subsequently removed all https & cloud front config in attempt to get the basic URL access working again. I suspect my issue is that I deleted my default Hosted Zone created by Amazon when I registered the domain, and I have a setting wrong.
Any ideas?
I never got to the bottom of this. Instead created a new elastic beanstalk environment, then reconfigured the domain and certificate to the new instance.
I have no idea what the difference is as all settings appear to be the same. But it at least gave me a way forward.

How do I point my AWS Elastic Beanstalk flask application to a folder in my domain example.com/app instead of the base example.com?

I have an Elastic Beanstalk app I created which is up and running. I have a domain in Route 53 which currently only has a landing page. I don't want to replace the landing page, instead, I want the app to be accessible at example.com/app. Notice the app route at the end. How do I accomplish this in Route 53?
What I have tried so far:
I managed to point it to the base domain level, that was easy. But that is not what I want, I still need the current site to be the main site and have the EBS app available on /app
I managed to get it working on app.example.com, which again is not what I want
I still cannot figure out how to do this. Any help would be dearly appreciated. I am fairly new to AWS and routing and stuff.
You can't do this from Route53. R53 is DNS, and it does not have any notion of URL paths. Instead you can do this from CouldFront. Specifically, you would have to put a CF distro between your R53 and your EB. When you setup origin and its behaviour for your CF distro you can specify Path Pattern as /app.

Domain name not connecting to node.js express web app

I have an issue, or perhaps an understanding problem with linking my domain with AWS. I will use the xy.ro domain as an example.
I have the xy.ro domain registered with easyhost.com. On AWS I have a node.js express web app.
My xy.ro domain is not working as it does not point to anything.
I tried to create a hosted zone on AWS with the xy.ro domain and tried to create a dataset for this domain but it does not work.
I tried to find step by step instructions also on AWS and other providers but I did not find anything.
Can someone point me into the right direction?
If your domain xy.ro is registered with easyhost.com then it would presumably also be using their DNS hosting service to serve your DNS records.
Creating a public hosted zone in AWS won't affect the DNS resolution unless you can migrate your name servers to use Route 53.
I was not able to see steps from easyhost.com website, however from the AWS side take a look at this documentation.
You should be able to copy the name servers and update within easyhost so that it will use Route 53 as your DNS provider instead.

What should I set for origin domain name when using Cloudfront, EB and Route 53?

I'm trying to set up CloudFront but getting stuck on the first field origin domain name
Currently Im using Elastic Beanstalk to deploy my webservice as an Application, and the EB url is mapped to a Route 53 domain, the customer accesses the webservice via the Route 53 domain.
With EB one Application can have multiple environments, and each environment has a load-balancer. I usually have just one environment but when I want to deploy a new version of the application I create a new environment. Then once that is ready I use Swap URLs so that the new environment is the one pointed to my the Route53 domain, and then I delete the old environment. This approach ensures no down-time.
Now with CloudFront the list of values it provides are my S3 containers (not what I want) and the Load-Balancer for any currently running environments. Bu this is not what I want either because if I point it at a load-balancer when I have a new version the environment that load-balancer works for will be terminated
Is it not possible to set it to the Application/Route 53 Domain name so I can deploy new version of my application without breaking anything on CloudFront.
Turns out that although it is not listed I can indeed just set it the CNAME Ive set in Route53, and it works

Should I use Elastic Beanstalk Dns name directly from application

I am deploying a webservice (rather a website) with AWS Elastic Beanstalk, this is then used by client application, and I shall proably make the webserver servers name configurable in the application in case it has to be moved.
Should I just refer to the EB Dns name (i.e companyname#elasticbeanstalk.com) from my application or am I meant to reference it indirectly through some other name, such as a domain I could own like webservice-mycompany.com
You can use the elastic-beanstalk IP, but this could change if you wanted to launch a new environment for some reason. But if you can change your app and update this, then this dns is fine.
Or you could us route 53 to create a DNS to provide to your app, and you can set it up to resolve to your elasticbeanstalk dns. This way you would never have to change your application and can control everything from the console.
http://aws.amazon.com/route53/