Using @rozhok on a related github issue, I now have a working solution. If someone is facing the same problem, here is what I did:
application.yml
eureka: datacenter: cloud client: eurekaServerDNSName: your.dns.name eurekaServerPort: 8761 eurekaServerURLContext: eureka region: eu-west-1 registerWithEureka: true fetchRegistry: true useDnsForFetchingServiceUrls: true server: waitTimeInMsWhenSyncEmpty: 0 enableSelfPreservation: true
EurekaServer
@SpringBootApplication @EnableEurekaServer @EnableDiscoveryClient public class EurekaServer { @Value("${server.port:8761}") private int port; public static void main(String[] args) { SpringApplication.run(EurekaServer.class, args); } @Bean @Autowired public EurekaInstanceConfigBean eurekaInstanceConfigBean(InetUtils inetUtils) { EurekaInstanceConfigBean config = new EurekaInstanceConfigBean(inetUtils); AmazonInfo info = AmazonInfo.Builder.newBuilder().autoBuild("eureka");
With this configuration, each eureka server sees only the other servers as available replicas:

source share