<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Brian</title>
    <description>The latest articles on DEV Community by Brian (@brianpregan).</description>
    <link>https://dev.to/brianpregan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F899655%2Fb90e2a4a-a062-4d8f-9752-8000e3d24af6.jpg</url>
      <title>DEV Community: Brian</title>
      <link>https://dev.to/brianpregan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brianpregan"/>
    <language>en</language>
    <item>
      <title>5 Ways to Cut AWS Costs You Didn't Know About</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Wed, 20 Sep 2023 14:29:41 +0000</pubDate>
      <link>https://dev.to/brianpregan/5-ways-to-cut-aws-costs-you-didnt-know-about-4ko6</link>
      <guid>https://dev.to/brianpregan/5-ways-to-cut-aws-costs-you-didnt-know-about-4ko6</guid>
      <description>&lt;p&gt;&lt;a href="https://getstrake.com/5-ways-to-cut-aws-costs"&gt;Download free eBook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re an Amazon Web Services (AWS) customer, you’re probably in this repeating cycle of spiraling cost pain..&lt;/p&gt;

&lt;p&gt;The bill comes in over budget every month.&lt;/p&gt;

&lt;p&gt;The engineering team can’t answer “Why”?&lt;/p&gt;

&lt;p&gt;And then you’re left searching for answers.&lt;/p&gt;

&lt;p&gt;If this is you, you’re not alone, and it's not your fault.&lt;/p&gt;

&lt;p&gt;There are entire categories of hidden costs in AWS’ billing data. Charges like Data Transfer, “EC2-Other”, and API activity are notoriously difficult to isolate and understand.&lt;/p&gt;

&lt;p&gt;Strake’s platform was purpose built to solve this problem, leaving you with lower, more predictable, cloud costs.&lt;/p&gt;

&lt;p&gt;Strake helps engineering teams identify and eliminate waste. That means tying every charge back to the resources that caused them and identifying exactly what they are paying for.&lt;/p&gt;

&lt;p&gt;As an example of how our platform works, we documented some examples of Strake customers defeating these hidden costs in our new eBook: 5 Ways to Cut AWS Costs You Didn’t Know About.&lt;/p&gt;

&lt;p&gt;Each chapter addresses a unique AWS billing issue with annual savings over $100,000:&lt;/p&gt;

&lt;p&gt;– The Hidden EC2 Data Transfer Tax&lt;br&gt;
– The NAT Gateway Processing Multiplier&lt;br&gt;
– The S3 Request Flood&lt;br&gt;
– The CloudWatch Rolex Watch&lt;br&gt;
– The RedShift Data Hoarders&lt;/p&gt;

&lt;p&gt;Take a look at this eBook and let us know about the hidden costs you'd like to see defeated next!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://getstrake.com/5-ways-to-cut-aws-costs"&gt;Download free eBook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---5qe9-PP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uaehqf3wmrglwc564d4m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---5qe9-PP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uaehqf3wmrglwc564d4m.jpg" alt="cover page for &amp;quot;5 ways to cut AWS costs you didn't know about&amp;quot; eBook" width="800" height="1035"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
    <item>
      <title>AWS EC2 Instance and EBS Volume Pricing</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Tue, 09 May 2023 23:42:37 +0000</pubDate>
      <link>https://dev.to/brianpregan/aws-ec2-instance-and-ebs-volume-pricing-10nl</link>
      <guid>https://dev.to/brianpregan/aws-ec2-instance-and-ebs-volume-pricing-10nl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Originally posted on &lt;a href="https://getstrake.com/blog/aws-ec2-instance-type-pricing" rel="noopener noreferrer"&gt;Strake's Website&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://workspace.google.com/marketplace/app/aws_pricing_by_strake/378787760903" rel="noopener noreferrer"&gt;AWS Pricing by Strake&lt;/a&gt; is an open-source project that allows anyone to bring AWS Public pricing into Google Sheets using Strake's custom functions. To help the community get started with this project, Strake published several free templates to help engineers answer critical questions about AWS Pricing. &lt;/p&gt;

&lt;p&gt;Today, we will use Google Sheets templates to analyze Amazon EC2 Instance and EBS Pricing.&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Amazon Web Services Pricing is Complicated!
&lt;/h2&gt;

&lt;p&gt;Amazon Web Services operates in over 30 regions, has over 200 different services, and thousands of usage types. This results in a nauseating number of prices that go into calculating your monthly AWS bill. &lt;/p&gt;

&lt;p&gt;For Amazon Elastic Compute Cloud (EC2), there are over 265,000 lines of data in the public AWS EC2 pricing file for a single region.&lt;/p&gt;

&lt;p&gt;On top of all the operational complexities of AWS, understanding AWS pricing and pricing changes is a critical component of understanding your AWS bill. In this blog post, we will walk through how your team can quickly analyze AWS Pricing data and use this data to your advantage when planning infrastructure changes.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  AWS Pricing by Strake
&lt;/h2&gt;

&lt;p&gt;Strake recently launched our open-source project, &lt;a href="https://workspace.google.com/marketplace/app/aws_pricing_by_strake/378787760903" rel="noopener noreferrer"&gt;AWS Pricing by Strake&lt;/a&gt;, on Product Hunt. This project is an add-on for Google Sheets that makes up-to-date AWS public pricing available using custom Google Sheets functions. &lt;/p&gt;

&lt;p&gt;Before we go into too much detail, here is a 3-minute video on how to get started with AWS Pricing:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/S6AgB4sL2L8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS EC2 Pricing
&lt;/h2&gt;

&lt;p&gt;In previous posts on Strake’s blog, including the &lt;a href="https://getstrake.com/blog/aws-cost-analysis-amazon-ec2-costs" rel="noopener noreferrer"&gt;Developer’s Guide to AWS Costs: EC2&lt;/a&gt; and &lt;a href="https://getstrake.com/blog/what-is-ec2-other" rel="noopener noreferrer"&gt;What is EC2-Other&lt;/a&gt;?, I’ve broken down the different types of charges that come through your AWS bill under the ‘EC2’ service. Today, we will focus on understanding pricing for the hourly running cost of EC2 Instances.&lt;/p&gt;

&lt;h3&gt;
  
  
  Amazon EC2 Instance Types
&lt;/h3&gt;

&lt;p&gt;Before using AWS Pricing by Strake to calculate EC2 pricing, we must understand the concept of EC2 instance types. EC2 instance type, region, platform, and purchase type are the key variables to determine what an EC2 Instance will cost per hour.&lt;/p&gt;

&lt;p&gt;EC2 instance types combine an EC2 instance family and the EC2 instance size. For example, the instance type “m5.large” is the combination of the instance family “m5” (anything before the ‘.’) and the instance size “large” (after the ‘.’). You can repeat this methodology for any EC2 instance type offered by AWS:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fek3pdpg54swigx0cctnk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fek3pdpg54swigx0cctnk.png" alt="AWS Pricing by Strake EC2 Template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  On Demand and Reserved Instance EC2 Pricing
&lt;/h2&gt;

&lt;p&gt;With the AWS Pricing by Strake project, our team has also shared several templates to help users calculate their infrastructure costs. The first template, “AWS Pricing by Strake - EC2 Pricing and Reserved Instances”, makes it simple for any user to calculate the On Demand and Reserved Instance costs for their EC2 instances.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/spreadsheets/d/1GdoZ-jNQZ0IFhQPu1RMLG0eC8cS_Q4i-3aiQdrNNBNA/edit?usp=sharing" rel="noopener noreferrer"&gt;&lt;strong&gt;DOWNLOAD: AWS Pricing: EC2 Template&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt;, If you have not already, you can download &lt;a href="https://workspace.google.com/marketplace/app/aws_pricing_by_strake/378787760903" rel="noopener noreferrer"&gt;AWS Pricing by Strake from the Google Workspace Marketplace&lt;/a&gt;. Downloading this add-on takes less than 15 seconds!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt;, you will need to make a copy of the EC2 Template and open the sidebar to view our formula documentation. Once you have downloaded a copy of the template, click Extensions → AWS Pricing by Strake → How to use AWS Pricing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp62j5v9o1jni1bu377ub.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp62j5v9o1jni1bu377ub.png" alt="AWS Pricing by Strake EC2 Template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third&lt;/strong&gt;, Once the add-on has been downloaded and the sidebar is open, you can start the use the template. Select the region, platform, and instance type of the EC2 instance you want to calculate pricing for. After the formulas calculate, you will have the On Demand and Reserved Instance prices and discount rates to analyze in Google Sheets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhouxzrtik0az77t38za.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhouxzrtik0az77t38za.png" alt="AWS Pricing by Strake EC2 Template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we understand how the template works, we can use this template to answer some critical business questions, for example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do the prices for the new c6i instances compare to the c5a instances?&lt;/strong&gt; The price is often lower when AWS releases new instance families compared to the current generation. Engineers must understand the cost and operational benefits of moving to a new instance family before starting the migration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Should we make convertible or reserved instance reservations?&lt;/strong&gt; How do the discount rates compare for different payment options and commitment terms? I discussed this in another blog post, A Complete Guide to AWS Reservations. Three key variables determine how large a discount will be: length of commitment, specificity of the commitment, and the amount of money paid upfront. This EC2 template will let your business understand the different discount rates to weigh cost benefits and operational complexity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We're starting a new development project. What instance types should we use? How does pricing compare across EC2 instance types?&lt;/strong&gt; When your engineering team starts a new project, it is crucial to estimate your costs from the beginning. Maybe $0.01 per hour doesn't seem like a big difference, but when you're running thousands of instances in production, that can be a meaningful cost.&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  EC2 and EBS Volume Pricing
&lt;/h2&gt;

&lt;p&gt;The second template we have created and shared with the AWS Community, “AWS Pricing by Strake - EC2 &amp;amp; EBS Calculator”, combines the hourly EC2 instance cost with any attached EBS volume cost. These two costs combined give users a much better understanding of what their development project will cost.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/spreadsheets/d/10TTWUYe7dv2lJ2tbLlpoDR0l8rDbT6ifvzse7DOuXEY/edit?usp=sharing" rel="noopener noreferrer"&gt;&lt;strong&gt;DOWNLOAD: AWS Pricing: EC2 and EBS Template&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To use this template, &lt;strong&gt;First&lt;/strong&gt;, select the details for the EC2 instances. We discussed calculating the cost for different EC2 Instance Types with the “EC2 Pricing and Reserved Instance Template”. The only difference with this template is that the user must also select the payment type and any related selections. For example, if you choose the “Purchase Type” as Reserved, you will be prompted to fill out the Offering Class, Term, and Payment Option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmtuafhochwr520fobeoc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmtuafhochwr520fobeoc.png" alt="AWS Pricing by Strake EBS and EC2 Template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt;, select the details for the EBS volumes that will be attached to your instances. This step is optional. If you don’t want to calculate the cost of EBS volumes, leave those cells blank.&lt;/p&gt;

&lt;p&gt;EBS volumes have pricing variables similar to EC2 Instances that must be chosen before AWS Pricing by Strake can reveal a price. These are Volume Type, Storage Type, Region” and Volume Size (GB).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcudfps5e553o2gzx572u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcudfps5e553o2gzx572u.png" alt="AWS Pricing by Strake EBS and EC2 Template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third&lt;/strong&gt;, select the count of EC2 Instances and EBS Volumes. This value is used to calculate the total cost of your infrastructure. This cell needs to be filled. The default value for this template is “1”.&lt;/p&gt;

&lt;p&gt;With the template filled out, the calculations will show Hourly, Daily, and Monthly total costs as well as the individual costs for EC2 and EBS. This template, in particular, is suited for when engineers are making EC2 compute or EBS storage changes and need to calculate cost changes, such as the following:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upgrading EBS volume types and want to understand the total cost impact.&lt;/strong&gt; Storage costs are just as complex as EC2 Instance Types. When your team is planning infrastructure changes, understand the cost before it happens so there are no surprises on your AWS bill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expanding production infrastructure due to customer demand and need to estimate the image to their Gross Margins.&lt;/strong&gt; If your production environment is based on EC2 Instances with EBS volumes as the primary form of storage, this template can help you build out your Cost of Goods Sold (COGS) for your production environment. COGS is a compelling metric to track as a business to understand how your costs will scale as you win new customers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Calculating the total cost impact of changing infrastructure from On Demand to Reserved Instance pricing.&lt;/strong&gt; Total cost reduction from reservations is an important metric to track so the business understands what percentage cost reduction Reservations can actually provide. Unfortunately, Reserved Instances don't apply to EBS Volumes. This template will allow your team to combine EC2 Reserved Instances and your existing EBS volumes to calculate the total cost reduction to your infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learn More
&lt;/h3&gt;

&lt;p&gt;If you're interested in learning more about AWS Pricing by Strake, here are some additional resources:&lt;/p&gt;

&lt;p&gt;🖥️ &lt;a href="https://getstrake.com" rel="noopener noreferrer"&gt;Visit our website&lt;/a&gt; to learn about features and download AWS Pricing templates.&lt;br&gt;
🚀 &lt;a href="https://github.com/getstrake/aws-pricing-sheets-addon/issues" rel="noopener noreferrer"&gt;Create a GitHub Issue&lt;/a&gt; for bugs or if you have ideas to improve the project.&lt;br&gt;
💭 &lt;a href="https://join.slack.com/t/strake-community/shared_invite/zt-1nisfazzn-uO5O_I28Z7N6sZ6iM2H1xA" rel="noopener noreferrer"&gt;Join the Strake community&lt;/a&gt; if you have questions or want to stay updated with Strake.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS Pricing by Strake on Product Hunt!</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Mon, 20 Mar 2023 07:49:27 +0000</pubDate>
      <link>https://dev.to/brianpregan/aws-pricing-by-strake-on-product-hunt-1ehi</link>
      <guid>https://dev.to/brianpregan/aws-pricing-by-strake-on-product-hunt-1ehi</guid>
      <description>&lt;p&gt;A couple of weeks ago, Strake made an announcement that we have entered into an agreement with Mike Heffner to assume ownership and maintenance of the AWS Pricing add-on for Google Sheets. You can read that full &lt;a href="https://getstrake.com/blog/aws-pricing-add-on-for-google-sheets"&gt;announcement on Strake's website.&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Today, Strake is launching &lt;a href="https://www.producthunt.com/posts/aws-pricing-by-strake"&gt;'AWS Pricing by Strake' on Product Hunt!&lt;/a&gt; 🚀🚀🚀
&lt;/h2&gt;




&lt;p&gt;&lt;a href="https://workspace.google.com/marketplace/app/aws_pricing_by_strake/378787760903"&gt;AWS Pricing by Strake&lt;/a&gt; is an open-source project that allows users to use AWS public pricing data in Google Spreadsheets. The add-on is available from the Google Workspace Marketplace.&lt;/p&gt;

&lt;p&gt;AWS pricing is highly complicated. Did you know there are over 300,000 line items in the most recent EC2 pricing file from AWS? I know this is a constant pain point for me - How am I supposed to know when prices change, how they impact our AWS bill, or which infrastructure changes our team should make?&lt;/p&gt;

&lt;p&gt;We’re excited to collaborate with the Product Hunt &amp;amp; AWS community through this project.&lt;/p&gt;

&lt;p&gt;Please share your feedback on the product on Product Hunt. We'd love your input on the roadmap! 🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>opensource</category>
      <category>sre</category>
      <category>devops</category>
    </item>
    <item>
      <title>AWS Pricing plug-in for Google Sheets</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Tue, 14 Mar 2023 16:32:55 +0000</pubDate>
      <link>https://dev.to/brianpregan/aws-pricing-plug-in-for-google-sheets-35ac</link>
      <guid>https://dev.to/brianpregan/aws-pricing-plug-in-for-google-sheets-35ac</guid>
      <description>&lt;p&gt;&lt;a href="https://getstrake.com" rel="noopener noreferrer"&gt;Strake&lt;/a&gt;, the AWS cost management platform built for engineers, is excited to announce that we have entered into an agreement with &lt;a href="https://github.com/mheffner" rel="noopener noreferrer"&gt;Mike Heffner&lt;/a&gt; to assume ownership and maintenance of the &lt;a href="https://workspace.google.com/marketplace/app/aws_pricing_by_strake/378787760903" rel="noopener noreferrer"&gt;AWS Pricing plugin for Google Sheets&lt;/a&gt;. The original plugin has been partially restored, and is available for free from the Google Workspace Marketplace.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://workspace.google.com/marketplace/app/aws_pricing_by_strake/378787760903" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fworkspace.google.com%2Fstatic%2Fimg%2Fmarketplace%2Fen%2FgwmBadge.svg" alt="A badge that reads get it on Google Workspace Marketplace" width="417" height="68"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;AWS customers are always looking for ways to optimize their infrastructure and achieve more accurate forecasting. Unfortunately, this work requires manual effort and removes engineering resources from important feature work. In addition to Strake's core platform, we're committed to maintaining the AWS Pricing plugin for Google Sheets as an open-source tool to help AWS users understand their cloud costs.&lt;/p&gt;

&lt;p&gt;Our team has spent the last several months working with the creator, Mike Heffner, to understand the project and how to best serve the community:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Nearly four years ago I created the aws-pricing Google Sheets add-on because I was tired of copying and pasting AWS pricing data when compiling infrastructure cost estimates. Since then I've been amazed by the adoption and interest from the AWS community for the add-on. That's why I'm excited that the team at Strake has graciously offered to take over ownership and maintenance of the add-on moving forward. I'm grateful that the team has restored the add-on for all users and I'm excited to see what new features they'll add in the future. The add-on will be able to continue as a useful resource for the AWS community.&lt;br&gt;
– Mike Heffner&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The AWS Pricing plugin for Google Sheets allows any Google Sheets user to pull the current public AWS pricing information into their spreadsheet using Google Sheets functions. &lt;/p&gt;

&lt;p&gt;In its current state, there are functions for Elastic Compute Cloud (EC2), Elastic Block Store (EBS). In the coming weeks, we will have an update about the second version of the AWS Pricing Plugin that features streamlined formulas, restored RDS functions, and an updated backend to work with the new format of public AWS Pricing files.&lt;/p&gt;




&lt;p&gt;Strake is committed to maintaining the AWS Pricing plugin as an open-source project and expanding the project with feedback from the open-source community. &lt;/p&gt;

&lt;p&gt;If you want to learn more about the AWS Pricing project, you can get it from the &lt;a href="https://workspace.google.com/marketplace/app/aws_pricing_by_strake/378787760903" rel="noopener noreferrer"&gt;Google Workspace Marketplace&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For questions, comments, or feedback on the project roadmap, join the &lt;a href="https://join.slack.com/t/strake-community/shared_invite/zt-1nisfazzn-uO5O_I28Z7N6sZ6iM2H1xA" rel="noopener noreferrer"&gt;Strake Community&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>code</category>
      <category>career</category>
      <category>productivity</category>
      <category>ai</category>
    </item>
    <item>
      <title>AWS Cost and Usage Report Documentation</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Tue, 29 Nov 2022 18:07:52 +0000</pubDate>
      <link>https://dev.to/brianpregan/aws-cost-and-usage-report-documentation-mf6</link>
      <guid>https://dev.to/brianpregan/aws-cost-and-usage-report-documentation-mf6</guid>
      <description>&lt;p&gt;&lt;strong&gt;This blog was originally published on &lt;a href="https://getstrake.com/blog/aws-cost-and-usage-report-documentation" rel="noopener noreferrer"&gt;getstrake.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Cost and Usage Report is the standard report from AWS for customers to understand and manage their costs. The Cost and Usage Report drives most cloud cost management tools, including AWS Cost Explorer. This documentation will outline the essential fields in the Cost and Usage Report, explain how those fields can be used for cloud cost management, and provide sample values users can use to build queries based on usage in their accounts.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cost and Usage Report
&lt;/h2&gt;

&lt;p&gt;The Cost and Usage Report is the standard billing report for AWS Customers. This report is free (except for the S3 storage costs) and can be created by anyone with the proper billing permissions. For more details on the Cost and Usage Report, how to make a report, and getting started with analysis, check out this overview in the Developer's Guide to AWS Costs.&lt;/p&gt;

&lt;p&gt;This report contains over 200 fields and can be millions of records for a single month of usage. Using the documentation below, we are taking the ~200 fields in the Cost and Usage Report and filtering it down to only 30 of the most critical fields. These 30 fields will answer most of your cost management questions and greatly simplify your cloud cost management practices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost and Usage Report Field Categories
&lt;/h2&gt;

&lt;p&gt;There are seven categories of cost fields across all Cost and Usage Reports: Bill, Identity, Pricing, Line Item, Product, Reservation, and Savings Plans. Below, we will break out the essential fields by field categories, provide details about what these fields describe, and provide sample values that will show up in your cost and usage report.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Continue Reading @ &lt;a href="https://getstrake.com/blog/aws-cost-and-usage-report-documentation" rel="noopener noreferrer"&gt;Strake&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>ai</category>
    </item>
    <item>
      <title>A Complete Guide to AWS Reservations</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Mon, 21 Nov 2022 14:08:24 +0000</pubDate>
      <link>https://dev.to/brianpregan/a-complete-guide-to-aws-reservations-1bmn</link>
      <guid>https://dev.to/brianpregan/a-complete-guide-to-aws-reservations-1bmn</guid>
      <description>&lt;p&gt;This blog was originally posted on &lt;a href="https://getstrake.com/blog/a-complete-guide-to-aws-reservations" rel="noopener noreferrer"&gt;Strake's Website&lt;/a&gt;. &lt;br&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  Summary
&lt;/h1&gt;

&lt;p&gt;In this overview of AWS Reservations, we will discuss the most popular reservation products: Compute Savings Plans, EC2 Savings Plans, EC2 Reserved Instances, and RDS Reserved Instances. In addition, we will mention the other reservation products offered by AWS and where you can find more information on those products.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are AWS Reservations?
&lt;/h3&gt;

&lt;p&gt;AWS Reservations offer customers the ability to commit to using certain resources for an extended period of time in exchange for a steep discount. Discounts range from 20-75% depending on how much risk your organization is willing to take.&lt;br&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  Compute Savings Plans
&lt;/h1&gt;

&lt;p&gt;Compute Savings Plans are the most flexible reservation tool offered by Amazon Web Services. Using a compute savings plan from AWS, you can commit to a certain amount of 'compute' spending and receive a significant discount.&lt;/p&gt;

&lt;p&gt;Compute Savings Plans reduce the engineering overhead of using AWS Reservations. Compute Savings Plans are automatically applied across your EC2, Fargate, and Lambda usage regardless of instance type, Region, operating system, or tenancy.&lt;/p&gt;

&lt;p&gt;Compute Savings Plans commitments are made in dollars per hour. If you execute a Compute Savings Plan commitment of $1 for a 1-year term, that is a commitment to spending $1 on compute (either EC2, Lambda, or Fargate) at discount prices every hour for the following year.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compute Savings Plan Options
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Term Length
&lt;/h3&gt;

&lt;p&gt;A Compute Savings Plan is either a 1-year or 3-year commitment. The longer the commitment, the more significant the discount. Committing to a three-year term will generally cause the discount rate to double.&lt;/p&gt;

&lt;h3&gt;
  
  
  Payment Options
&lt;/h3&gt;

&lt;p&gt;Payment terms for Compute Savings Plans determine whether the contract is paid upfront or hourly for the term of the agreement. The more money paid upfront will increase the discount for the Compute Savings Plan. There are three options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;All Upfront - The contract is paid upfront before any usage. All Upfront payment terms provide the highest discount rate.&lt;/li&gt;
&lt;li&gt;Partial Upfront - Half of the contract is paid upfront, and half is paid hourly over the agreement term. Partial upfront is a lower discount rate than All Upfront but a higher discount than No Upfront.&lt;/li&gt;
&lt;li&gt;No Upfront - No money paid upfront and the lowest discount rate. The cost of the contract is paid over the agreement term.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Compute Savings Plan Reservation Calculation
&lt;/h3&gt;

&lt;p&gt;To calculate the compute savings plan commitment your team should make, you need to understand how much for On-Demand usage is in your account. To do that, you can either use the AWS Cost Explorer or query your Cost and Usage Report. For a full walkthrough of how to query your Cost and Usage Report, check out this walkthrough on the &lt;a href="https://developer-cost-guide.projects.macroscope.io/guides/guide-01-costandusagereport/" rel="noopener noreferrer"&gt;Developer's Guide to AWS Costs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once you understand the On-Demand usage in your account, you need to calculate what that usage would cost if a Compute Savings Plan covered the usage.&lt;/p&gt;

&lt;p&gt;For example, let's say that over the last seven days, we had 10,000 hours of m5.large On-Demand usage in the US East, North Virginia Region, needs to be covered with a three-year, All Upfront, Compute Savings plan. To calculate the Compute Savings Plan commitment to cover this usage, we must:&lt;/p&gt;

&lt;p&gt;Multiply the On Demand hours by the Savings Plan rate:&lt;/p&gt;

&lt;p&gt;Compute Savings Plan rate = $0.044&lt;br&gt;&lt;br&gt;
Number of m5.large hours = 10,000&lt;br&gt;
10,000 hours * $0.044 per hour = $440&lt;/p&gt;

&lt;p&gt;Take the $440 for the last seven days, and identify the spend per hour:&lt;br&gt;
$440 for 7 days = $62.85 per day = $2.61 per hour&lt;/p&gt;

&lt;p&gt;Assuming your team wants to cover 100% of this usage, the hourly commitment executed in the AWS Console is $5.71 per hour.&lt;br&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  EC2 Savings Plans
&lt;/h1&gt;

&lt;p&gt;EC2 Savings Plans provide a deeper discount than Compute Savings Plans but only apply to EC2 usage and require you to make a more detailed commitment. EC2 Savings Plans require AWS customers to commit to usage in a specific instance family in an AWS Region. Once this commitment is made, the savings are automatically applied to the instance families you chose, regardless of the instance type.&lt;/p&gt;

&lt;p&gt;The additional restrictions on EC2 Savings Plans require more planning and alignment by engineering teams. Once this commitment is made, it will not automatically be applied if the team decides to change their instance family or to operate in a different region.&lt;/p&gt;

&lt;p&gt;Similar to Compute Savings Plans, an EC2 Savings Plan commitment is made in dollars per hour.&lt;/p&gt;

&lt;h3&gt;
  
  
  EC2 Savings Plan Options
&lt;/h3&gt;

&lt;p&gt;EC2 Savings Plans require the user to select the AWS Region, Instance Family, Term Length, and Payment Option before committing.&lt;/p&gt;

&lt;h3&gt;
  
  
  AWS Region
&lt;/h3&gt;

&lt;p&gt;EC2 Savings Plans commitments are made by Region. For example, a Region could be US East (N. Virginia).&lt;/p&gt;

&lt;h3&gt;
  
  
  Instance Family
&lt;/h3&gt;

&lt;p&gt;EC2 Savings Plans require the user to select an instance family that is covered. For example, this would be 'm5' or 'c5'. It is important to note that EC2 Savings Plans are size flexible, so users can avoid committing to individual instance types.&lt;/p&gt;

&lt;h3&gt;
  
  
  Term Length
&lt;/h3&gt;

&lt;p&gt;Same as with the Compute Savings Plan, the term length options for an EC2 Savings Plan are either 1-year or 3 years. On average, going from a 1-year to a 3-year commitment with EC2 Savings Plans will increase your discount by 50%.&lt;/p&gt;

&lt;h3&gt;
  
  
  Payment Options
&lt;/h3&gt;

&lt;p&gt;Same as the Compute Savings Plan, the payment options for an EC2 Savings Plan are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;All Upfront - The contract is paid upfront before any usage. All Upfront payment terms provide the highest discount rate.&lt;/li&gt;
&lt;li&gt;Partial Upfront - Half of the contract is paid upfront, and half is paid hourly over the agreement term. Partial upfront is a lower discount rate than All Upfront but a higher discount than No Upfront.&lt;/li&gt;
&lt;li&gt;No Upfront - No money paid upfront and the lowest discount rate. The cost of the contract is paid over the agreement term.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  EC2 Savings Plan Reservation Calculation
&lt;/h2&gt;

&lt;p&gt;The calculation for EC2 Savings Plans Reservations is very similar to Compute Savings Plans, except we don't need to worry about Fargate or Lambda usage.&lt;/p&gt;

&lt;p&gt;Let's use the same example of 10,000 hours of m5.large On-Demand usage in the US East North Virginia Region over the past seven days. That usage needs to be covered with a three-year, All Upfront, EC2 Savings plan. To calculate the required Compute Savings Plan commitment for this usage, we must:&lt;/p&gt;

&lt;p&gt;Multiply the On Demand hours by the Savings Plan rate:&lt;br&gt;
Compute Savings Plan rate = $0.036 &lt;br&gt;
Number of m5.large hours = 10,000&lt;br&gt;
10,000 hours * $0.036 per hour = $360&lt;/p&gt;

&lt;p&gt;Take the $360 for the last seven days, and identify the spend per hour:&lt;br&gt;
$360 for 7 days = $51.42 per day = $2.14 per hour&lt;/p&gt;

&lt;p&gt;Assuming your team wants to cover 100% of this usage, the reservation must be $2.14 per hour. The EC2 Savings Plan provides an additional 18% discount compared to the Compute Savings plan.&lt;br&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  Reserved Instances
&lt;/h1&gt;

&lt;p&gt;Reserved Instances are the previous generation of Reservations offered by Amazon Web Services. Reserved Instances are still alive and well, but require significantly more overhead than Compute or EC2 Savings Plans.&lt;/p&gt;

&lt;p&gt;Reserved Instances are a commitment made against resources. For example, if you are running 100 m5.large instances, you will need to commit to 100 m5.large reserved instances.&lt;/p&gt;

&lt;p&gt;Amazon offers Reserved Instances for Elastic Compute Cloud (EC2), Relational Database Service (RDS), Elasticache, Amazon OpenSearch, Amazon Redshift, and DynamoDB. All these products require the buyer to choose a Term of 1-year or three years and Payment Options of All Upfront, Partial Upfront, or No Upfront.&lt;/p&gt;

&lt;h2&gt;
  
  
  Elastic Compute Cloud (EC2) Reserved Instances
&lt;/h2&gt;

&lt;p&gt;EC2 Reserved Instances are the most common type of Reserved Instance. EC2 Reserved Instances come in two categories: Standard and Convertible Reserved Instances.&lt;/p&gt;

&lt;p&gt;With the creation of Compute Savings Plans and EC2 Savings Plans, it makes sense for most AWS customers to purchase those products instead of EC2 Reserved Instances. These products offer similar discounts with significantly less developer overhead.&lt;/p&gt;

&lt;h3&gt;
  
  
  Standard Reserved Instances
&lt;/h3&gt;

&lt;p&gt;Standard Reserved Instances lock in a price on instance usage and do not allow the user to change the instance family, operating system, or tenancy of the reservation. If changes need to be made to the AWS availability zone, EC2 instance size, or networking type, you can make those changes via the AWS APIs or in the AWS Management Console.&lt;/p&gt;

&lt;h3&gt;
  
  
  Convertible Reserved Instances
&lt;/h3&gt;

&lt;p&gt;Convertible Reserved Instances offer additional flexibility over Standard Reserved Instances by allowing users to change instance family, operating system, tenancy, and payment options and give customers benefits when infrastructure prices are reduced.&lt;/p&gt;

&lt;h2&gt;
  
  
  Relational Database Service (RDS) Reserved Instances
&lt;/h2&gt;

&lt;p&gt;Relational Database Service (RDS) Reserved Instances significantly discount your RDS usage. AWS customers can not cover RDS with Savings Plans products, so Reserved Instances are your only option.&lt;/p&gt;

&lt;p&gt;Here are some of the key details of RDS Reserved Instances:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RDS Reserved Instances are available for all supported DB Engines and in all AWS Regions.&lt;/li&gt;
&lt;li&gt;Only MySQL, MariaDB, PostgreSQL, Amazon Aurora DB Engines, and BYOL for Oracle offer instance size flexibility. There is no size flexibility for other DB engines, meaning users who have to reserve the exact instance type they plan to use.&lt;/li&gt;
&lt;li&gt;Terms offered for 1 or 3 years&lt;/li&gt;
&lt;li&gt;Payment Options are All Upfront, Partial Upfront, and No Upfront. The No Upfront payment option is only available for a 1-year term for RDS.

&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  All Other Reserved Instances
&lt;/h1&gt;

&lt;p&gt;Amazon Web Services does offer reservation tools for other AWS products: AWS OpenSearch Service, Amazon Redshift, Amazon ElastiCache, and Amazon DynamoDB. These offerings are more complex than any of the reservations we've discussed before and require a deep understanding of the engineering roadmap before committing.&lt;/p&gt;

&lt;h3&gt;
  
  
  AWS OpenSearch Service Reserved Instances
&lt;/h3&gt;

&lt;p&gt;OpenSearch Service Reserved Instances are identical to on-demand instances. They offer a 1 or 3-year commitment with an all upfront, partial upfront, and no upfront payment option.&lt;/p&gt;

&lt;p&gt;OpenSearch Service Reserved Instances are not size-flexible. Suppose a reservation is made for c5.large.search instances that will not cover usage for any c5.2xlarge.search instances.&lt;/p&gt;

&lt;p&gt;For more information about OpenSearch Service Reserved Instances, check out the Reserved Instances in Amazon OpenSearch Service &lt;a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ri.html" rel="noopener noreferrer"&gt;AWS documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Amazon Redshift Reserved Nodes
&lt;/h3&gt;

&lt;p&gt;Amazon Redshift Reserved Nodes offer the ability to reserve nodes in return for a discount. Reserved nodes come in 1 or 3-year commitments with all upfront, partial upfront, and no upfront payment options. Similar to RDS, the no upfront payment option is only available for a 1-year term.&lt;/p&gt;

&lt;p&gt;Redshift Reserved Nodes are not size-flexible. When making a reservation, you must specify the node type you want to be covered. If this node type changes, you will pay on-demand rates for the new nodes and still be charged for your reservation.&lt;/p&gt;

&lt;p&gt;For more information about Redshift Reserved Nodes, check the Purchasing Amazon Redshift reserved nodes &lt;a href="https://docs.aws.amazon.com/redshift/latest/mgmt/purchase-reserved-node-instance.html" rel="noopener noreferrer"&gt;AWS documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Amazon ElastiCache Reserved Nodes
&lt;/h3&gt;

&lt;p&gt;Amazon ElastiCache Reserved Nodes offer customers the ability to reserve Cache node capacity for 1 or 3 years with either an all upfront, partial upfront, or no upfront pricing model. These are available for Redis and Memcached nodes and apply to all AWS Regions.&lt;/p&gt;

&lt;p&gt;To make a reservation, you must select the Region, Term Length, and Cache Node Class, which you cannot change later. There is a maximum purchase limit of 300 cache nodes until you have to request a service level increase manually.&lt;/p&gt;

&lt;p&gt;For more information about Amazon ElastiCache Reserved Nodes, check out the Amazon ElastiCache Reserved Nodes &lt;a href="https://aws.amazon.com/elasticache/reserved-cache-nodes/" rel="noopener noreferrer"&gt;AWS documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Amazon DynamoDB Reserved Capacity
&lt;/h3&gt;

&lt;p&gt;Amazon DynamoDB Reserved Capacity offers significant savings for customers that can predict their read-and-write throughput. Users of DynamoDB Reserved Capacity pay a one-time upfront fee and a minimum usage level for the reservation duration.&lt;/p&gt;

&lt;p&gt;DynamoDb Reserved Capacity only makes sense for AWS customers with extremely predictable DynamoDB usage or who have a minimum amount of usage they want to commit to in return for a slight reduction in spending. There is a big risk that Engineering optimizations could reduce your read-and-write throughput, and you would waste money on your reservation.&lt;/p&gt;

&lt;p&gt;For more information on Amazon DynamoDB Reserved Capacity, check out the Amazon DynamoDB reservations &lt;a href="https://docs.aws.amazon.com/whitepapers/latest/cost-optimization-reservation-models/amazon-dynamodb-reservations.html" rel="noopener noreferrer"&gt;AWS documentation&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>How many AWS Services Can You Name?</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Wed, 12 Oct 2022 15:53:05 +0000</pubDate>
      <link>https://dev.to/brianpregan/how-many-aws-services-can-you-name-52jk</link>
      <guid>https://dev.to/brianpregan/how-many-aws-services-can-you-name-52jk</guid>
      <description>&lt;p&gt;Yesterday, I was having a conversation with my co-founder, &lt;a class="mentioned-user" href="https://dev.to/aryounce"&gt;@aryounce&lt;/a&gt;, and we fell down a rabbit hole of trying to figure out how many AWS Services we could name...&lt;/p&gt;

&lt;p&gt;That conversation + my secret love of Sporcle quizzes led to this:&lt;br&gt;
&lt;/p&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--TfJ6SfwX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1559532994636853256/oBJO0RFB_normal.jpg" alt="Brian Regan profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Brian Regan
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/brianpregan"&gt;@brianpregan&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Think you've spent too much time in &lt;a href="https://twitter.com/hashtag/AWS"&gt;#AWS&lt;/a&gt; lately? &lt;br&gt;&lt;br&gt;What about being able to list the 50 oldest services (still active) by memory?&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/paHnqR381I"&gt;sporcle.com/games/brianreg…&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="https://twitter.com/hashtag/DevOps"&gt;#DevOps&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/SRE"&gt;#SRE&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      15:42 PM - 12 Oct 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1580222299185172480" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1580222299185172480" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1580222299185172480" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;Now, why the 50 oldest AWS Services? Honestly, I wanted to do ALL AWS Services, but that quiz wouldn't be any fun. Who has heard of "AWS Resilience Hub" or who uses "Amazon Corretto" anyway? &lt;/p&gt;

&lt;p&gt;Even if you didn't think of all of these as 'Serivices', I bet you know all these answers.  Give it a shot, and let me know what you think!&lt;/p&gt;

&lt;p&gt;Quiz Link: &lt;a href="https://www.sporcle.com/games/brianregan/50-aws-services"&gt;50 Oldest AWS Services (still active)&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>sre</category>
      <category>challenge</category>
      <category>devops</category>
    </item>
    <item>
      <title>What is EC2-Other?</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Tue, 20 Sep 2022 15:20:02 +0000</pubDate>
      <link>https://dev.to/brianpregan/what-is-ec2-other-2oi6</link>
      <guid>https://dev.to/brianpregan/what-is-ec2-other-2oi6</guid>
      <description>&lt;h3&gt;
  
  
  This post was originally posted on &lt;a href="https://getstrake.com/blog/what-is-ec2-other"&gt;getStrake.com&lt;/a&gt;.
&lt;/h3&gt;




&lt;p&gt;EC2-Other is a cost category calculated by Amazon that causes a lot of heartburn for the Engineering community. If you are a heavy EC2 user, this could be your second largest cost category on your AWS Bill.&lt;/p&gt;

&lt;p&gt;This post will dive into this category to help AWS users understand what they are getting billed for and how to isolate individual cost categories within 'EC2-Other'.&lt;/p&gt;




&lt;h2&gt;
  
  
  Understanding EC2 Costs
&lt;/h2&gt;

&lt;p&gt;Before we can unpack what costs live in the 'EC2-Other' category, you have to understand what this category means to total EC2 costs and how EC2 costs are calculated in various AWS reporting tools.&lt;/p&gt;

&lt;p&gt;After researching this problem, I put together this table for how different AWS reporting tools display total EC2 costs. Below the table, I summarize the different reporting methodologies and how these values relate. Please note that this is only true for on-demand EC2 usage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Calculating Total EC2 Costs&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;AWS Bill&lt;/th&gt;
&lt;th&gt;CUR (ServiceCode)&lt;/th&gt;
&lt;th&gt;AWS Cost Explorer&lt;/th&gt;
&lt;th&gt;CUR (ProductCode)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Elastic Compute Cloud&lt;/td&gt;
&lt;td&gt;AmazonEC2&lt;/td&gt;
&lt;td&gt;EC2-Instances&lt;/td&gt;
&lt;td&gt;AmazonEC2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Transfer (partial)&lt;/td&gt;
&lt;td&gt;AWSDataTransfer (partial)&lt;/td&gt;
&lt;td&gt;EC2-Other&lt;/td&gt;
&lt;td&gt;AmazonEC2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  AWS Bill
&lt;/h3&gt;

&lt;p&gt;The AWS Bill category 'Elastic Compute Cloud' combines EC2 instance running costs, NAT Gateway, EBS, and all EC2 costs &lt;strong&gt;except data transfer&lt;/strong&gt;. A second category in the AWS Bill called 'Data Transfer' combines data transfer costs for many different AWS Services. Unfortunately, EC2 Data Transfer costs cannot be isolated using only your AWS Bill.&lt;/p&gt;

&lt;h3&gt;
  
  
  AWS Cost Explorer
&lt;/h3&gt;

&lt;p&gt;When you search for 'EC2' under 'Service' in Cost Explorer, there are four options that come up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EC2-Instances (Elastic Compute Cloud - Compute)&lt;/li&gt;
&lt;li&gt;EC2-Other&lt;/li&gt;
&lt;li&gt;EC2-ELB (Elastic Load Balancing)&lt;/li&gt;
&lt;li&gt;EC2 Container Registry (ECR)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first two combined, EC2-Instances and EC2-Other, make up your total EC2 costs (including data transfer for EC2). The second two, EC2-ELB and EC2 Container Registry, can be ignored because they are different services altogether.&lt;/p&gt;

&lt;p&gt;The EC2-Instances category isolates the hourly cost of running your EC2 instances. One of the benefits of this category is that customers can quickly identify the instance costs that can be covered with reservations. EC2-Other is a calculation that combines all other costs driven by EC2 usage: EBS, NAT Gateway, EC2's portion of Data Transfer, and others.&lt;/p&gt;

&lt;p&gt;With these two categories, EC2-Instances and EC2-Other, customers can get the total cost of running their EC2 instances. However, since this cost includes EC2's portion of data transfer costs, this will not be the same as the AWS Bill's cost for 'Elastic Compute Cloud' if there is any data transfer cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  AWS Cost and Usage Report (CUR)
&lt;/h3&gt;

&lt;p&gt;The CUR is the source of truth for all AWS billing. In the Developer's Guide to AWS, I go into much more detail about the CUR, provide a data dictionary, and share instructions for setting up the CUR in your AWS Account.&lt;/p&gt;

&lt;p&gt;For this discussion about EC2-Other costs, there are two fields that matter:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;[lineItem/ProductCode] - the value 'AmazonEC2' captures all costs associated with running EC2 instances (including Data Transfer).&lt;/li&gt;
&lt;li&gt;[product/ServiceCode] - the valued 'AmazonEC2' will show all EC2 costs other than Data Transfer, and 'AWSDataTransfer' is used for data transfer costs by any AWS Service.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Data Sources Key Takeaways
&lt;/h3&gt;

&lt;p&gt;There are three key takeaways from the different AWS data sources before we dig into the cost categories that make up EC2-Other.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;EC2-Other is a calculated metric from Cost explorer. This metric calculates the total cost of running your EC2 instances, less the fixed hourly instance running costs.&lt;/li&gt;
&lt;li&gt;If you want to dig into costs for categories on your AWS Bill, the top cost categories on the AWS Bill align to the CUR's [product/ServiceCode] fields:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;AWS Bill Categories&lt;/th&gt;
&lt;th&gt;[product/ServiceCode] Values&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Elastic Compute Cloud&lt;/td&gt;
&lt;td&gt;AmazonEC2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Transfer&lt;/td&gt;
&lt;td&gt;AWSDataTransfer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;The sum of EC2-Instances and EC2-Other from cost explorer:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IS&lt;/strong&gt; equal to [lineItem/ProductCode] is 'AmazonEC2'&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IS NOT&lt;/strong&gt; equal to 'Elastic Compute Cloud' on the AWS Bill because this field does not include EC2's portion of Data Transfer costs.

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Visibility into EC2-Other Costs
&lt;/h2&gt;

&lt;p&gt;In the Developer's Guide to AWS Costs, the first service I posted a guide for was EC2. In this guide, I broke EC2 costs into three logical categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Existence Cost&lt;/strong&gt; - &lt;em&gt;EC2-Instances&lt;/em&gt; in cost explorer - This identifies the cost of having an EC2 instance running regardless of the resource activity. This cost is based on an hourly rate determined by your instance type, region, and whether you're using contractual reservations or spot instances.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Utilization Cost&lt;/strong&gt; - &lt;em&gt;part of&lt;/em&gt; &lt;em&gt;EC2 - Other&lt;/em&gt; in cost explorer - On top of the flat rate for having an instance running, some costs come from how an EC2 instance is utilized. These costs are driven by a usage-based metric such as $ per GB-month. The most common Utilization cost for EC2 is data transfer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subresource Cost&lt;/strong&gt; - &lt;em&gt;the second part of&lt;/em&gt; &lt;em&gt;EC2 - Other&lt;/em&gt; in cost explorer - This is incurred for resources attached to or directly interacting with your EC2 instance. An easy example of EC2 is EBS Volumes used for EC2 instance storage.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I broke down the 'EC2-Other' category from Cost Explorer into Utilization and Subresource costs. Utilization focuses on how your EC2 resources are used, while Subresources isolates other resources (NAT Gateways or EBS Volumes, for example) that contribute to your total EC2 cost.&lt;/p&gt;




&lt;h2&gt;
  
  
  Total EC2-Other Costs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Utilization Costs
&lt;/h3&gt;

&lt;p&gt;To isolate Utilization Cost, use the query below. This query isolates your EC2 instances using the &lt;strong&gt;[lineItem/ResourceId]&lt;/strong&gt; field and filters out types &lt;strong&gt;[lineItem/UsageType]&lt;/strong&gt; and &lt;strong&gt;[lineItem/Operation]&lt;/strong&gt; fields that indicate Existence cost.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;Utilization&lt;/span&gt; &lt;span class="n"&gt;Costs&lt;/span&gt;
&lt;span class="o"&gt;##&lt;/span&gt;&lt;span class="n"&gt;Utilization&lt;/span&gt; &lt;span class="n"&gt;costs&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;EC2&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="k"&gt;operation&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;utilization_cost&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'i-%'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'%BoxUsage%'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'RunInstances%'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'Usage'&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some of the sample values from &lt;strong&gt;[lineItem/Operation]&lt;/strong&gt; that indicate Utilization costs include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VPCPeering-In and VPCPeering-Out - VPC Peering connections between the VPCs allow you to route traffic using private IP Addresses. All VPC Peering connections in the same AWS Region are charged at &lt;strong&gt;$0.01/GB&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;PublicIP-In and PublicIP-Out - These track the costs of transferring data 'in' or 'out' from a public or Elastic IPv4 address. This traffic is charged at &lt;strong&gt;$0.01/GB&lt;/strong&gt; in each direction.&lt;/li&gt;
&lt;li&gt;InterZone-In and InterZone-Out - These are the costs associated with transferring data 'In' or 'Out' of EC2. Data transfer 'In' from the internet is free, but there are charges for data transfer 'out' to either the internet or other AWS Services. If you want to see the costs from AWS that show data transfer costs from EC2 to each region or product, those are posted on the &lt;a href="https://aws.amazon.com/ec2/pricing/on-demand/"&gt;EC2 pricing page&lt;/a&gt; under Data Transfer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you add the &lt;strong&gt;[product/ServiceCode]&lt;/strong&gt; field to the SELECT statement of this query, you will be able to see which costs are categorized as 'AWSDataTransfer' and which are 'AmazonEC2'.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;Utilization&lt;/span&gt; &lt;span class="n"&gt;Costs&lt;/span&gt;
&lt;span class="o"&gt;##&lt;/span&gt;&lt;span class="n"&gt;Utilization&lt;/span&gt; &lt;span class="n"&gt;costs&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;EC2&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;product&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="k"&gt;operation&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ServiceCode&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;utilization_cost&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'i-%'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'%BoxUsage%'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'RunInstances%'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'Usage'&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Subresource Cost
&lt;/h3&gt;

&lt;p&gt;There are three main categories of Subresources customers should have the ability to analyze in more detail:&lt;br&gt;
&lt;strong&gt;EBS Volumes&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EBS volumes are identified by filtering the &lt;strong&gt;[lineItem/ResourceID]&lt;/strong&gt; field for items that contain &lt;em&gt;vol-%&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;There are two main types of costs for EBS Volumes that show up in the &lt;strong&gt;[lineItem/Operation]&lt;/strong&gt; field:

&lt;ul&gt;
&lt;li&gt;IO Usage: read and write costs.&lt;/li&gt;
&lt;li&gt;CreateVolume: costs for creating provisioned EBS Volumes.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;Subresource&lt;/span&gt; &lt;span class="n"&gt;Costs&lt;/span&gt;
&lt;span class="o"&gt;##&lt;/span&gt;&lt;span class="n"&gt;Subresource&lt;/span&gt; &lt;span class="n"&gt;costs&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;EBS&lt;/span&gt; &lt;span class="n"&gt;Volumes&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;subresource_cost&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'vol-%'&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineitem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lineitemtype&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;EBS Volume Snapshots&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EBS volumes are identified by filtering the &lt;strong&gt;[lineItem/ResourceID]&lt;/strong&gt; field for items that contain &lt;em&gt;vol-%&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;There are two main types of costs for EBS Volumes that show up in the &lt;strong&gt;[lineItem/Operation]&lt;/strong&gt; field:

&lt;ul&gt;
&lt;li&gt;IO Usage: read and write costs.&lt;/li&gt;
&lt;li&gt;CreateVolume: costs for creating provisioned EBS Volumes.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;Subresource&lt;/span&gt; &lt;span class="n"&gt;Costs&lt;/span&gt;
&lt;span class="o"&gt;##&lt;/span&gt;&lt;span class="n"&gt;Subresource&lt;/span&gt; &lt;span class="n"&gt;costs&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;EBS&lt;/span&gt; &lt;span class="n"&gt;Volume&lt;/span&gt; &lt;span class="n"&gt;Snapshots&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;subresource_cost&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'%snapshot%'&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineitem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lineitemtype&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;NAT Gateways&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NAT Gateways are identified by filtering the &lt;strong&gt;[lineItem/ResourceID]&lt;/strong&gt; field for items that contain &lt;em&gt;%natgateway%&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;There are many different cost categories for NAT Gateways, but they are primarily driven by data transfer or data processing fees.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;Subresource&lt;/span&gt; &lt;span class="n"&gt;Costs&lt;/span&gt;
&lt;span class="o"&gt;##&lt;/span&gt;&lt;span class="n"&gt;Subresource&lt;/span&gt; &lt;span class="n"&gt;costs&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;NAT&lt;/span&gt; &lt;span class="n"&gt;Gateways&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;subresource_cost&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'%natgateway%'&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineitem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lineitemtype&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>aws</category>
      <category>cloud</category>
      <category>devops</category>
      <category>sql</category>
    </item>
    <item>
      <title>Community Cost and Usage Report Documentation</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Tue, 06 Sep 2022 13:10:34 +0000</pubDate>
      <link>https://dev.to/brianpregan/community-cost-and-usage-report-documentation-3fca</link>
      <guid>https://dev.to/brianpregan/community-cost-and-usage-report-documentation-3fca</guid>
      <description>&lt;p&gt;If you haven’t seen any of my previous posts, I’ve been sharing the work I’ve been doing with the &lt;a href="https://github.com/getstrake/developer-cost-guide"&gt;Developer’s Guide to AWS Costs&lt;/a&gt; on Github. This project shares with SQL code developers can run on their own Cost and Usage Report to learn what exactly is driving costs in their AWS environment.&lt;/p&gt;

&lt;p&gt;I’m always looking for feedback on the project and input on our roadmap in the &lt;a href="https://github.com/getstrake/developer-cost-guide/discussions"&gt;GitHub discussions&lt;/a&gt;. Give us a ⭐️  if you like what you see!&lt;/p&gt;




&lt;h2&gt;
  
  
  CUR Documentation
&lt;/h2&gt;

&lt;p&gt;This week, I added a file to the Developer’s Guide to AWS Costs on GitHub with the goal of building out a more in-depth version of AWS’ cost and usage report data dictionary with input from the developer community. &lt;/p&gt;

&lt;p&gt;Right now, this has the very eloquent name: &lt;a href="https://github.com/getstrake/developer-cost-guide/blob/main/00%20-%20Cost%20and%20Usage%20Report/cur_documentation.md"&gt;Cost and Usage Report Documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aZFBeJKE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j4luxgkd61qh1i5huezv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aZFBeJKE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j4luxgkd61qh1i5huezv.gif" alt="Gif of Morgan Freeman saying 'Fancy'" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the most frequent questions I’ve gotten about the project is ‘how do you know what these fields mean?’.  Unfortunately, the answer has multiple parts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;There is some decent documentation from AWS.&lt;/li&gt;
&lt;li&gt;There are some great authors out there that dive into the specifics of AWS Services. I’ve learned a lot from these folks!&lt;/li&gt;
&lt;li&gt;I’ve been analyzing CUR data for years.. and there are some issues you only learn by messing them up many times 😃&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With this documentation, the goal is to build out definitions and sample values for each of the 200+ fields in the cost and usage report. While this documentation will never be ‘complete’, an engineer can reference the documentation to understand the values they are finding in their own billing data. This should remove a lot of guesswork from understanding AWS costs and save your engineers precious time!&lt;/p&gt;




&lt;h2&gt;
  
  
  The Best Place to Start
&lt;/h2&gt;

&lt;p&gt;In the table below you’ll see there are 7 groups of billing fields. Since there are over 200 fields in total, I decided to start with the Bill, Identity, and Pricing categories to help ground users in the data that describes the CUR itself and AWS’ pricing model.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field Category&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bill&lt;/td&gt;
&lt;td&gt;Up to date&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Identity&lt;/td&gt;
&lt;td&gt;Up to date&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing&lt;/td&gt;
&lt;td&gt;Up to date&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Line Item&lt;/td&gt;
&lt;td&gt;Not Started&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Product&lt;/td&gt;
&lt;td&gt;Not Started&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reservation&lt;/td&gt;
&lt;td&gt;Not Started&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Savings Plan&lt;/td&gt;
&lt;td&gt;Not Started&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you want to see the documentation as it stands today, check out &lt;a href="https://github.com/getmacroscope/developer-cost-guide/blob/main/00%20-%20Cost%20and%20Usage%20Report/cur_documentation.md"&gt;the file here&lt;/a&gt;. Below I’ve added two example fields from the documentation to give an idea of the types of detail I starting with.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  bill/BillingEntity
&lt;/h3&gt;

&lt;p&gt;This is the seller of the services you are being billed for. This can be different from the invoicing entity. There are three possible values for this field:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AWS - Amazon Web Services sells the AWS services.&lt;/li&gt;
&lt;li&gt;AISPL - Amazon Internet Servies Pvt. Ltd which is the local reseller for AWS services in India.&lt;/li&gt;
&lt;li&gt;AWS Marketplace - the AWS Marketplace is the billing entity for any third-party software purchased in the AWS Marketplace.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Sample Values&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;AWS Marketplace&lt;/code&gt;&lt;br&gt;
&lt;code&gt;AWS&lt;/code&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  pricing/PurchaseOption
&lt;/h3&gt;

&lt;p&gt;Purchase option is for reservations and savings plans. There are only three options for purchase reservations that can be populated here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sample Values&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;All Upfront&lt;/code&gt;&lt;br&gt;
&lt;code&gt;Partial Upfront&lt;/code&gt;&lt;br&gt;
&lt;code&gt;No Upfront&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank you!
&lt;/h2&gt;

&lt;p&gt;This is just a start, with much more detail to come. Check out &lt;a href="https://github.com/getstrake/developer-cost-guide"&gt;GitHub&lt;/a&gt; if you’d like to contribute to the project or have questions about anything we’ve shared. Look forward to working with all of you on this project in the future!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>sql</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Stop Recurring AWS Bills</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Tue, 30 Aug 2022 13:38:07 +0000</pubDate>
      <link>https://dev.to/brianpregan/recurring-aws-bills-3k8c</link>
      <guid>https://dev.to/brianpregan/recurring-aws-bills-3k8c</guid>
      <description>&lt;p&gt;Across AWS Social Media the number of users that are stuck with recurring monthly bills is much higher than I thought it would be:&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Dn39hH0C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1224323233513639936/cGAzFo4t_normal.jpg" alt="Andras Szabo 🇭🇺🇩🇪 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Andras Szabo 🇭🇺🇩🇪
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/nomoreconfig"&gt;@nomoreconfig&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      AWS sends me a bill of 0.95 $ every month. But I'm too lazy to figure out why 😂
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      16:07 PM - 10 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1557398315238572033" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1557398315238572033" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1557398315238572033" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--DXNlVIP2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1508787014887477252/IYnHZwsq_normal.jpg" alt="Tanya Reilly profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Tanya Reilly
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @whereistanya
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      After several attempts to stop paying AWS 80c every month I spent an hour searching the console and finally found the stray service I hadn't deleted. And I was *sure* I had it this time until... I just got an AWS bill for 23c. This thing is the goddamn Hotel California.
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      16:32 PM - 03 Jan 2019
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1080864493108776961" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1080864493108776961" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1080864493108776961" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--9Nk3axx7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1313124982147354627/as0oOLTd_normal.jpg" alt="Jonathan Kozolchyk profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Jonathan Kozolchyk
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @seakoz
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      My personal AWS bill is $0.13 every month. I put some stuff in S3 a long time ago and don't remember what. Wedding photos maybe? It's going to have to get a lot more expensive before I go looking.
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      21:43 PM - 04 Mar 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1367591450616029189" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1367591450616029189" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1367591450616029189" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--vhRTBgLg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1500248375312232456/wjgWOiLE_normal.jpg" alt="isai.btc profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        isai.btc
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @isaibcortez
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      I got random AWS messages on Saturday didn’t think anything of it. All of a sudden I got hit with a $9k and $2k AWS elastic compute bill for Friday / Saturday, but my devs didn’t work those days. &lt;a href="https://twitter.com/AWSSupport"&gt;@AWSSupport&lt;/a&gt; please help 😖😖😖 my average is $450 per month 😭😭😭
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      23:13 PM - 08 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1556780608394629120" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1556780608394629120" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1556780608394629120" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;For those who find themselves in this trap, here are some basic steps you can take to finally stop these recurring bills or find what is driving your cost spike.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reminder: ALWAYS Set up MFA
&lt;/h2&gt;

&lt;p&gt;Take a few minutes, go to &lt;a href="https://www.reddit.com/r/aws/"&gt;r/aws&lt;/a&gt;, and look at the posts over the past week. I bet at least one post sounds like this: "help, I've been hacked, and someone spent thousands of dollars on my account!!". &lt;a href="https://www.reddit.com/r/aws/comments/wq6ofx/aws_billing_adjustment_taxes_still_in_bill/"&gt;Here's one&lt;/a&gt; if you aren't able to find any on your own. &lt;/p&gt;

&lt;p&gt;The first question is: "Have you set up MFA on your account?"&lt;br&gt;
The answer is ALWAYS: "No."&lt;/p&gt;

&lt;p&gt;Don't be one of the people begging AWS to refund $5K in usage because you didn't set up MFA! What if AWS stops canceling bills from 'hackers' if you don't have MFA? You don't want to be stuck holding someone else's bar tab. Setting up MFA will take ~5 minutes and could save you thousands of dollars or a major headache.&lt;/p&gt;


&lt;h2&gt;
  
  
  Create a Cost and Usage Report
&lt;/h2&gt;

&lt;p&gt;The first step to fixing a cost problem is figuring out what is driving your cost problem. To do this, you need visibility into what is running in your environment. The Cost and Usage Report is the best resource for AWS users to get visibility into what is running in their accounts.&lt;/p&gt;

&lt;p&gt;The Cost and Usage Report (CUR) is the most detailed billing report Amazon has to offer. You can see a line item for every resource, for every hour during a month, with over 100 fields that describe the resources, resource operations, and pricing structure. The CUR contains the same data that drives visualization in Cost Explorer (we all know &lt;a href="https://dev.toinsert%20link%20for%20post"&gt;it isn't a good idea to rely on Cost Explorer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In my GitHub project, the &lt;a href="https://github.com/getstrake/developer-cost-guide"&gt;Developer's Guide to AWS Costs&lt;/a&gt;, I created a &lt;a href="https://developer-cost-guide.projects.macroscope.io/guides/guide-01-costandusagereport/"&gt;guide for creating and analyzing your Cost and Usage Report&lt;/a&gt;. There is no cost to create a CUR. The only fee you will incur is for s3 storage. This cost will scale with the size of your business: for an individual account or startup, this will be ~$1 per month. This cost would still be less than $~25 per month for large enterprise AWS customers. &lt;/p&gt;

&lt;p&gt;To be clear, For an individual user looking to get rid of their lingering AWS costs, this report running for a single day would be less than $0.01 in storage costs. Pay $0.01 for getting rid of a $5 recurring monthly bill? Yes, please!&lt;/p&gt;


&lt;h2&gt;
  
  
  How to Find the Resources
&lt;/h2&gt;

&lt;p&gt;With the cost and usage report active, here are two straightforward SQL queries to investigate which resources are driving your costs.&lt;/p&gt;

&lt;p&gt;First, this query is a high-level summary of the costs for a particular account by AWS Service. Use this query as a high-level view to figure out which AWS Services need to be investigated further.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageAccountID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;cur&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageAccountID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we understand which services are causing our cost issue. Next, we can add the [lineItem/ResourceID] field to see a list of all the resources that are still running. For this example, we are filtering for all EC2 Resources.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceID&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;cur&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceID&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some costs in AWS aren't tied to a resource (of course), so if that last query wasn't able to answer your question, we could replace the [lineItem/ResourceID] field with [lineItem/Operation] and [lineItem/UsageType] to describe the cost categories that are driving cost.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageAccountID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;cur&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageAccountID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The two queries above aggregate costs for the duration of your report. Adding in the [lineItem/UsageStartDate] field will show costs by hour. This field adds a lot of detail to the report and will help you determine if this is a monthly service charge or a recurring fee for usage.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageStartDate&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageAccountID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;cur&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageAccountID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The Last Step
&lt;/h2&gt;

&lt;p&gt;Once you figure out and terminate the straggling resources, the last two things you will need to do are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Delete your Cost and Usage Report&lt;/li&gt;
&lt;li&gt;Delete the S3 bucket where your Cost and Usage Report is stored.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Delete the Cost and Usage Report
&lt;/h3&gt;

&lt;p&gt;Search for 'billing' to go to the billing console and click on 'Cost &amp;amp; Usage Reports' on the left banner of your screen. Once on this screen, you will see all the active Cost and Usage Reports in your account. Select the report you created, and click on the 'delete' button (see the screenshot below).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JMq1lXy4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mx4j5p6ogitmems6io75.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JMq1lXy4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mx4j5p6ogitmems6io75.jpg" alt="Find and delete your cost and usage report" width="880" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Delete the S3 bucket.
&lt;/h3&gt;

&lt;p&gt;Search for S3 to go to the S3 console. Once in the S3 console, look for the S3 bucket where your S3 bucket is being saved. Once this bucket is empty, you can select the bucket and click 'Delete'. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Tmo8VHn_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/41y8agyel62jts1xfjpq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Tmo8VHn_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/41y8agyel62jts1xfjpq.jpg" alt="Find the S3 bucket where your CUR is stored" width="880" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clicking 'delete' will open a new screen where you must type the bucket's name and confirm you want to delete the s3 bucket. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--su2pK1QH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/locxrtmij8ongpkr5f4j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--su2pK1QH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/locxrtmij8ongpkr5f4j.jpg" alt="delete your s3 bucket" width="880" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Billing Freedom
&lt;/h2&gt;

&lt;p&gt;These steps will allow you to see what you're being billed for and have the information you need to stop these recurring AWS bills. If you want a more detailed analysis of your favorite AWS services, check out our &lt;a href="https://github.com/getstrake/developer-cost-guide"&gt;project on GitHub&lt;/a&gt;. If there are any questions about this process, let me know in the comments below ⬇️.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Content powered by &lt;a href="https://getstrake.com"&gt;Strake&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>sre</category>
      <category>devops</category>
      <category>s3</category>
    </item>
    <item>
      <title>Cost Explorer Isn't the Answer</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Tue, 23 Aug 2022 14:45:00 +0000</pubDate>
      <link>https://dev.to/brianpregan/cost-explorer-isnt-the-answer-18o0</link>
      <guid>https://dev.to/brianpregan/cost-explorer-isnt-the-answer-18o0</guid>
      <description>&lt;p&gt;I recently launched and started sharing the &lt;a href="https://github.com/getstrake/developer-cost-guide" rel="noopener noreferrer"&gt;Developer's Guide to AWS&lt;/a&gt;. The Developer's Guide to AWS is my open-source project where I'm sharing techniques for analyzing AWS billing data using SQL.&lt;/p&gt;

&lt;p&gt;The feedback I've gotten from the development community has been incredible. I appreciate the time people have taken to check out the code and provide some input on the roadmap!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcf4k5y3rlolzvw7eqk28.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcf4k5y3rlolzvw7eqk28.gif" alt="Thank you!"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're interested in following the project and providing some feedback, you can &lt;a href="https://github.com/getstrake/developer-cost-guide" rel="noopener noreferrer"&gt;check it out on GitHub&lt;/a&gt;. If you like the analysis, give us a star ⭐️!&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Not Cost Explorer?
&lt;/h2&gt;

&lt;p&gt;One piece of feedback I've been getting pretty regularly is: "Why can't you just use Cost Explorer?" (check out this &lt;a href="https://www.reddit.com/r/aws/comments/wefq7m/developers_guide_to_aws_costs/" rel="noopener noreferrer"&gt;Reddit thread&lt;/a&gt;). I decided to summarize my opinions here so I can share this post instead of having to explain the reasoning every time I get this question in the future. 🤣&lt;/p&gt;

&lt;p&gt;A little background on me: I'm a co-founder of &lt;a href="https://www.getstrake.com" rel="noopener noreferrer"&gt;Strake&lt;/a&gt;, and before this, I worked with companies helping finance and engineering teams understand their AWS billing. One of the biggest problems for AWS customers across the board is a lack of real cost visibility. &lt;/p&gt;

&lt;p&gt;The truth is, your engineering teams can't understand and fix a cost problem if they don't have access to the right data. I've seen startups and multi-billion dollar enterprises trying to manage their costs using Cost Explorer, and here are some of the biggest problems we've encountered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exports, exports, and more exports.&lt;/li&gt;
&lt;li&gt;What is EC2-Other?&lt;/li&gt;
&lt;li&gt;Where are my reservations?

&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Exports, exports, and more exports
&lt;/h2&gt;

&lt;p&gt;The single most significant drawback of Cost Explorer is the lack of the ability to filter data &amp;amp; visualizations by more than one variable. &lt;/p&gt;

&lt;p&gt;Let's say, for example, I have 10 AWS accounts, and I want to understand my on-demand costs by AWS Service for each of my 10 accounts. I would not be able to do that in a single Cost Explorer visualization. My options are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create views for each AWS Account, grouped by Service&lt;/li&gt;
&lt;li&gt;Create views for each Service, grouped by AWS Account.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For this simple example, a user would have to create a minimum of 10 views, export those views to CSV, combine the data and make a visualization. This process is a massive waste of engineering time when you compare all that work to this simple query from your cost and usage report:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;

&lt;span class="o"&gt;##&lt;/span&gt;&lt;span class="k"&gt;On&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;demand&lt;/span&gt; &lt;span class="n"&gt;costs&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;Account&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AWS&lt;/span&gt; &lt;span class="n"&gt;Service&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageAccountID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;cur&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageAccountID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Can you get to the correct answer using Cost Explorer? Yes, eventually. I will argue all day that creating these views, exporting the data, and combining the reports in Excel is not a valuable exercise for anyone in your company.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4x9o1oh0fx9x3oaf5o9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4x9o1oh0fx9x3oaf5o9.png" alt="Cost Explorer wasting my time Meme"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is EC2-Other?
&lt;/h2&gt;

&lt;p&gt;I love EC2-Other because we've all been in conference rooms when bad decisions were made. I like to think EC2-Other was discussed back in 2006 as a placeholder, and here we are in 2022 STILL trying to figure out what it means. &lt;/p&gt;

&lt;p&gt;First, it's good to discuss which costs are considered EC2-Other. I go into more detail on this topic in my first &lt;a href="https://getstrake.com/blog/aws-cost-analysis-amazon-ec2-costs#ebs" rel="noopener noreferrer"&gt;EC2 code guide&lt;/a&gt;, but here is the summary:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;EBS volumes and snapshots&lt;/li&gt;
&lt;li&gt;Nat Gateway resources and fees&lt;/li&gt;
&lt;li&gt;Data Transfer costs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So now that we know what costs we're looking for, how can we break down these cost categories in Cost Explorer? It is possible to get the correct answer in Cost Explorer if you manually filter the 'Usage Type' and 'Usage Type Group' fields for each EC2-Other cost type. Then you would repeat the process: create views for each cost category, export the data from those views to CSV, and develop visualizations as required.&lt;/p&gt;

&lt;p&gt;To circumnavigate all this work, I've written queries for the Cost and Usage Report that break down the various categories of EC2-Other costs. This query is an example of how to isolate EBS Snapshot costs:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;

&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;Subresource&lt;/span&gt; &lt;span class="n"&gt;Costs&lt;/span&gt;
&lt;span class="o"&gt;##&lt;/span&gt;&lt;span class="n"&gt;Subresource&lt;/span&gt; &lt;span class="n"&gt;costs&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;EBS&lt;/span&gt; &lt;span class="n"&gt;Volume&lt;/span&gt; &lt;span class="n"&gt;Snapshots&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;subresource_cost&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'%snapshot%'&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceID&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineitem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lineitemtype&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Unfortunately, EC2-Other isn't going anywhere. Fortunately, using the CUR instead of Cost Explorer, we can circumnavigate the issue and get to the bottom of what we are really being charged for.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where are my Reservations?
&lt;/h2&gt;

&lt;p&gt;One of the most confusing things I've seen engineering teams try to overcome is the lack of visibility to where their reservations are being applied. Making commitments in AWS is one of the few ways to keep AWS costs manageable. These commitments come in three primary forms: EDPs, Reserved Instances, and Savings Plans. &lt;/p&gt;

&lt;p&gt;For another example: an AWS customer with 1 management account and 9 member accounts makes reservations on their EC2 usage. This reservation is made in the management account, so the cost savings can be applied to all AWS accounts. How does this actually show up in Cost explorer?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The monthly cost of the reservations would hit the management account, even if the reservation was used by a member account.&lt;/li&gt;
&lt;li&gt;Any reservation usage in the member accounts shows up as $0.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a massive problem for engineering cost visibility. Overnight, some engineers will see their costs drop by $0, while others will not get any benefit from the reserved instances being purchased. The only answer for this get using Cost Explorer would be pulling EC2 instance hours by instance type for every account and reverse-engineering a $-per-hour rate that can be applied to the EC2 usage. I've done this before, and it is terrible. &lt;/p&gt;

&lt;p&gt;A much easier solution would be to use this query on your CUR. This query breaks out the usage by instance type and region for each of the EC2 pricing models (on-demand, spot, reserved instance, and savings plans).&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;

&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;Total&lt;/span&gt; &lt;span class="n"&gt;existence&lt;/span&gt; &lt;span class="n"&gt;cost&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;EC2&lt;/span&gt;
&lt;span class="o"&gt;##&lt;/span&gt;&lt;span class="n"&gt;Total&lt;/span&gt; &lt;span class="n"&gt;existence&lt;/span&gt; &lt;span class="n"&gt;cost&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;resource&lt;/span&gt; &lt;span class="n"&gt;ID&lt;/span&gt;
&lt;span class="k"&gt;WITH&lt;/span&gt; &lt;span class="n"&gt;on_demand_existence&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;existence_cost&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;instanceType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;""&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'Usage'&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'%BoxUsage%'&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'RunInstances%'&lt;/span&gt;
    &lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;spot_existence&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;existence_cost&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;instanceType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;""&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'Usage'&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'%SpotUsage%'&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'RunInstances%'&lt;/span&gt;
    &lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;reserved_existence&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;reservation&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;EffectiveCost&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;existence_cost&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;instanceType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;""&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'DiscountedUsage'&lt;/span&gt;
    &lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;savings_plan_existence&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;SELECT&lt;/span&gt; 
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;savingsPlan&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;SavingsPlanEffectiveCost&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;existence_cost&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt;
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;instanceType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;""&lt;/span&gt;
        &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'SavingsPlanCoveredUsage'&lt;/span&gt;
    &lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; 
        &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineitem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;instanceType&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;region&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;on_demand_existence&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;on_demand_existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;spot_existence&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;spot_existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reserved_existence&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;reserved_existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;savings_plan_existence&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;savings_plan_existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;on_demand_existence&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;spot_existence&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reserved_existence&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;savings_plan_existence&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;existence_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;total_existence_cost&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
&lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; 
    &lt;span class="n"&gt;on_demand_existence&lt;/span&gt;
    &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;on_demand_existence&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; 
    &lt;span class="n"&gt;spot_existence&lt;/span&gt;
    &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;spot_existence&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; 
    &lt;span class="n"&gt;reserved_existence&lt;/span&gt;
    &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;reserved_existence&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; 
    &lt;span class="n"&gt;savings_plan_existence&lt;/span&gt;
    &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;savings_plan_existence&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; 
    &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;instanceType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;""&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineitem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;""&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;lineitem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ResourceId&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;instanceType&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;CUR&lt;/span&gt;&lt;span class="p"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;region&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="n"&gt;total_existence_cost&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Cost Explorer does not meet the engineering teams' need to understand costs. The three examples discussed in this blog represent three significant roadblocks that create unnecessary work for engineering teams. &lt;/p&gt;

&lt;p&gt;Any engineer can easily replace Cost Explorer for free by creating a Cost and Usage Report and doing your own SQL analysis. If there are any specific cost problems your team is fighting, let me know in the comments, and I'll add the analysis to the &lt;a href="https://github.com/getstrake/developer-cost-guide" rel="noopener noreferrer"&gt;Developer's Guide to AWS Costs&lt;/a&gt; project!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Content powered by &lt;a href="https://getstrake.com" rel="noopener noreferrer"&gt;Strake&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>sre</category>
      <category>devops</category>
      <category>sql</category>
    </item>
    <item>
      <title>It's a Trap? (EC2 Spot Instances)</title>
      <dc:creator>Brian</dc:creator>
      <pubDate>Thu, 18 Aug 2022 14:15:00 +0000</pubDate>
      <link>https://dev.to/brianpregan/its-a-trap-ec2-spot-instances-32a4</link>
      <guid>https://dev.to/brianpregan/its-a-trap-ec2-spot-instances-32a4</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TLDR: Spot is an opportunity for big savings with no commitment, but costs are unpredictable. Be wary of using Spot too much and driving the price up on yourself (not kidding). Check out the guide on our &lt;a href="https://getstrake.com/blog/aws-cost-analysis-amazon-ec2-costs#spot" rel="noopener noreferrer"&gt;website&lt;/a&gt; to analyze your own spot usage.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Is it a Trap?
&lt;/h2&gt;

&lt;p&gt;All jokes aside, AWS does a great job marketing EC2 Spot Instances. When you do a quick google search, the promise of 'up to 90% savings' is thrown on the table. Who isn't going to click on that?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd9qno8fxys3m0ygr70dw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd9qno8fxys3m0ygr70dw.png" alt="Google search for Spot Instances"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best part? This is &lt;u&gt;technically&lt;/u&gt; true. There are times when you can get massive discounts using spot instances. So why would AWS do this?&lt;/p&gt;

&lt;p&gt;Take a moment and think about how much time and energy has been spent trying to forecast cloud usage or the server needs at your own data center. To say the least, this is a painful process. To say more, we (read: I) never get it right.&lt;/p&gt;

&lt;p&gt;So how can AWS promise international availability for hundreds of services to millions of customers? If you strip AWS' business model down to the core, they are the foremost data center capacity planning experts. However, even the experts need to build some cushion into their plan every once in a while. For EC2, when there is excess capacity, that is sold on the market as Spot Instances.&lt;/p&gt;

&lt;p&gt;The thought process from AWS is probably: We already bought it, might as well try to get &lt;strong&gt;some&lt;/strong&gt; money for it! &lt;/p&gt;

&lt;h2&gt;
  
  
  How do you use Spot Instances
&lt;/h2&gt;

&lt;p&gt;You submit a 'Spot Fleet Request' when you want to use spot instances. This request contains the following parameters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AMI&lt;/li&gt;
&lt;li&gt;Target capacity (# of instances)

&lt;ul&gt;
&lt;li&gt;Maintain target capacity? Allow AWS to automatically replace interrupted Spot Instances&lt;/li&gt;
&lt;li&gt;Set a maximum cost for Spot Instances&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Network and AZ details&lt;/li&gt;
&lt;li&gt;Instance type requirements: either specify the instance type or the compute requirements for your workload&lt;/li&gt;
&lt;li&gt;Select an allocation strategy&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once all these parameters are filled out, you will be given a 'Fleet Strength' score to describe how likely you will find a match.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does Spot Compare?
&lt;/h2&gt;

&lt;p&gt;On average, here is what you should expect financially from Spot Instances:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Average of 70% discount when comparing Spot to On-Demand pricing.&lt;/li&gt;
&lt;li&gt;Average additional 10% discount when comparing Spot with 3yr no-upfront Compute Savings Plans and NO COMMITMENT&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I said on average because the fun part about spot instances is how frequently the pricing can change! &lt;/p&gt;

&lt;p&gt;The harsh fact about Spot is there is only so much excess EC2 capacity. The more customers try to use Spot instances, the higher the price goes (classic supply and demand economics). Check out this example from the Spot Instance pricing history tool in the EC2 console that highlights the pricing variance over the last three months. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0o97t69k6owqaqbkxnsa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0o97t69k6owqaqbkxnsa.png" alt="Spot instance price variance"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are two key takeaways from this image:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You will &lt;strong&gt;sometimes&lt;/strong&gt; get a better discount for Savings Plans than Spot.&lt;/li&gt;
&lt;li&gt;This price is highly variable. This will throw your team for a loop when you're trying to figure out what your costs will be in the future.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you're using your &lt;a href="https://getstrake.com/blog/cost-and-usage-report-setup" rel="noopener noreferrer"&gt;cost and usage report&lt;/a&gt; for cost analysis, I've written some SQL code to help you identify your spot instance rates over time:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;Spot&lt;/span&gt; &lt;span class="n"&gt;existence&lt;/span&gt; &lt;span class="n"&gt;cost&lt;/span&gt;
&lt;span class="o"&gt;##&lt;/span&gt;&lt;span class="n"&gt;Spot&lt;/span&gt; &lt;span class="n"&gt;existence&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="k"&gt;usage&lt;/span&gt; &lt;span class="k"&gt;start&lt;/span&gt; &lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;instance&lt;/span&gt; &lt;span class="k"&gt;type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;region&lt;/span&gt;

&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageStartDate&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;instanceType&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;region&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageAmount&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;spot_rate&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;CUR&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ProductCode&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'AmazonEC2'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;instanceType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;""&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;LineItemType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="s1"&gt;'Usage'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageType&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'%SpotUsage%'&lt;/span&gt;
    &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Operation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'RunInstances:SV%'&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;instanceType&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageStartDate&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;region&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UnblendedCost&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;lineItem&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;UsageAmount&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  When to use Spot Instances:
&lt;/h2&gt;

&lt;p&gt;Spot instances are a no-brainer for dev clusters, research projects, and short-term workloads that don't have a tight deadline. You can set a cost target, pick from various instance types, and allow AWS to interrupt (pause) your work when the price gets too high. The work will eventually get done, and you will come in under budget.&lt;/p&gt;

&lt;p&gt;The real opportunity is for the engineers who build an architecture that can handle some of their infrastructure running on spot instances. The combination of Spot, On-Demand, and Savings Plans will provide the optimal balance of low-cost and reliable infrastructure. &lt;/p&gt;

&lt;p&gt;If you can do this successfully, your biggest problem will become your own spot usage throwing off the supply/demand equation and increasing your own costs. Think about that one for a bit..&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Content Powered by &lt;a href="https://getstrake.com" rel="noopener noreferrer"&gt;Strake&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>sre</category>
      <category>ec2</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
