diff --git a/acquia_search/acquia_search.module b/acquia_search/acquia_search.module
index 74c65e9..f568234 100644
--- a/acquia_search/acquia_search.module
+++ b/acquia_search/acquia_search.module
@@ -19,16 +19,28 @@ function acquia_search_get_environment($conf = array()) {
     $identifier = acquia_agent_settings('acquia_identifier');
     $subscription = acquia_agent_settings('acquia_subscription_data');
   }
+  $search_host = variable_get('acquia_search_host', 'search.acquia.com');
+  // @todo rework this logic once we have AH_SERVER_REGION
+  $legacy_internal = (strpos($search_host, 'internal.') === 0);
   // Adding the subscription specific colony to the heartbeat data
   if (!empty($subscription['heartbeat_data']['search_service_colony'])) {
-    $search_base_url = 'http://' . $subscription['heartbeat_data']['search_service_colony'];
+    $search_host = $subscription['heartbeat_data']['search_service_colony'];
+    if ($legacy_internal) {
+      $search_host = 'internal.' . $search_host;
+    }
   }
-  else {
-    $search_base_url = variable_get('acquia_search_base_url', 'http://search.acquia.com');
+  // Check if we are on Acquia Cloud hosting. @see NN-2503
+  if (!empty($_ENV['AH_SITE_ENVIRONMENT']) && !empty($_ENV['AH_SERVER_REGION'])) {
+    if ($_ENV['AH_SERVER_REGION'] == 'us-east-1' && $search_host == 'search.acquia.com') {
+      $search_host = 'internal.search.acquia.com';
+    }
+    elseif (strpos($search_host, 'search-' . $_ENV['AH_SERVER_REGION']) === 0) {
+      $search_host = 'internal.' . $search_host;
+    }
   }
+
   $environment = array(
-    // @todo - server URL may depend on region info.
-    'url' => $search_base_url . variable_get('acquia_search_path', '/solr/'. $identifier),
+    'url' => 'http://' . $search_host . variable_get('acquia_search_path', '/solr/'. $identifier),
     'service_class' => 'AcquiaSearchService',
   );
   return $environment;
