Class SavingsCalculator

java.lang.Object
com.eqixiac.equinix.design.value.savings.SavingsCalculator

public final class SavingsCalculator extends Object
Fluent calculator that estimates how much routing cloud egress over an Equinix private interconnect saves versus the public internet.

It compares the modelled monthly cost of egressing a given data volume over the public internet against the same volume over a dedicated interconnect (AWS Direct Connect / Azure ExpressRoute / Google Cloud Interconnect reached via Equinix Fabric), nets off the Equinix interconnect cost, and reports the saving plus break-even points.

Example

SavingsEstimate s = fabric.savingsCalculator()
    .egress(50, DataUnit.TERABYTE)
    .fromCloud(CloudProviderType.AWS).inRegion("us-east-1")
    .viaMetro(MetroCode.DC).bandwidthMbps(10_000)
    .term(Term.MONTH_12)
    .calculate();

System.out.println(s.toMarkdown());

When no RateCard is supplied, the standard layered chain applies - live Equinix Fabric pricing first, then the bundled ReferenceRateCard, which also supplies indicative cloud-egress rates - so the calculator works out of the box. Supply a card (e.g. a CustomRateCard with your own figures) to replace that chain. All outputs are design-time estimates, not quotes.

Cloud-to-cloud comparison

Beta. Declaring a peer cloud with toCloud(...) adds a MulticloudPathComparison to the estimate: the monthly cost of the traffic between the two clouds over the public internet, over Equinix Fabric (two-sided: private egress both ways, two virtual connections, both CSP ports) and over the providers' native multicloud link, plus the sustained rate at which the flat-fee native link and the per-GB Equinix path cost the same. The single-cloud figures on the estimate are computed exactly as without a peer cloud and describe the fromCloud direction only.

SavingsEstimate s = fabric.savingsCalculator()
    .egress(100, DataUnit.TERABYTE)
    .fromCloud(CloudProviderType.AWS).inRegion("us-east-1")
    .toCloud(CloudProviderType.GOOGLE_CLOUD).toRegion("us-east4")
    .viaMetro(MetroCode.DC).bandwidthMbps(10_000)
    .calculate();

s.breakEvenSustainedMbps().ifPresent(mbps -> System.out.println(mbps + " Mbps"));
  • Method Details

    • builder

      public static SavingsCalculator.Builder builder(FabricGateway fabric)
      Creates a savings calculator builder over the given Fabric client.
      Parameters:
      fabric - the Fabric client (or any FabricGateway) used for live pricing
      Returns:
      a new SavingsCalculator.Builder
    • forSpec

      public static SavingsCalculator.Builder forSpec(FabricGateway fabric, DesignSpec spec, String cloudId, MetroPortfolio chosen)
      A builder preset from a DesignSpec the way the optimiser's RateCardCostModel prices it (see SpecInputs): provider, region and egress volume from the cloud; bandwidth from the workloads reaching it, rounded up to the Fabric tier; the chosen portfolio's metro; the spec's term (on demand when unset); an IP_VC from a STANDARD Fabric Cloud Router. The estimate carries the spec fingerprint and the assumptions made.
      Parameters:
      fabric - the Fabric client for live pricing (may be null with a supplied rate card)
      spec - the design spec
      cloudId - the cloud, or null for the first cloud with a provider
      chosen - the portfolio a run chose, or null
      Returns:
      the preset builder