Elastic Load Balancer (ELB) and Route 53 in AWS
Both Route53 and ELB are used to distribute the network traffic. These AWS services appear similar but there are minor differences between them.
ELB distributes traffic among Multiple Availability Zone but not to multiple Regions. Route53 can distribute traffic among multiple Regions. In short, ELBs are intended to load balance across EC2 instances in a single region whereas DNS load-balancing (Route53) is intended to help balance traffic across regions.
Both Route53 and ELB perform health check and route traffic to only healthy resources. Route53 weighted routing has health checks and removes unhealthy targets from its list. However, DNS is cached so unhealthy targets will still be in the visitors cache for some time. On the other hand, ELB is not cached and will remove unhealthy targets from the target group immediately.
Use both Route53 and ELB: Route53 provides integration with ELB. You can use both Route53 and ELB in your AWS infrastructure. If you have AWS resources in multiple regions, you can use Route53 to balance the load among those regions. Inside the region, you can use ELB to load balance among the instances running in various Availability Zones.
In addition to what @thomasVdBerge has answered (which is well explained), I would like to add that ELB has an advantage when it comes to routing rules such as routing based on path and query. Also, it has a possibility to send a fixed response for specific rules.