Let's say I have three regions(eu,us,asia) that host the same app on the respective instance. I will register only one domain name for those same apps.
When a user requests from eu , I like to send data to eu region app server and vice versa.
Eg: user -> request -> example.com (from eu) -> send data to eu app
Eg: user -> request -> example.com (from us) -> send data to us app
Eg: user -> request -> example.com (from asia) -> send data to asia app
Can I set up like that by Load Balancer or something else?
Yes, you can do this with OCI DNS and traffic management via geolocation traffic steering policies. The steering policy should filter or prioritize DNS answers based on a query's continent geokey.
Example of a POST /steeringPolicies request body using the ROUTE_BY_GEO template:
{ "compartmentId": "ocid1...", "displayName": "Geolocations mapped to answer pools", "ttl": 30, "healthCheckMonitorId": "ocid1...", "template": "ROUTE_BY_GEO", "answers": [ { "name": "US Server 1", "rtype": "A", "rdata": "192.168.0.2", "pool": "US" }, { "name": "US Server 2", "rtype": "A", "rdata": "192.168.0.3", "pool": "US" }, { "name": "EU Server 1", "rtype": "A", "rdata": "192.168.0.4", "pool": "EU" }, { "name": "EU Server 2", "rtype": "A", "rdata": "192.168.0.5", "pool": "EU" }, { "name": "rest of world 1", "rtype": "A", "rdata": "203.0.113.2", "pool": "Global" }, { "name": "rest of world 2", "rtype": "A", "rdata": "203.0.113.3", "pool": "Global" } ], "rules": [ { "ruleType": "FILTER", "defaultAnswerData": [ { "answerCondition": "answer.isDisabled != true", "shouldKeep": true } ] }, { "ruleType": "HEALTH" }, { "ruleType": "PRIORITY", "cases": [ { "caseCondition": "query.client.geoKey in (geoKey '6255149')", "answerData": [ { "answerCondition": "answer.pool == 'US'", "value": 1 }, { "answerCondition": "answer.pool == 'EU'", "value": 2 }, { "answerCondition": "answer.pool == 'Global'", "value": 3 } ] }, { "caseCondition": "query.client.geokey in (geokey '6255148')", "answerData": [ { "answerCondition": "answer.pool == 'EU'", "value": 1 }, { "answerCondition": "answer.pool == 'US'", "value": 2 }, { "answerCondition": "answer.pool == 'Global'", "value": 3 } ] }, { "answerData": [ { "answerCondition": "answer.pool == 'Global'", "value": 1 }, { "answerCondition": "answer.pool == 'US'", "value": 2 }, { "answerCondition": "answer.pool == 'EU'", "value": 3 } ] } ] }, { "ruleType": "LIMIT", "defaultCount": 1 } ] }
-- Traffic Management Steering Policies API Guide, Create Steering Policies Using Templates