From a37c1e5e77736ba3c30056f1db5a9747183c3a73 Mon Sep 17 00:00:00 2001 From: Cameron Fieber Date: Thu, 17 May 2018 09:36:03 -0700 Subject: [PATCH] fix(provider/amazon): improve instancetype caching Switches AWS Instance Type caching to process the amazon billing api offerings file instead of making an API call to reserved instance offerings. Polls this endpoint on the regular caching interval, but only processes it if it serves up a different etag value than the previous cycle. The billing endpoint is listed as us-east-1 but is actually fronted by CloudFront so in theory shouldn't be an issue to hit from any specific Spinnaker installation. --- .../AmazonInstanceTypeCachingAgent.groovy | 142 - .../agent/AmazonInstanceTypeCachingAgent.java | 223 ++ .../AwsInfrastructureProviderConfig.groovy | 6 +- .../AmazonInstanceTypeCachingAgentSpec.groovy | 228 +- .../aws/provider/agent/us-west-2.json | 3424 +++++++++++++++++ 5 files changed, 3799 insertions(+), 224 deletions(-) delete mode 100644 clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.groovy create mode 100644 clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.java create mode 100644 clouddriver-aws/src/test/resources/com/netflix/spinnaker/clouddriver/aws/provider/agent/us-west-2.json diff --git a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.groovy b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.groovy deleted file mode 100644 index cac174a8360..00000000000 --- a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.groovy +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2015 Netflix, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.netflix.spinnaker.clouddriver.aws.provider.agent - -import com.amazonaws.services.ec2.model.DescribeReservedInstancesOfferingsRequest -import com.amazonaws.services.ec2.model.ReservedInstancesOffering -import com.netflix.spinnaker.cats.agent.AccountAware -import com.netflix.spinnaker.cats.agent.AgentDataType -import com.netflix.spinnaker.cats.agent.CacheResult -import com.netflix.spinnaker.cats.agent.CachingAgent -import com.netflix.spinnaker.cats.agent.DefaultCacheResult -import com.netflix.spinnaker.cats.cache.CacheData -import com.netflix.spinnaker.cats.cache.DefaultCacheData -import com.netflix.spinnaker.cats.provider.ProviderCache -import com.netflix.spinnaker.clouddriver.aws.security.AmazonClientProvider -import com.netflix.spinnaker.clouddriver.aws.security.EddaTimeoutConfig -import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials -import com.netflix.spinnaker.clouddriver.cache.CustomScheduledAgent -import com.netflix.spinnaker.clouddriver.aws.cache.Keys -import com.netflix.spinnaker.clouddriver.aws.provider.AwsInfrastructureProvider - -import java.util.concurrent.TimeUnit - -import static com.netflix.spinnaker.cats.agent.AgentDataType.Authority.AUTHORITATIVE -import static com.netflix.spinnaker.clouddriver.aws.cache.Keys.Namespace.INSTANCE_TYPES - -import groovy.util.logging.Slf4j - -@Slf4j -class AmazonInstanceTypeCachingAgent implements CachingAgent, CustomScheduledAgent, AccountAware { - - public static final long DEFAULT_POLL_INTERVAL_MILLIS = TimeUnit.HOURS.toMillis(2) - public static final long DEFAULT_TIMEOUT_MILLIS = TimeUnit.MINUTES.toMillis(15) - - final AmazonClientProvider amazonClientProvider - final NetflixAmazonCredentials account - final String region - final EddaTimeoutConfig eddaTimeoutConfig - - final long pollIntervalMillis - final long timeoutMillis - - static final Set types = Collections.unmodifiableSet([ - AUTHORITATIVE.forType(INSTANCE_TYPES.ns) - ] as Set) - - private static long getDefaultIfNonEdda(EddaTimeoutConfig eddaTimeoutConfig, String region, NetflixAmazonCredentials account, long defaultIfNonEdda) { - if (account.eddaEnabled && !eddaTimeoutConfig.disabledRegions.contains(region)) { - return -1 - } - return defaultIfNonEdda - } - - AmazonInstanceTypeCachingAgent(AmazonClientProvider amazonClientProvider, - NetflixAmazonCredentials account, - String region, - EddaTimeoutConfig eddaTimeoutConfig) { - this(amazonClientProvider, account, region, getDefaultIfNonEdda(eddaTimeoutConfig, region, account, DEFAULT_POLL_INTERVAL_MILLIS), getDefaultIfNonEdda(eddaTimeoutConfig, region, account, DEFAULT_TIMEOUT_MILLIS)) - } - - AmazonInstanceTypeCachingAgent(AmazonClientProvider amazonClientProvider, - NetflixAmazonCredentials account, - String region, - long pollIntervalMillis, - long timeoutMillis) { - this.amazonClientProvider = amazonClientProvider - this.account = account - this.region = region - this.pollIntervalMillis = pollIntervalMillis - this.timeoutMillis = timeoutMillis - } - - @Override - String getProviderName() { - AwsInfrastructureProvider.PROVIDER_NAME - } - - @Override - String getAgentType() { - "${account.name}/${region}/${AmazonInstanceTypeCachingAgent.simpleName}" - } - - @Override - String getAccountName() { - account.name - } - - @Override - Collection getProvidedDataTypes() { - return types - } - - @Override - CacheResult loadData(ProviderCache providerCache) { - log.info("Describing items in ${agentType}") - def ec2 = amazonClientProvider.getAmazonEC2(account, region) - List data = [] - def request = new DescribeReservedInstancesOfferingsRequest() - while (true) { - def offerings = ec2.describeReservedInstancesOfferings(request) - Set allIdentifiers = [] - data.addAll(offerings.reservedInstancesOfferings.findResults { ReservedInstancesOffering offering -> - String key = Keys.getInstanceTypeKey(offering.instanceType, region, account.name) - if (allIdentifiers.add(key)) { - new DefaultCacheData(Keys.getInstanceTypeKey(offering.instanceType, region, account.name), [ - account : account.name, - region : region, - name : offering.instanceType, - availabilityZone : null, - productDescription: null, - durationSeconds : null - ], - [:]) - } else { - null - } - }) - - if (offerings.nextToken) { - request.setNextToken(offerings.nextToken) - } else { - break - } - } - log.info("Caching ${data.size()} items in ${agentType}") - new DefaultCacheResult([(INSTANCE_TYPES.ns): data]) - } -} diff --git a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.java b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.java new file mode 100644 index 00000000000..fec70634bd8 --- /dev/null +++ b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgent.java @@ -0,0 +1,223 @@ +package com.netflix.spinnaker.clouddriver.aws.provider.agent; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.netflix.spinnaker.cats.agent.AgentDataType; +import com.netflix.spinnaker.cats.agent.CacheResult; +import com.netflix.spinnaker.cats.agent.CachingAgent; +import com.netflix.spinnaker.cats.agent.DefaultCacheResult; +import com.netflix.spinnaker.cats.cache.CacheData; +import com.netflix.spinnaker.cats.cache.DefaultCacheData; +import com.netflix.spinnaker.cats.cache.RelationshipCacheFilter; +import com.netflix.spinnaker.cats.provider.ProviderCache; +import com.netflix.spinnaker.clouddriver.aws.cache.Keys; +import com.netflix.spinnaker.clouddriver.aws.provider.AwsInfrastructureProvider; +import com.netflix.spinnaker.clouddriver.aws.security.AmazonCredentials; +import com.netflix.spinnaker.clouddriver.security.AccountCredentials; +import com.netflix.spinnaker.clouddriver.security.AccountCredentialsRepository; +import org.apache.http.*; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpHead; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.util.*; +import java.util.stream.Collectors; + +public class AmazonInstanceTypeCachingAgent implements CachingAgent { + + private static final TypeReference> ATTRIBUTES + = new TypeReference>() {}; + + // https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-west-2/index.json + private final String region; + private final AccountCredentialsRepository accountCredentialsRepository; + private final URI pricingUri; + private final HttpHost pricingHost; + private final HttpClient httpClient; + private final ObjectMapper objectMapper = + new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + + public AmazonInstanceTypeCachingAgent(String region, + AccountCredentialsRepository accountCredentialsRepository) { + this(region, accountCredentialsRepository, HttpClients.createDefault()); + } + + //VisibleForTesting + AmazonInstanceTypeCachingAgent(String region, + AccountCredentialsRepository accountCredentialsRepository, + HttpClient httpClient) { + this.region = region; + this.accountCredentialsRepository = accountCredentialsRepository; + pricingHost = HttpHost.create("https://pricing.us-east-1.amazonaws.com"); + pricingUri = URI.create("/offers/v1.0/aws/AmazonEC2/current/" + region + "/index.json"); + this.httpClient = httpClient; + } + + @Override + public Collection getProvidedDataTypes() { + return Collections.unmodifiableList( + Arrays.asList( + new AgentDataType( + Keys.Namespace.INSTANCE_TYPES.getNs(), AgentDataType.Authority.AUTHORITATIVE), + new AgentDataType( + getAgentType(), AgentDataType.Authority.AUTHORITATIVE))); + } + + @Override + public CacheResult loadData(ProviderCache providerCache) { + try { + Set matchingAccounts = accountCredentialsRepository.getAll() + .stream() + .filter(AmazonCredentials.class::isInstance) + .map(AmazonCredentials.class::cast) + .filter(ac -> ac.getRegions().stream().anyMatch(r -> region.equals(r.getName()))) + .map(AccountCredentials::getName) + .collect(Collectors.toSet()); + + if (matchingAccounts.isEmpty()) { + return new DefaultCacheResult(Collections.emptyMap()); + } + + CacheData metadata = providerCache.get( + getAgentType(), + "metadata", + RelationshipCacheFilter.none()); + MetadataAttributes metadataAttributes = null; + if (metadata != null) { + metadataAttributes = objectMapper.convertValue(metadata.getAttributes(), MetadataAttributes.class); + } + + Set instanceTypes = null; + if (metadataAttributes != null + && metadataAttributes.etag != null + && metadataAttributes.cachedInstanceTypes != null) { + + //we have enough from a previous request to not re-request if the etag is unchanged.. + HttpResponse headResponse = httpClient.execute(pricingHost, new HttpHead(pricingUri)); + EntityUtils.consumeQuietly(headResponse.getEntity()); + if (headResponse.getStatusLine().getStatusCode() != 200) { + throw new Exception("failed to read instance type metadata for " + region + ": " + + headResponse.getStatusLine().toString()); + } + + Optional etag = getEtagHeader(headResponse); + + if (etag.filter(metadataAttributes.etag::equals).isPresent()) { + instanceTypes = metadataAttributes.cachedInstanceTypes; + } + } + if (instanceTypes == null) { + HttpResponse getResponse = httpClient.execute(pricingHost, new HttpGet(pricingUri)); + if (getResponse.getStatusLine().getStatusCode() != 200) { + EntityUtils.consumeQuietly(getResponse.getEntity()); + throw new Exception("failed to read instance type data for " + region + ": " + + getResponse.getStatusLine().toString()); + } + Optional etag = getEtagHeader(getResponse); + HttpEntity entity = getResponse.getEntity(); + instanceTypes = fromStream(entity.getContent()); + EntityUtils.consumeQuietly(entity); + if (etag.isPresent()) { + metadataAttributes = new MetadataAttributes(); + metadataAttributes.etag = etag.get(); + metadataAttributes.cachedInstanceTypes = new HashSet<>(instanceTypes); + metadata = new DefaultCacheData( + "metadata", + objectMapper.convertValue(metadataAttributes, ATTRIBUTES), + Collections.emptyMap()); + } else { + metadata = null; + } + } + Map> evictions = new HashMap<>(); + Map> cacheResults = new HashMap<>(); + List instanceTypeData = new ArrayList<>(); + cacheResults.put(Keys.Namespace.INSTANCE_TYPES.getNs(), instanceTypeData); + if (metadata != null) { + cacheResults.put(getAgentType(), Collections.singleton(metadata)); + } else { + evictions.put(getAgentType(), Collections.singleton("metadata")); + } + + for (String instanceType : instanceTypes) { + for (String account : matchingAccounts) { + Map instanceTypeAttributes = new HashMap<>(); + instanceTypeAttributes.put("account", account); + instanceTypeAttributes.put("region", region); + instanceTypeAttributes.put("name", instanceType); + instanceTypeData.add( + new DefaultCacheData( + Keys.getInstanceTypeKey(instanceType, region, account), + instanceTypeAttributes, + Collections.emptyMap())); + } + } + + return new DefaultCacheResult(cacheResults, evictions); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } + + Optional getEtagHeader(HttpResponse response) { + return Optional.ofNullable(response) + .map(r -> r.getFirstHeader("ETag")) + .map(Header::getElements) + .filter(e -> e.length > 0) + .map(e -> e[0].getName()); + } + + @Override + public String getAgentType() { + return getClass().getSimpleName() + "/" + region; + } + + @Override + public String getProviderName() { + return AwsInfrastructureProvider.PROVIDER_NAME; + } + + static class Offering { + public String productFamily; + public ComputeInstanceAttributes attributes; + } + + static class ComputeInstanceAttributes { + public String instanceType; + + @Override + public String toString() { + return instanceType; + } + } + + static class Offerings { + public Map products; + } + + static class MetadataAttributes { + public String etag; + public Set cachedInstanceTypes; + } + + + //visible for testing + Set fromStream(InputStream is) throws IOException { + Offerings offerings = objectMapper.readValue(is, Offerings.class); + Set instanceTypes = offerings.products.values() + .stream() + .filter(o -> o.productFamily != null && o.productFamily.startsWith("Compute Instance")) + .map(o -> o.attributes.instanceType) + .filter(it -> it != null && !it.isEmpty()) + .collect(Collectors.toSet()); + + return instanceTypes; + } +} diff --git a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/config/AwsInfrastructureProviderConfig.groovy b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/config/AwsInfrastructureProviderConfig.groovy index a2a312bba3d..fc3fdf2f552 100644 --- a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/config/AwsInfrastructureProviderConfig.groovy +++ b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/config/AwsInfrastructureProviderConfig.groovy @@ -88,13 +88,17 @@ class AwsInfrastructureProviderConfig { def scheduledAccounts = ProviderUtils.getScheduledAccounts(awsInfrastructureProvider) def allAccounts = ProviderUtils.buildThreadSafeSetOfAccounts(accountCredentialsRepository, NetflixAmazonCredentials) + Set regions = new HashSet<>(); allAccounts.each { NetflixAmazonCredentials credentials -> for (AmazonCredentials.AWSRegion region : credentials.regions) { if (!scheduledAccounts.contains(credentials.name)) { def newlyAddedAgents = [] + if (regions.add(region.name)) { + newlyAddedAgents << new AmazonInstanceTypeCachingAgent(region.name, accountCredentialsRepository) + } + newlyAddedAgents << new AmazonElasticIpCachingAgent(amazonClientProvider, credentials, region.name) - newlyAddedAgents << new AmazonInstanceTypeCachingAgent(amazonClientProvider, credentials, region.name, eddaTimeoutConfig) newlyAddedAgents << new AmazonKeyPairCachingAgent(amazonClientProvider, credentials, region.name) newlyAddedAgents << new AmazonSecurityGroupCachingAgent(amazonClientProvider, credentials, region.name, amazonObjectMapper, registry, eddaTimeoutConfig) newlyAddedAgents << new AmazonSubnetCachingAgent(amazonClientProvider, credentials, region.name, amazonObjectMapper) diff --git a/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgentSpec.groovy b/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgentSpec.groovy index 6ac4cd29bb0..35cb2e90202 100644 --- a/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgentSpec.groovy +++ b/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonInstanceTypeCachingAgentSpec.groovy @@ -1,117 +1,183 @@ -/* - * Copyright 2015 Netflix, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package com.netflix.spinnaker.clouddriver.aws.provider.agent -import com.amazonaws.services.ec2.AmazonEC2 -import com.amazonaws.services.ec2.model.DescribeReservedInstancesOfferingsRequest -import com.amazonaws.services.ec2.model.DescribeReservedInstancesOfferingsResult -import com.amazonaws.services.ec2.model.ReservedInstancesOffering +import com.netflix.spinnaker.cats.agent.CacheResult import com.netflix.spinnaker.cats.cache.CacheData +import com.netflix.spinnaker.cats.cache.DefaultCacheData +import com.netflix.spinnaker.cats.cache.RelationshipCacheFilter import com.netflix.spinnaker.cats.provider.ProviderCache -import com.netflix.spinnaker.clouddriver.aws.security.AmazonClientProvider -import com.netflix.spinnaker.clouddriver.aws.security.EddaTimeoutConfig -import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials -import com.netflix.spinnaker.clouddriver.aws.cache.Keys +import com.netflix.spinnaker.clouddriver.aws.TestCredential +import com.netflix.spinnaker.clouddriver.security.AccountCredentialsRepository +import org.apache.http.HttpHost +import org.apache.http.ProtocolVersion +import org.apache.http.client.HttpClient +import org.apache.http.client.methods.HttpGet +import org.apache.http.client.methods.HttpHead +import org.apache.http.entity.BasicHttpEntity +import org.apache.http.message.BasicHttpResponse import spock.lang.Specification -import spock.lang.Subject class AmazonInstanceTypeCachingAgentSpec extends Specification { - static final String account = 'test' - static final String region = 'us-east-1' + static final Set TEST_DATA_SET_INSTANCE_TYPES = + ['d2.8xlarge', 'c5.xlarge', 'h1.2xlarge', 'c4.8xlarge', 'c3.large', 'i3.metal'] + + static final US_WEST_2_ACCT = TestCredential.named("test", + [regions: [ + [name: 'us-west-2', + availabilityZones: ['us-west-2a', 'us-west-2b', 'us-west-2c'] + ] + ]]) - AmazonEC2 ec2 = Mock(AmazonEC2) - AmazonClientProvider provider = Stub(AmazonClientProvider) { - getAmazonEC2(_, _) >> ec2 + AccountCredentialsRepository repo = Stub(AccountCredentialsRepository) { + getAll() >> [US_WEST_2_ACCT] } - NetflixAmazonCredentials creds = Stub(NetflixAmazonCredentials) { - getName() >> account + def httpClient = Mock(HttpClient) + def providerCache = Mock(ProviderCache) + + def "can deserialize response payload"() { + when: + def instanceTypes = getTestSubject().fromStream(cannedDataSet()) + + then: + instanceTypes == TEST_DATA_SET_INSTANCE_TYPES } - EddaTimeoutConfig eddaTimeoutConfig = new EddaTimeoutConfig.Builder().build() + def "noop if no matching accounts"() { + given: + def agent = getTestSubject('us-east-1') + + when: + def instanceTypes = agent.loadData(providerCache) - ProviderCache providerCache = Mock(ProviderCache) + then: + instanceTypes.cacheResults.isEmpty() + instanceTypes.evictions.isEmpty() + 0 * _ + } - @Subject - AmazonInstanceTypeCachingAgent agent = new AmazonInstanceTypeCachingAgent(provider, creds, region, eddaTimeoutConfig) + def "skip data load if etags match"() { + given: + def agent = getTestSubject() - void "should add to cache"() { when: - def result = agent.loadData(providerCache) - def expected = Keys.getInstanceTypeKey('m1', region, account) + def instanceTypes = agent.loadData(providerCache) then: - 1 * ec2.describeReservedInstancesOfferings(new DescribeReservedInstancesOfferingsRequest()) >> new DescribeReservedInstancesOfferingsResult( - reservedInstancesOfferings: [ - new ReservedInstancesOffering(reservedInstancesOfferingId: '1', instanceType: 'm1') - ] - ) - with (result.cacheResults.get(Keys.Namespace.INSTANCE_TYPES.ns)) { List cd -> - cd.size() == 1 - cd.find { it.id == expected } - } + 1 * providerCache.get(agent.getAgentType(), 'metadata', _ as RelationshipCacheFilter) >> + metadata('bacon', expectedTypes) + 1 * httpClient.execute(_ as HttpHost, _ as HttpHead) >> basicResponse('bacon') + instanceTypes.evictions.isEmpty() + metadataMatches(agent.agentType, instanceTypes, 'bacon', expectedTypes) + instanceTypesMatch(instanceTypes, expectedTypes) 0 * _ + + where: + expectedTypes = ['m1.megabig', 't2.arnold'] } - void "should dedupe instance types"() { + def "load data if no metadata"() { + given: + def agent = getTestSubject() + when: - def result = agent.loadData(providerCache) - def expected = Keys.getInstanceTypeKey('m1', region, account) + def instanceTypes = agent.loadData(providerCache) then: - 1 * ec2.describeReservedInstancesOfferings(new DescribeReservedInstancesOfferingsRequest()) >> new DescribeReservedInstancesOfferingsResult( - reservedInstancesOfferings: [ - new ReservedInstancesOffering(reservedInstancesOfferingId: '1', instanceType: 'm1'), - new ReservedInstancesOffering(reservedInstancesOfferingId: '2', instanceType: 'm1'), - ] - ) - with (result.cacheResults.get(Keys.Namespace.INSTANCE_TYPES.ns)) { List cd -> - cd.size() == 1 - cd.find { it.id == expected } - } + 1 * providerCache.get(agent.getAgentType(), 'metadata', _ as RelationshipCacheFilter) >> null + 1 * httpClient.execute(_ as HttpHost, _ as HttpGet) >> getResponse('baloney') + + instanceTypes.evictions.isEmpty() + metadataMatches(agent.agentType, instanceTypes, 'baloney', TEST_DATA_SET_INSTANCE_TYPES) + instanceTypesMatch(instanceTypes, TEST_DATA_SET_INSTANCE_TYPES) 0 * _ } - void "should add all from paged results"() { + def "load data if metadata mismatch"() { + given: + def agent = getTestSubject() + when: - def result = agent.loadData(providerCache) + def instanceTypes = agent.loadData(providerCache) then: - 1 * ec2.describeReservedInstancesOfferings(new DescribeReservedInstancesOfferingsRequest()) >> new DescribeReservedInstancesOfferingsResult( - reservedInstancesOfferings: [ - new ReservedInstancesOffering(reservedInstancesOfferingId: '1', instanceType: 'm1'), - new ReservedInstancesOffering(reservedInstancesOfferingId: '2', instanceType: 'm2') - ], - nextToken: 'moar' - ) - 1 * ec2.describeReservedInstancesOfferings(new DescribeReservedInstancesOfferingsRequest(nextToken: 'moar')) >> new DescribeReservedInstancesOfferingsResult( - reservedInstancesOfferings: [ - new ReservedInstancesOffering(reservedInstancesOfferingId: '3', instanceType: 'm3') - ] - ) + 1 * providerCache.get(agent.getAgentType(), 'metadata', _ as RelationshipCacheFilter) >> + metadata('mustard', ['t7.shouldntmatter']) + 1 * httpClient.execute(_ as HttpHost, _ as HttpHead) >> basicResponse('baloney') + 1 * httpClient.execute(_ as HttpHost, _ as HttpGet) >> getResponse('baloney') + + instanceTypes.evictions.isEmpty() + metadataMatches(agent.agentType, instanceTypes, 'baloney', TEST_DATA_SET_INSTANCE_TYPES) + instanceTypesMatch(instanceTypes, TEST_DATA_SET_INSTANCE_TYPES) + 0 * _ + } - with (result.cacheResults.get(Keys.Namespace.INSTANCE_TYPES.ns)) { List cd -> - cd.size() == 3 - cd.find { it.id == Keys.getInstanceTypeKey('m1', region, account) } - cd.find { it.id == Keys.getInstanceTypeKey('m2', region, account) } - cd.find { it.id == Keys.getInstanceTypeKey('m3', region, account) } - } + def "evict metadata if no etag"() { + given: + def agent = getTestSubject() + + when: + def instanceTypes = agent.loadData(providerCache) + + then: + 1 * providerCache.get(agent.getAgentType(), 'metadata', _ as RelationshipCacheFilter) >> null + 1 * httpClient.execute(_ as HttpHost, _ as HttpGet) >> getResponse(null) + + instanceTypes.evictions.get(agent.agentType).head() == 'metadata' + !instanceTypes.cacheResults.get(agent.agentType) + instanceTypesMatch(instanceTypes, TEST_DATA_SET_INSTANCE_TYPES) 0 * _ + + } + + CacheData metadata(String etag, Collection instanceTypes) { + new DefaultCacheData('metadata', [etag: etag, cachedInstanceTypes: instanceTypes], [:]) + + } + + boolean metadataMatches(String agentType, + CacheResult result, + String expectedEtag, + Collection expectedTypes) { + def meta = result?.cacheResults?.get(agentType)?.head() + if (!meta) { + return false + } + meta.id == 'metadata' && + meta.attributes.etag == expectedEtag && + meta.attributes.cachedInstanceTypes as Set == expectedTypes as Set + } + + boolean instanceTypesMatch(CacheResult result, Collection expectedTypes) { + result?.cacheResults?.instanceTypes?.collect { it.id } as Set == + expectedTypes.collect { "aws:instanceTypes:$it:test:us-west-2".toString() } as Set + } + + BasicHttpResponse basicResponse(String etag, int statusCode = 200) { + def r = new BasicHttpResponse( + new ProtocolVersion('HTTP', 1, 1), + statusCode, + 'because reasons') + if (etag) { + r.setHeader("ETag", etag) + } + return r + } + + BasicHttpResponse getResponse(String etag) { + def r = basicResponse(etag) + def e = new BasicHttpEntity() + e.setContent(cannedDataSet()) + r.setEntity(e) + return r + } + + InputStream cannedDataSet() { + getClass().getResourceAsStream("us-west-2.json") + } + + AmazonInstanceTypeCachingAgent getTestSubject(String region = 'us-west-2') { + return new AmazonInstanceTypeCachingAgent(region, repo, httpClient) } } diff --git a/clouddriver-aws/src/test/resources/com/netflix/spinnaker/clouddriver/aws/provider/agent/us-west-2.json b/clouddriver-aws/src/test/resources/com/netflix/spinnaker/clouddriver/aws/provider/agent/us-west-2.json new file mode 100644 index 00000000000..3e97297e4f7 --- /dev/null +++ b/clouddriver-aws/src/test/resources/com/netflix/spinnaker/clouddriver/aws/provider/agent/us-west-2.json @@ -0,0 +1,3424 @@ +{ + "formatVersion": "v1.0", + "disclaimer": "This pricing list is for informational purposes only. All prices are subject to the additional terms included in the pricing pages on http://aws.amazon.com. All Free Tier prices are also subject to the terms included at https://aws.amazon.com/free/", + "offerCode": "AmazonEC2", + "version": "20180504231021", + "publicationDate": "2018-05-04T23:10:21Z", + "products": { + "7UU97PUEUDTUMDMP": { + "sku": "7UU97PUEUDTUMDMP", + "productFamily": "Compute Instance (bare metal)", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "i3.metal", + "instanceFamily": "Storage optimized", + "vcpu": "72", + "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)", + "memory": "512 GiB", + "storage": "8 x 1900 NVMe SSD", + "networkPerformance": "25 Gigabit", + "processorArchitecture": "64-bit", + "tenancy": "Host", + "operatingSystem": "Windows", + "licenseModel": "No License required", + "usagetype": "USW2-HostBoxUsage:i3.metal", + "operation": "RunInstances:0102", + "capacitystatus": "Used", + "ecu": "208", + "normalizationSizeFactor": "128", + "preInstalledSw": "SQL Ent", + "servicename": "Amazon Elastic Compute Cloud" + } + }, + "UKW7HJKYC386VDWE": { + "sku": "UKW7HJKYC386VDWE", + "productFamily": "Compute Instance", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "c5.xlarge", + "currentGeneration": "Yes", + "instanceFamily": "Compute optimized", + "vcpu": "4", + "physicalProcessor": "Intel Xeon Platinum 8124M", + "clockSpeed": "3.0 Ghz", + "memory": "8 GiB", + "storage": "EBS only", + "networkPerformance": "Up to 10 Gigabit", + "processorArchitecture": "64-bit", + "tenancy": "Shared", + "operatingSystem": "Windows", + "licenseModel": "No License required", + "usagetype": "USW2-BoxUsage:c5.xlarge", + "operation": "RunInstances:0202", + "capacitystatus": "Used", + "dedicatedEbsThroughput": "Upto 2250 Mbps", + "ecu": "16", + "enhancedNetworkingSupported": "Yes", + "normalizationSizeFactor": "8", + "preInstalledSw": "SQL Web", + "processorFeatures": "Intel AVX, Intel AVX2, Intel AVX512, Intel Turbo", + "servicename": "Amazon Elastic Compute Cloud" + } + }, + "4MT3SBFE9CPY5M43": { + "sku": "4MT3SBFE9CPY5M43", + "productFamily": "Data Transfer", + "attributes": { + "servicecode": "AWSDataTransfer", + "transferType": "Accelerated InterRegion Inbound using edge locations within US, Europe or Japan", + "fromLocation": "US West (Oregon)", + "fromLocationType": "AWS Region", + "toLocation": "Asia Pacific (Osaka-Local)", + "toLocationType": "AWS Region", + "usagetype": "USW2-APN3-AWS-In-ABytes-T1", + "operation": "", + "servicename": "AWS Data Transfer" + } + }, + "866ZGRHEVQD56AR2": { + "sku": "866ZGRHEVQD56AR2", + "productFamily": "Compute Instance", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "d2.8xlarge", + "currentGeneration": "Yes", + "instanceFamily": "Storage optimized", + "vcpu": "36", + "physicalProcessor": "Intel Xeon E5-2676v3 (Haswell)", + "clockSpeed": "2.4 GHz", + "memory": "244 GiB", + "storage": "24 x 2000 HDD", + "networkPerformance": "10 Gigabit", + "processorArchitecture": "64-bit", + "tenancy": "Host", + "operatingSystem": "Windows", + "licenseModel": "Bring your own license", + "usagetype": "USW2-HostBoxUsage:d2.8xlarge", + "operation": "RunInstances:0800", + "capacitystatus": "Used", + "ecu": "116", + "enhancedNetworkingSupported": "Yes", + "normalizationSizeFactor": "64", + "preInstalledSw": "NA", + "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo", + "servicename": "Amazon Elastic Compute Cloud" + } + }, + "MSRQHFU7JT8DRZ4A": { + "sku": "MSRQHFU7JT8DRZ4A", + "productFamily": "Compute Instance", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "h1.2xlarge", + "currentGeneration": "Yes", + "instanceFamily": "Storage optimized", + "vcpu": "8", + "physicalProcessor": "Intel Xeon E5-2686 v4 (Broadwell)", + "clockSpeed": "2.3 GHz", + "memory": "32 GiB", + "storage": "1 x 2000 HDD", + "networkPerformance": "Up to 10 Gigabit", + "processorArchitecture": "64-bit", + "tenancy": "Dedicated", + "operatingSystem": "Linux", + "licenseModel": "No License required", + "usagetype": "USW2-DedicatedUsage:h1.2xlarge", + "operation": "RunInstances:0100", + "capacitystatus": "Used", + "dedicatedEbsThroughput": "1600 Mbps", + "ecu": "26", + "enhancedNetworkingSupported": "Yes", + "normalizationSizeFactor": "16", + "preInstalledSw": "SQL Ent", + "processorFeatures": "Intel AVX, Intel AVX2, Intel Turbo", + "servicename": "Amazon Elastic Compute Cloud" + } + }, + "E58UVF498EG758MS": { + "sku": "E58UVF498EG758MS", + "productFamily": "Compute Instance", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "c4.8xlarge", + "currentGeneration": "Yes", + "instanceFamily": "Compute optimized", + "vcpu": "36", + "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)", + "clockSpeed": "2.9 GHz", + "memory": "60 GiB", + "storage": "EBS only", + "networkPerformance": "10 Gigabit", + "processorArchitecture": "64-bit", + "tenancy": "Shared", + "operatingSystem": "Windows", + "licenseModel": "No License required", + "usagetype": "USW2-BoxUsage:c4.8xlarge", + "operation": "RunInstances:0102", + "capacitystatus": "Used", + "dedicatedEbsThroughput": "4000 Mbps", + "ecu": "132", + "enhancedNetworkingSupported": "Yes", + "normalizationSizeFactor": "64", + "preInstalledSw": "SQL Ent", + "processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo", + "servicename": "Amazon Elastic Compute Cloud" + } + }, + "9DD7W8QPV2GVTFTQ": { + "sku": "9DD7W8QPV2GVTFTQ", + "productFamily": "Compute Instance", + "attributes": { + "servicecode": "AmazonEC2", + "location": "US West (Oregon)", + "locationType": "AWS Region", + "instanceType": "c3.large", + "currentGeneration": "No", + "instanceFamily": "Compute optimized", + "vcpu": "2", + "physicalProcessor": "Intel Xeon E5-2680 v2 (Ivy Bridge)", + "clockSpeed": "2.8 GHz", + "memory": "3.75 GiB", + "storage": "2 x 16 SSD", + "networkPerformance": "Moderate", + "processorArchitecture": "32-bit or 64-bit", + "tenancy": "Dedicated", + "operatingSystem": "Linux", + "licenseModel": "No License required", + "usagetype": "USW2-DedicatedUsage:c3.large", + "operation": "RunInstances:0004", + "capacitystatus": "Used", + "ecu": "7", + "enhancedNetworkingSupported": "Yes", + "normalizationSizeFactor": "4", + "preInstalledSw": "SQL Std", + "processorFeatures": "Intel AVX; Intel Turbo", + "servicename": "Amazon Elastic Compute Cloud" + } + } + }, + "terms": { + "OnDemand": { + "UV6A7R6ERTZN75MS": { + "UV6A7R6ERTZN75MS.JRTCKXETXF": { + "offerTermCode": "JRTCKXETXF", + "sku": "UV6A7R6ERTZN75MS", + "effectiveDate": "2018-05-01T00:00:00Z", + "priceDimensions": { + "UV6A7R6ERTZN75MS.JRTCKXETXF.6YS6EN2CT7": { + "rateCode": "UV6A7R6ERTZN75MS.JRTCKXETXF.6YS6EN2CT7", + "description": "$0.000 per Linux m3.2xlarge Dedicated Host Instance hour", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": {} + } + }, + "MT6MMH2UH9E8Z4JG": { + "MT6MMH2UH9E8Z4JG.JRTCKXETXF": { + "offerTermCode": "JRTCKXETXF", + "sku": "MT6MMH2UH9E8Z4JG", + "effectiveDate": "2018-05-01T00:00:00Z", + "priceDimensions": { + "MT6MMH2UH9E8Z4JG.JRTCKXETXF.6YS6EN2CT7": { + "rateCode": "MT6MMH2UH9E8Z4JG.JRTCKXETXF.6YS6EN2CT7", + "description": "$0.00 per Linux with SQL Std c5.2xlarge Dedicated Host Instance hour", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": {} + } + } + }, + "Reserved": { + "PYDH5P62F8KBF85B": { + "PYDH5P62F8KBF85B.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2016-11-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "31962" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.HU7G6KETJZ.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.6490000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "PYDH5P62F8KBF85B.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2016-10-31T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "63826" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.6QCMYABX3D.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "PYDH5P62F8KBF85B.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-04-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.4NA7Y494T4.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.2900000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "PYDH5P62F8KBF85B.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-04-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.Z2E3P23VKM.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.1840000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "PYDH5P62F8KBF85B.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2016-10-31T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.38NPMPTW36.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "93283" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.38NPMPTW36.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.5500000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "PYDH5P62F8KBF85B.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-04-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.MZU6U2429S.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "187708" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.MZU6U2429S.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "PYDH5P62F8KBF85B.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2016-11-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.NQ3QZPMQV9.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "185993" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "PYDH5P62F8KBF85B.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-04-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.5750000000" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "93963" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "PYDH5P62F8KBF85B.BPH4J8HBKS": { + "offerTermCode": "BPH4J8HBKS", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-04-30T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.BPH4J8HBKS.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.BPH4J8HBKS.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.1260000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "PYDH5P62F8KBF85B.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "64220" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.VJWZNREJX2.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "PYDH5P62F8KBF85B.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "PYDH5P62F8KBF85B.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "32163" + }, + "appliesTo": [] + }, + "PYDH5P62F8KBF85B.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.CUZHX8X6JH.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.6720000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "PYDH5P62F8KBF85B.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "PYDH5P62F8KBF85B", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "PYDH5P62F8KBF85B.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "PYDH5P62F8KBF85B.7NE97W5U4E.6YS6EN2CT7", + "description": "Windows with SQL Server Enterprise (Amazon VPC), c4.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.3740000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + } + }, + "GCK6AV8WDUTNG5F9": { + "GCK6AV8WDUTNG5F9.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.7NE97W5U4E.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.3050000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "GCK6AV8WDUTNG5F9.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.4NA7Y494T4.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.2650000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "GCK6AV8WDUTNG5F9.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "14413" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.CUZHX8X6JH.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.6450000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "GCK6AV8WDUTNG5F9.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.VJWZNREJX2.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "28776" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "GCK6AV8WDUTNG5F9.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "82972" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.NQ3QZPMQV9.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "GCK6AV8WDUTNG5F9.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.MZU6U2429S.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "84712" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.MZU6U2429S.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "GCK6AV8WDUTNG5F9.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.HU7G6KETJZ.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.6260000000" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "14247" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "GCK6AV8WDUTNG5F9.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.38NPMPTW36.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "41618" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.38NPMPTW36.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.5840000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "GCK6AV8WDUTNG5F9.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "42416" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.6140000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "GCK6AV8WDUTNG5F9.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "GCK6AV8WDUTNG5F9.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "28450" + }, + "appliesTo": [] + }, + "GCK6AV8WDUTNG5F9.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.6QCMYABX3D.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "GCK6AV8WDUTNG5F9.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "GCK6AV8WDUTNG5F9", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "GCK6AV8WDUTNG5F9.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "GCK6AV8WDUTNG5F9.Z2E3P23VKM.6YS6EN2CT7", + "description": "Linux with SQL Server Enterprise (Amazon VPC), c3.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.2460000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + } + }, + "FMP7XZXJZ9WQKSYH": { + "FMP7XZXJZ9WQKSYH.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.38NPMPTW36.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "22472" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.38NPMPTW36.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.2830000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.4NA7Y494T4.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.0810000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.NQ3QZPMQV9.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "52818" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2016-09-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.Z2E3P23VKM.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "2.9640000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2016-09-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "26086" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.5390000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2016-09-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "9217" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.HU7G6KETJZ.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.5810000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "22605" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.6QCMYABX3D.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "27818" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.VJWZNREJX2.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2016-09-30T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.MZU6U2429S.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.MZU6U2429S.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "65208" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.7NE97W5U4E.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.2570000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "FMP7XZXJZ9WQKSYH.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "FMP7XZXJZ9WQKSYH", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "FMP7XZXJZ9WQKSYH.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "FMP7XZXJZ9WQKSYH.CUZHX8X6JH.6YS6EN2CT7", + "description": "Windows with SQL Server Web (Amazon VPC), c3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.5990000000" + }, + "appliesTo": [] + }, + "FMP7XZXJZ9WQKSYH.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "FMP7XZXJZ9WQKSYH.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "14011" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + } + }, + "VF8WVSAPAR7N5YAZ": { + "VF8WVSAPAR7N5YAZ.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.4NA7Y494T4.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "15.9030000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.7NE97W5U4E.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "17.1370000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "73086" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.CUZHX8X6JH.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "8.3430000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.BPH4J8HBKS": { + "offerTermCode": "BPH4J8HBKS", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.BPH4J8HBKS.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.BPH4J8HBKS.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "11.9700000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.MZU6U2429S.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "319465" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.MZU6U2429S.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "144594" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.VJWZNREJX2.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "67940" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.HU7G6KETJZ.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.7560000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "134509" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.6QCMYABX3D.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.Z2E3P23VKM.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "12.6130000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "299946" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.NQ3QZPMQV9.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.38NPMPTW36.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "153104" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.38NPMPTW36.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "5.8260000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "VF8WVSAPAR7N5YAZ.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "VF8WVSAPAR7N5YAZ", + "effectiveDate": "2018-03-31T23:59:59Z", + "priceDimensions": { + "VF8WVSAPAR7N5YAZ.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "VF8WVSAPAR7N5YAZ.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "160933" + }, + "appliesTo": [] + }, + "VF8WVSAPAR7N5YAZ.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "VF8WVSAPAR7N5YAZ.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Linux with SQL Server Standard (Amazon VPC), x1e.16xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "6.1240000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + } + }, + "7EKHSU568GXUWCTS": { + "7EKHSU568GXUWCTS.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "35023" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.HU7G6KETJZ.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.9910000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "7EKHSU568GXUWCTS.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "78888" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.VJWZNREJX2.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "7EKHSU568GXUWCTS.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.NQ3QZPMQV9.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "122548" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "7EKHSU568GXUWCTS.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "68591" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.6QCMYABX3D.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "7EKHSU568GXUWCTS.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.CUZHX8X6JH.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "4.5910000000" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "40277" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "7EKHSU568GXUWCTS.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.4NA7Y494T4.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "8.3870000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "7EKHSU568GXUWCTS.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.MZU6U2429S.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "171866" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.MZU6U2429S.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "7EKHSU568GXUWCTS.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "87685" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.R5XV2EPZQZ.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.3360000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "7EKHSU568GXUWCTS.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-09-30T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.38NPMPTW36.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "2.4790000000" + }, + "appliesTo": [] + }, + "7EKHSU568GXUWCTS.38NPMPTW36.2TG2D8R56U": { + "rateCode": "7EKHSU568GXUWCTS.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "65168" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "7EKHSU568GXUWCTS.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "7EKHSU568GXUWCTS", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "7EKHSU568GXUWCTS.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "7EKHSU568GXUWCTS.7NE97W5U4E.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), p3.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "9.6460000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + } + }, + "SN6Y3HGBV9CC2JR6": { + "SN6Y3HGBV9CC2JR6.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.4NA7Y494T4.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0118000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.CUZHX8X6JH.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0062000000" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "55" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.MZU6U2429S.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "258" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.MZU6U2429S.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.38NPMPTW36.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0046000000" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.38NPMPTW36.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "121" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "131" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0050000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.7NE97W5U4E.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0129000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "50" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.HU7G6KETJZ.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0057000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "108" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.VJWZNREJX2.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-12-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.NQ3QZPMQV9.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "234" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.BPH4J8HBKS": { + "offerTermCode": "BPH4J8HBKS", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.BPH4J8HBKS.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.BPH4J8HBKS.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0096000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.6QCMYABX3D.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "SN6Y3HGBV9CC2JR6.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "SN6Y3HGBV9CC2JR6.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "99" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "SN6Y3HGBV9CC2JR6.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "SN6Y3HGBV9CC2JR6", + "effectiveDate": "2017-08-31T23:59:59Z", + "priceDimensions": { + "SN6Y3HGBV9CC2JR6.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "SN6Y3HGBV9CC2JR6.Z2E3P23VKM.6YS6EN2CT7", + "description": "Windows (Amazon VPC), t2.micro reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0104000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + } + }, + "QBYJCF2RGQTF5H5D": { + "QBYJCF2RGQTF5H5D.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "QBYJCF2RGQTF5H5D", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "QBYJCF2RGQTF5H5D.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "QBYJCF2RGQTF5H5D.NQ3QZPMQV9.6YS6EN2CT7", + "description": "USD 0.0 per Linux/UNIX (Amazon VPC), m2.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "QBYJCF2RGQTF5H5D.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "QBYJCF2RGQTF5H5D.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "5839" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "QBYJCF2RGQTF5H5D.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "QBYJCF2RGQTF5H5D", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "QBYJCF2RGQTF5H5D.38NPMPTW36.2TG2D8R56U": { + "rateCode": "QBYJCF2RGQTF5H5D.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "2875" + }, + "appliesTo": [] + }, + "QBYJCF2RGQTF5H5D.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "QBYJCF2RGQTF5H5D.38NPMPTW36.6YS6EN2CT7", + "description": "Linux/UNIX (Amazon VPC), m2.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.1270000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "QBYJCF2RGQTF5H5D.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "QBYJCF2RGQTF5H5D", + "effectiveDate": "2016-09-30T23:59:59Z", + "priceDimensions": { + "QBYJCF2RGQTF5H5D.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "QBYJCF2RGQTF5H5D.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "1894" + }, + "appliesTo": [] + }, + "QBYJCF2RGQTF5H5D.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "QBYJCF2RGQTF5H5D.HU7G6KETJZ.6YS6EN2CT7", + "description": "Linux/UNIX (Amazon VPC), m2.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.1630000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "QBYJCF2RGQTF5H5D.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "QBYJCF2RGQTF5H5D", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "QBYJCF2RGQTF5H5D.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "QBYJCF2RGQTF5H5D.6QCMYABX3D.6YS6EN2CT7", + "description": "USD 0.0 per Linux/UNIX (Amazon VPC), m2.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "QBYJCF2RGQTF5H5D.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "QBYJCF2RGQTF5H5D.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "3255" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "QBYJCF2RGQTF5H5D.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "QBYJCF2RGQTF5H5D", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "QBYJCF2RGQTF5H5D.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "QBYJCF2RGQTF5H5D.4NA7Y494T4.6YS6EN2CT7", + "description": "Linux/UNIX (Amazon VPC), m2.4xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.4440000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + } + }, + "NXRQZFA7F5W3JS8Y": { + "NXRQZFA7F5W3JS8Y.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "NXRQZFA7F5W3JS8Y", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "NXRQZFA7F5W3JS8Y.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "NXRQZFA7F5W3JS8Y.4NA7Y494T4.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), m2.xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.1610000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "NXRQZFA7F5W3JS8Y.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "NXRQZFA7F5W3JS8Y", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "NXRQZFA7F5W3JS8Y.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "NXRQZFA7F5W3JS8Y.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "714" + }, + "appliesTo": [] + }, + "NXRQZFA7F5W3JS8Y.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "NXRQZFA7F5W3JS8Y.HU7G6KETJZ.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), m2.xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0570000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "NXRQZFA7F5W3JS8Y.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "NXRQZFA7F5W3JS8Y", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "NXRQZFA7F5W3JS8Y.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "NXRQZFA7F5W3JS8Y.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "2274" + }, + "appliesTo": [] + }, + "NXRQZFA7F5W3JS8Y.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "NXRQZFA7F5W3JS8Y.NQ3QZPMQV9.6YS6EN2CT7", + "description": "USD 0.0 per SUSE Linux (Amazon VPC), m2.xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "NXRQZFA7F5W3JS8Y.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "NXRQZFA7F5W3JS8Y", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "NXRQZFA7F5W3JS8Y.38NPMPTW36.2TG2D8R56U": { + "rateCode": "NXRQZFA7F5W3JS8Y.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "1178" + }, + "appliesTo": [] + }, + "NXRQZFA7F5W3JS8Y.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "NXRQZFA7F5W3JS8Y.38NPMPTW36.6YS6EN2CT7", + "description": "SUSE Linux (Amazon VPC), m2.xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0470000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "NXRQZFA7F5W3JS8Y.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "NXRQZFA7F5W3JS8Y", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "NXRQZFA7F5W3JS8Y.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "NXRQZFA7F5W3JS8Y.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "1190" + }, + "appliesTo": [] + }, + "NXRQZFA7F5W3JS8Y.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "NXRQZFA7F5W3JS8Y.6QCMYABX3D.6YS6EN2CT7", + "description": "USD 0.0 per SUSE Linux (Amazon VPC), m2.xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + } + }, + "CCDYUK858Q32EE2D": { + "CCDYUK858Q32EE2D.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.38NPMPTW36.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "95894" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.38NPMPTW36.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.6490000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "CCDYUK858Q32EE2D.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.Z2E3P23VKM.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.7780000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "CCDYUK858Q32EE2D.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "80149" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.6QCMYABX3D.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "CCDYUK858Q32EE2D.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "188657" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.NQ3QZPMQV9.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "CCDYUK858Q32EE2D.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "99809" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "3.7980000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "CCDYUK858Q32EE2D.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.7NE97W5U4E.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "10.0400000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "CCDYUK858Q32EE2D.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "42990" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.CUZHX8X6JH.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "4.9080000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "CCDYUK858Q32EE2D.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.4NA7Y494T4.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "9.4240000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "CCDYUK858Q32EE2D.BPH4J8HBKS": { + "offerTermCode": "BPH4J8HBKS", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.BPH4J8HBKS.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.BPH4J8HBKS.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "7.4570000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "CCDYUK858Q32EE2D.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "40418" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.HU7G6KETJZ.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "4.6140000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "CCDYUK858Q32EE2D.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.MZU6U2429S.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.MZU6U2429S.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "198417" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "CCDYUK858Q32EE2D.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "CCDYUK858Q32EE2D", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "CCDYUK858Q32EE2D.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "CCDYUK858Q32EE2D.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "85192" + }, + "appliesTo": [] + }, + "CCDYUK858Q32EE2D.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "CCDYUK858Q32EE2D.VJWZNREJX2.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), x1e.8xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + } + }, + "EPXQPYHRYXVPE9B7": { + "EPXQPYHRYXVPE9B7.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.4NA7Y494T4.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.0940000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "EPXQPYHRYXVPE9B7.CUZHX8X6JH": { + "offerTermCode": "CUZHX8X6JH", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.CUZHX8X6JH.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.CUZHX8X6JH.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "4624" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.CUZHX8X6JH.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.CUZHX8X6JH.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.6580000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + }, + "EPXQPYHRYXVPE9B7.7NE97W5U4E": { + "offerTermCode": "7NE97W5U4E", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.7NE97W5U4E.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.7NE97W5U4E.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "1.2380000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "EPXQPYHRYXVPE9B7.MZU6U2429S": { + "offerTermCode": "MZU6U2429S", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.MZU6U2429S.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.MZU6U2429S.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "21030" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.MZU6U2429S.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.MZU6U2429S.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "EPXQPYHRYXVPE9B7.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "4021" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.HU7G6KETJZ.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.5890000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "EPXQPYHRYXVPE9B7.VJWZNREJX2": { + "offerTermCode": "VJWZNREJX2", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.VJWZNREJX2.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.VJWZNREJX2.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "10202" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.VJWZNREJX2.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.VJWZNREJX2.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "convertible", + "PurchaseOption": "All Upfront" + } + }, + "EPXQPYHRYXVPE9B7.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "18081" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.NQ3QZPMQV9.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "EPXQPYHRYXVPE9B7.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "9020" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.6QCMYABX3D.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "EPXQPYHRYXVPE9B7.Z2E3P23VKM": { + "offerTermCode": "Z2E3P23VKM", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.Z2E3P23VKM.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.Z2E3P23VKM.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.8690000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "No Upfront" + } + }, + "EPXQPYHRYXVPE9B7.BPH4J8HBKS": { + "offerTermCode": "BPH4J8HBKS", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.BPH4J8HBKS.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.BPH4J8HBKS.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.7710000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "EPXQPYHRYXVPE9B7.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.38NPMPTW36.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.4270000000" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.38NPMPTW36.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "7800" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "EPXQPYHRYXVPE9B7.R5XV2EPZQZ": { + "offerTermCode": "R5XV2EPZQZ", + "sku": "EPXQPYHRYXVPE9B7", + "effectiveDate": "2017-10-31T23:59:59Z", + "priceDimensions": { + "EPXQPYHRYXVPE9B7.R5XV2EPZQZ.6YS6EN2CT7": { + "rateCode": "EPXQPYHRYXVPE9B7.R5XV2EPZQZ.6YS6EN2CT7", + "description": "Red Hat Enterprise Linux (Amazon VPC), c5.9xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.4720000000" + }, + "appliesTo": [] + }, + "EPXQPYHRYXVPE9B7.R5XV2EPZQZ.2TG2D8R56U": { + "rateCode": "EPXQPYHRYXVPE9B7.R5XV2EPZQZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "8987" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "convertible", + "PurchaseOption": "Partial Upfront" + } + } + }, + "CUB4W855GYJ9S9J8": { + "CUB4W855GYJ9S9J8.6QCMYABX3D": { + "offerTermCode": "6QCMYABX3D", + "sku": "CUB4W855GYJ9S9J8", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "CUB4W855GYJ9S9J8.6QCMYABX3D.2TG2D8R56U": { + "rateCode": "CUB4W855GYJ9S9J8.6QCMYABX3D.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "6925" + }, + "appliesTo": [] + }, + "CUB4W855GYJ9S9J8.6QCMYABX3D.6YS6EN2CT7": { + "rateCode": "CUB4W855GYJ9S9J8.6QCMYABX3D.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Standard (Amazon VPC), m2.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + }, + "CUB4W855GYJ9S9J8.HU7G6KETJZ": { + "offerTermCode": "HU7G6KETJZ", + "sku": "CUB4W855GYJ9S9J8", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "CUB4W855GYJ9S9J8.HU7G6KETJZ.2TG2D8R56U": { + "rateCode": "CUB4W855GYJ9S9J8.HU7G6KETJZ.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "2826" + }, + "appliesTo": [] + }, + "CUB4W855GYJ9S9J8.HU7G6KETJZ.6YS6EN2CT7": { + "rateCode": "CUB4W855GYJ9S9J8.HU7G6KETJZ.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), m2.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.4840000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "CUB4W855GYJ9S9J8.4NA7Y494T4": { + "offerTermCode": "4NA7Y494T4", + "sku": "CUB4W855GYJ9S9J8", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "CUB4W855GYJ9S9J8.4NA7Y494T4.6YS6EN2CT7": { + "rateCode": "CUB4W855GYJ9S9J8.4NA7Y494T4.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), m2.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.9440000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "1yr", + "OfferingClass": "standard", + "PurchaseOption": "No Upfront" + } + }, + "CUB4W855GYJ9S9J8.38NPMPTW36": { + "offerTermCode": "38NPMPTW36", + "sku": "CUB4W855GYJ9S9J8", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "CUB4W855GYJ9S9J8.38NPMPTW36.2TG2D8R56U": { + "rateCode": "CUB4W855GYJ9S9J8.38NPMPTW36.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "7038" + }, + "appliesTo": [] + }, + "CUB4W855GYJ9S9J8.38NPMPTW36.6YS6EN2CT7": { + "rateCode": "CUB4W855GYJ9S9J8.38NPMPTW36.6YS6EN2CT7", + "description": "Windows with SQL Server Standard (Amazon VPC), m2.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.4010000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "Partial Upfront" + } + }, + "CUB4W855GYJ9S9J8.NQ3QZPMQV9": { + "offerTermCode": "NQ3QZPMQV9", + "sku": "CUB4W855GYJ9S9J8", + "effectiveDate": "2015-04-30T23:59:59Z", + "priceDimensions": { + "CUB4W855GYJ9S9J8.NQ3QZPMQV9.2TG2D8R56U": { + "rateCode": "CUB4W855GYJ9S9J8.NQ3QZPMQV9.2TG2D8R56U", + "description": "Upfront Fee", + "unit": "Quantity", + "pricePerUnit": { + "USD": "16522" + }, + "appliesTo": [] + }, + "CUB4W855GYJ9S9J8.NQ3QZPMQV9.6YS6EN2CT7": { + "rateCode": "CUB4W855GYJ9S9J8.NQ3QZPMQV9.6YS6EN2CT7", + "description": "USD 0.0 per Windows with SQL Server Standard (Amazon VPC), m2.2xlarge reserved instance applied", + "beginRange": "0", + "endRange": "Inf", + "unit": "Hrs", + "pricePerUnit": { + "USD": "0.0000000000" + }, + "appliesTo": [] + } + }, + "termAttributes": { + "LeaseContractLength": "3yr", + "OfferingClass": "standard", + "PurchaseOption": "All Upfront" + } + } + } + } + } +}