Q1.)While creating a record using failover-policy in route53-hosted-zone :
What is the difference between "evaluate-target-health" and "associate-health-check" ?
Q2.)Does route53 perform health check for EACH dns-request it receives ?
Answer for your 1st question is already given by John Hanley. The answer for your 2nd question is NO.
According to AWS Documentation,
"If you associated a health check with a non-alias record, Route 53 checks the current status of the health check.
Route 53 periodically checks the health of the endpoint that is specified in a health check; it doesn't perform the health check when the DNS query arrives."
I hope that answers your question :)
Both basically do the same thing. The key difference is that Evaluate Target Health is used with ALIAS records, e.g. a load balancer DNS endpoint and Associate with Health Check is used with A records, e.g. a web server's static IP address.
Evaluate Target Health does not use a health check that you create. Associate with Health Check uses a health check that you create.
Another way to compare the differences. Use Evaluate Target Health for an AWS service that manages its health status. Use Associate Health check for a service that you control and determine its health status thru your own health check.