Reputation: 4584
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?
Upvotes: 0
Views: 54
Reputation: 7746
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
Upvotes: 0