Configure third party DNS to Static Public Ip attached to AWS ElasticBeanStalk - amazon-web-services

First of all, I am a beginner in this fields, so apologies If my questions is stupid or just too easy.
What do we want to configure? Well, we have a partnership with a website wwww.partner.com.
We have an application running on elastic beanstalk with an application load balancer. And we need to provide to our partner a STATIC IP for the to link wwww.partner.com/ourcarpet to it.
To sum up, we want this architecture:
DNS - www.partner.com/ourcarpet -------> OUR STATIC IP IN AWS
STATIC IP IN AWS -----> NLB --> EB
I created a Network Load Balancer, and attract to it a STATIC IP. What I do not know is how to access this IP through HTTPS.
Am I using the correct approach? Can I link my Statis IP to a CNAME or A in a DNS outside of AWS?

The "/ourcarpet" part of the URL is not visible for DNS.
The IP and other records can be set only for subdomain/domain names.
In that case www.partner.com/ourcarpet should be redirected to ourcarpet.partner.com (or another domain you control), so you can set the required IP.

Related

How to prevent accesing AWS beanstalk application through IP address?

I have a docker application hosted on AWS beanstalk, and I have configured such application with R53 to access it via a domain name, let's say example.com. Also that application has an IP address for example 50.50.50.50.
What I need is that when a user types in the browser http://50.50.50.50, it gets redirected to http://example.com, how I can achieve that in AWS?
Thanks
The response here How to block accessing the beanstalk web app via ip address helped me to redirect an ip address to a domain name, using ELB rules.
It's not quite clear what you mean by "preventing access through IP".
If the IP is public, you can't do much. That's just how TCP/IP works.
However, if your intention is to keep the original name generated by Beanstalk hidden from public, then you can deploy Beanstalk application in a VPC with its load balancer being "internal". That prevents the load balancer from having a public IP. You can then have a public load balancer with a public IP to which the domain name gets resolved. You still have a public IP for the external load balancer, but there is no way to get to the load balancer created and managed by Beanstalk.
If you have an internal DNS zone in AWS that you'd like to use, then you won't need the externally reachable (from internet) load balancer. This way your application is not reachable from internet.

Moving from digitalocean to aws

I am carrying a web site from digital ocean to aws. evertyhing was good until DNS update.
I want to update 'A' record on digital ocean to point to my aws elastic load balancer.
But A record only accepts IP address and AWS elastic load balancer ip address is not static. but hostname is.
Another option is to carry nameserver from digital ocean to AWS directly but given name server update time is undeterministic i don't want this. this is a live website and during this time new data will be produced on the old web site.
Any recommendations?
Based on the comments.
Since DigitalOcean does not support alias records, you can't use CNAME for naked domains.
But, you could get static public IP for your EB, if you either change your load balanced environment to single instance. Each single instance environment has static IP through elastic IP. Other way is to change your application load balancer to network load balancer, if possible. NLB has public static IPs, which you could use for the A record.

How to run a ec2 instance as subdomain in siteground?

I have a Wordpress website with a GoDaddy domain being hosted on SiteGround using the nameservers. I am looking to switch to a React App which is currently running on an EC2 instance in AWS. I want to run the ec2 instance (aka the react app) on a subdomain like beta.domain.com inside SiteGround while still keeping the Wordpress website since its a part of my business. I tried creating a subdomain in SiteGround and then pointed it to my EC2 instance elastic IP (the public ipv4) using an A record but it is showing "This site can't be reached" error once I go to beta.domain.com.
What am I doing wrong? How do I run the EC2 instance in a subdomain hosted in SiteGround?
EDIT
Thank you, everyone, for your help. The problem was the SSL certificate for the HTTPS. The website wasn't coming on due to the HTTPS setup on the Nginx on the EC2 instance. After I put in the details of the certificate it runs properly with just the A record.
Any public address in the AWS environment are never accessible from outside the security groups. Even if you try to ssh from your own machine and if it is not in the inbound rule of the security group of your EC2 instance. I feel there are 3 ways out here.
1.) Adding an all traffic rule in your EC2 Security group inbound rule. This is not recommended as it opens all traffic to your machine.(additional tip: set up secure ssh key with the machine)
2.) Use an ELB to route traffic to your EC2 instance. ELB will provide you with a DNS record which can be used an a CNAME in godaddy(Point 3 shows how to map it as a A record in GoDaddy)
3.) Using Route 53 Hosted Zones - You could delegate your DNS to be managed by AWS Route 53. This way all traffic will be routed to your machine by AWS R53.
Another tip: Elastic IP can also be used which are like permanent static IP Addresses accessible from across internet. This provided a secure communication method to your instances.
Let me know what could be the favorable solution for you. I could help you out further
If you have registered your domain name with Goaddy, you can create subdomain in Godaddy as CNAME and point it to static IP address of your ec2 instance. Here is a link to guide you.
Also your main domain name will point to your Wordpress website on SiteGround.
Now that you have EC2 instance, you can also run a wordpress site on that instance if you like.

Access AWS EC2 Webserver over own Domain via HTTPS and Load Balancer

I have a webserver running on a AWS EC2 instance (has an elastic IP) that can be accessed over my own domain (www.xy.ch) via http. Now, I need to access the webserver via https and so I created a certificate for my domain (www.xy.ch), uploaded it to AWS Certificate Manager and added the certificate to a Load Balancer connected with my EC2 instance.
This seems to work so far. When I target the DNS name of my Load Balancer (xyz.eu-central-1.elb.amazonaws.com) with a https in front, I can access my webserver. But the certificate is flagged invalid, because its common subject name (my domain name: www.xy.ch) does not match the input (DNS name of Load Balancer: xyz.eu-central-1.elb.amazonaws.com).
But now, I have no idea how to proceed so that I can access my webserver with https over my own domain (www.xy.ch). It does not work at the moment, so I obviously miss a configuration step, but I really don't understand what.
How can I connect my own domain with the Load Balancer's DNS?
I did some research and tried to understand the answers of similar cases (e.g. Assigning Static IP Address to AWS Load Balancer), but could not find a solution for my case.
The solution was indeed to delete all DNS entries pointing to the IP of the webserver and redirecting everything DNS wise over the Load Balancer. Credits to Mark B!

Implement Load Balancer on AWS on existed server with Elastic IP

I'm a backend developer who is a very beginner in Server Administrative here.
I have ec2 instance sitting on AWS with Elastic IP assigned to it.
There are several domains point to this Elastic IP (from my clients).
The server then, response with appropriate content.
At this point, I would like to start using load balance as the number of traffics is increasing.
The question is
Would I be able to apply Load Balancer while still not changing IP Address (Elastic IP) that domains pointing to?
I would be a bit difficult to get to all clients and ask them to update the DNS record point to new IP Address.
So having the same IP would be an ideal solution for me.
It will be a big help if you guys could shed light for me on this.
No. The ELB has a DNS entry that you can setup on your DNS provider or on Route 53. This DNS is the only external link to the ELB and ELBs don't have elastic IPs. Also, keep in mind that the DNS doesn't change on your ELB but the IP can change at discretion of Amazon.
Also, Amazon uses it's own internal mechanism to access instances behind load balancer and I'm pretty sure it doesn't use external addresses (most likely internal)
Another alternative is to setup your own HAproxy instance in EC2 and configure it with an Elastic IP, but that's a little bit more work. (Also, you have to monitor it closely as you would have to manage it in case of changes in traffic patterns)
Hope it helps.