{"id":19506,"date":"2021-05-05T10:09:04","date_gmt":"2021-05-05T16:09:04","guid":{"rendered":"https:\/\/www.fullcontact.com\/?p=19506"},"modified":"2022-04-19T07:31:29","modified_gmt":"2022-04-19T13:31:29","slug":"fullcontact-engineering-cost-savings-and-saving-our-bacon","status":"publish","type":"post","link":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/","title":{"rendered":"FullContact Engineering: Cost Savings and Saving Our Bacon"},"content":{"rendered":"<h2>Why Engineers Need to Consider the Cost of Cloud Computing<\/h2>\n<p><span style=\"font-weight: 400;\">One of the benefits of cloud computing is the ease with which engineers can spin up infrastructure and achieve business goals rapidly. It\u2019s also one of the shortcomings, especially when cloud providers make pricing confusing to understand as you start to use more and more services. The ability to spin up resource waste in seconds with a single `terraform apply` or button press is a battle every company has, whether they acknowledge it or not. Some companies are even creating <\/span><a href=\"https:\/\/www.techrepublic.com\/article\/finops-public-cloud-spend-is-seeing-massive-adoption\/\"><span style=\"font-weight: 400;\">dedicated roles and teams<\/span><\/a><span style=\"font-weight: 400;\"> to control cloud costs.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">I believe concepts like DevOps and FinOps are primarily cultural challenges. In the case of FinOps, this means that cloud costs are ideally everyone&#8217;s concern. While engineers shouldn\u2019t concern themselves with the total monthly costs, we can and should think about the solutions we create from a cost perspective&#8211;and it doesn\u2019t hurt to know what that monthly cost is either.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Anecdotally, it\u2019s been my observation that most engineering departments consider costs only when needed, and in some places, it\u2019s often never truly challenged by the business. While the Finance team will point out irregularities and challenge the need for exceeding our budget in a given month or two real lasting change does not usually occur as a result. Instead of being reactionary, we are now striving to engage in a way where costs are a consideration for solutions to our business challenges. When the cost of a solution becomes just another standard constraint through which we process our solutions, we adapt to hit the targets as best as possible.\u00a0\u00a0<\/span><\/p>\n<h4>Enter Project \ud83e\udd53<\/h4>\n<p><span style=\"font-weight: 400;\">As the world began to face financial uncertainty brought on by a global pandemic in early 2020, it was apparent that our cloud spend was on the rise and needed to be addressed in a more focused way than the occasional cost optimization here and there. We needed a concerted effort on cost savings that would make a meaningful and lasting impact. \u201cProject Bacon\u201d was born to save the company\u2019s bacon.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It was decided that Project Bacon would be a one-week project, similar to a company hackathon where the entire engineering team would focus on how to save and reduce costs on their team. Like a hackathon, we brainstormed a list of ideas and projects for the teams to work on and let each engineer choose the team they wanted to be part of.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The brainstorming resulted in over 30 different savings opportunities that we organized into 8 different categories (or squads for teams to work on):<\/span><\/p>\n<h4>Object Storage and Cleanup<\/h4>\n<p><span style=\"font-weight: 400;\">Object storage (S3) can easily become one of the largest cost drivers in your AWS account. As part of the project-bacon initiative, we had each team take a detailed look at its S3 usage and consider what data was necessary and what data could be cleaned up. In many of these cases, we found large data sets we could simply delete. In other cases, we applied <\/span><a href=\"https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/object-lifecycle-mgmt.html\"><span style=\"font-weight: 400;\">lifecycle policy rules<\/span><\/a><span style=\"font-weight: 400;\"> to clean up and delete data after a certain period of time. The combination of manual cleanup and lifecycle rules accounted for the majority of our cost savings during the initial project-bacon.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">While it is best practice to create lifecycle rules on all of your important S3 prefixes there are times you either have so many prefixes to manage or you are not sure what the rules should be. In cases like this, you can opt to use the S3 Intelligent Access Tiering (IAT). When this tier is applied to your objects AWS will track how often your objects are accessed and attempt to keep them either in Standard or Infrequent Access to give you the best overall price. AWS charges a fee in order to keep track of this data but in general once this is applied you should start to realize savings after the first 30 days. We found that when we applied IAT to a bucket with more than 500 TB of Standard objects we saw a higher cost the first month as everything was being analyzed, but after the first month when the majority of objects were transitioned to infrequent access (IAT-IA) we saw approximately an <\/span><b><i>18% cost savings<\/i><\/b><span style=\"font-weight: 400;\"> on that bucket.<\/span><\/p>\n<h4>Rightsizing and Modernizing<span style=\"font-weight: 400;\">\u00a0<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Each time AWS comes out with a new generation of EC2 instances they usually offer an incentive to upgrade to the newer ones through more competitive pricing (for example m4 to m5 instance types). While FullContact tends to stay on the latest family of instances there are times that instances are left running on the old family. Updating to the newer instance family and ensuring you are not using oversized instances (ones with more CPU or memory than your service requires) can result in large cost savings.<\/span><\/p>\n<h4>Reserved Instances<\/h4>\n<p><span style=\"font-weight: 400;\">Making use of Reserved Instances (RIs) and the newer method of Savings Plans you can save a significant amount on your compute by making an upfront commitment to AWS on how much you will use over the next one or three years. One of our weekly scorecard metrics we track is the percent of non-on-demand compute usage ((RI costs + Savings Plan Costs + Spot Costs) \/ Total Costs). Our goal is for this number<\/span><b><i> never to dip below 95%<\/i><\/b><span style=\"font-weight: 400;\">. We keep this metric in check by making sure that we renew Reserved Instances and Savings Plans when necessary and that large dynamic workloads are all running on Spot.\u00a0<\/span><\/p>\n<h4>EMR Reducers<\/h4>\n<p><span style=\"font-weight: 400;\">We use Elastic Map Reduce (EMR) Spark to run several of our Identity Graph and Batch file export jobs. While it is convenient to be able to spin up large clusters to instantly work on a certain project this flexibility can also lead to a lot of variability in our monthly spend. As part of this initiative we focused on looking for ways for each Spark cluster to become even more efficient including:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Using more cost-effective instance types<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Auto-scaling clusters<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ensuring each EMR cluster is tagged with Team and Project keys<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tuning Spark jobs to use only the memory and CPU they need to get the job done,<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Running Spark on Kubernetes (EMR on EKS) to have more ephemeral clusters that can scale when needed.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">The subject of tuning EMR is still ongoing and could be the subject of its own dedicated blog in the future.<\/span><\/p>\n<h4>Product Cleanup<span style=\"font-weight: 400;\">\u00a0<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">We found that in our current environment where a few key APIs and features are being used by our customers there are other products that have fallen by the wayside and generally forgotten (except in our AWS bill). We worked with our awesome product managers to find and coordinate the deprecation of these older services so we could shut down the infrastructure and save our bacon.<\/span><\/p>\n<h4>Kafka streamliners<span style=\"font-weight: 400;\">\u00a0<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">FullContact is a heavy user of <a href=\"https:\/\/www.fullcontact.com\/blog\/2020\/10\/08\/building-a-lambda-architecture-with-druid-and-kafka-streams\/\">Apache Kafka<\/a> for real-time streaming operations. The streamlining process involved identifying duplicated Kafka clusters that had been created to support different teams or versions of Kafka and working to consolidate onto a larger single cluster managed through AWS MSK.<\/span><\/p>\n<h4>Bandwidth squad<span style=\"font-weight: 400;\">\u00a0<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Bandwidth costs are a somewhat hidden cost that can start to creep up on you if you aren\u2019t paying close attention. AWS charges additional fees when your data traverses from one VPC to another, or from one Availability Zone to another. In many cases, you can architect your application to be aware of where it\u2019s running and to prefer to send traffic to other instances in the same zone. As part of project-bacon, we experimented with the way our services discover and connect to our databases in RDS to prefer a replica running in the same availability zone. Doing this not only saves on our monthly bill but results in lower latency and higher performance for our applications.<\/span><\/p>\n<h4>The Creation of Costbot<span style=\"font-weight: 400;\">\u00a0<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Having a monthly budget, and then realizing you went way over it after the fact is no fun. Traditionally we were reliant on third-party tools to help us track and predict our monthly spend. In 2020 we decided to simplify and become leaner by reducing our dependencies on third-party tools and services. That\u2019s why we came up with a simple app to give us a daily check-in on how our monthly spend is trending, and what is contributing to it. Costbot is a simple slack bot implemented as a Python Lambda that runs once a day and uses the AWS Cost and Usage Report (CUR) API to grab and display a few key metrics on our spend:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-19512\" src=\"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2.png\" alt=\"FullContact's Costbot-- a simple slack bot to track cost savings metrics\" width=\"597\" height=\"409\" srcset=\"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2.png 597w, https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2-300x206.png 300w\" sizes=\"auto, (max-width: 597px) 100vw, 597px\" \/><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Total spend yesterday (percent change)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Month to Date Spend<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Month to Date recurring costs (covers the RI purchases that show up on the first of every month)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Naive month-end project (If every day for the rest of the month had the same spend as yesterday)<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">This can quickly point out days where you had large Spark clusters that are contributing to high spend<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Month-end AWS projection<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Yesterday\u2019s cost break out by each team<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">While there are many existing tools out in the market that offer you similar features we found the approach of keeping it simple and making this information visible in our team Slack is really all we needed. We check in on our daily and monthly cost projections and strongly believe that you should too.<\/span><\/p>\n<h4>Results:<\/h4>\n<p><span style=\"font-weight: 400;\">After Project Bacon, we made a giant leap forward and were able to reduce our monthly bill by approximately <\/span><b>20%<\/b><span style=\"font-weight: 400;\">. The largest savings we realized were in setting more aggressive retention policies to clean up unneeded data in S3 and purchasing Reserved instances to make sure that our on-demand usage stayed under 4%. Keeping your cloud costs in check is really a never-ending project and takes a shift in the way you think about writing, deploying, and managing your applications. To keep the project alive we continued to use the #project-bacon slack channel to communicate small-cost wins and keep each other accountable for increasing costs.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In summary, staying on top of your cloud costs is possible, but it\u2019s complicated. It takes a concerted effort and behavioral change from the teams. While organizing a large one-time cost savings effort can have a large impact on your organization (as it did for ours) &#8211; what is really needed is a long-term shift where each member of the team is considering how what they are doing drives cost and what they can do to make their systems even more efficient. As teams have started paying attention to costbot we are starting to see more and more of that shift. In response to costbot the team will question why costs changed so much from the day before. These questions in turn have spawned conversations about how to run EMR clusters more efficiently, save money on S3 storage, and just how to have better cost-conscious designs from the start.\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why Engineers Need to Consider the Cost of Cloud Computing One of the benefits of cloud computing is the ease with which engineers can spin up infrastructure and achieve business goals rapidly. It\u2019s also one of the shortcomings, especially when cloud providers make pricing confusing to understand as you start to use more and more [&hellip;]<\/p>\n","protected":false},"author":116,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_improvement_type_select":"improve_an_existing","_thumb_yes_seoaic":false,"_frame_yes_seoaic":false,"seoaic_generate_description":"","seoaic_improve_instructions_prompt":"","seoaic_rollback_content_improvement":"","seoaic_idea_thumbnail_generator":"","thumbnail_generated":false,"thumbnail_generate_prompt":"","seoaic_article_description":"","seoaic_article_subtitles":[],"footnotes":""},"categories":[656],"tags":[6003,6004,6005,5994,5995,5996,5997,5998,5999,6000,6001,6002],"class_list":["post-19506","post","type-post","status-publish","format-standard","hentry","category-engineering","tag-kafka-streamliners","tag-bandwidth","tag-aws-cost","tag-cloud-computing","tag-devops","tag-finops","tag-finance","tag-finance-team","tag-project-bacon","tag-object-storage","tag-cleanup","tag-emr-reducers"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>FullContact Engineering: Cost Savings and Saving Our Bacon | FullContact<\/title>\n<meta name=\"description\" content=\"Why Engineers Need to Consider the Cost of Cloud Computing One of the benefits of cloud computing is the ease with which engineers can spin up\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FullContact Engineering: Cost Savings and Saving Our Bacon\" \/>\n<meta property=\"og:description\" content=\"How the FullContact engineering team solved the rising costs of cloud computing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/\" \/>\n<meta property=\"og:site_name\" content=\"FullContact\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-05T16:09:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-19T13:31:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/Engg-Cost-Saving-Blog-2-li.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tony Snyder\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"FullContact Engineering: Cost Savings and Saving Our Bacon\" \/>\n<meta name=\"twitter:description\" content=\"How the FullContact engineering team solved the rising costs of cloud computing.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/Engg-Cost-Saving-Blog-1-tw.png\" \/>\n<meta name=\"twitter:creator\" content=\"@fullcontact\" \/>\n<meta name=\"twitter:site\" content=\"@fullcontact\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tony Snyder\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/\"},\"author\":{\"name\":\"Tony Snyder\",\"@id\":\"https:\/\/www.fullcontact.com\/#\/schema\/person\/3f6f68c7a1673284e6bdf16b77fa6d6e\"},\"headline\":\"FullContact Engineering: Cost Savings and Saving Our Bacon\",\"datePublished\":\"2021-05-05T16:09:04+00:00\",\"dateModified\":\"2022-04-19T13:31:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/\"},\"wordCount\":1799,\"publisher\":{\"@id\":\"https:\/\/www.fullcontact.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2.png\",\"keywords\":[\"Kafka streamliners\",\"Bandwidth\",\"AWS Cost\",\"cloud computing\",\"DevOps\",\"FinOps\",\"finance\",\"finance team\",\"project bacon\",\"Object Storage\",\"Cleanup\",\"EMR Reducers\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/\",\"url\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/\",\"name\":\"FullContact Engineering: Cost Savings and Saving Our Bacon | FullContact\",\"isPartOf\":{\"@id\":\"https:\/\/www.fullcontact.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2.png\",\"datePublished\":\"2021-05-05T16:09:04+00:00\",\"dateModified\":\"2022-04-19T13:31:29+00:00\",\"description\":\"Why Engineers Need to Consider the Cost of Cloud Computing One of the benefits of cloud computing is the ease with which engineers can spin up\",\"breadcrumb\":{\"@id\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#primaryimage\",\"url\":\"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2.png\",\"contentUrl\":\"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2.png\",\"width\":597,\"height\":409,\"caption\":\"FullContact's Costbot-- a simple slack bot to track cost savings metrics\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.fullcontact.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FullContact Engineering: Cost Savings and Saving Our Bacon\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.fullcontact.com\/#website\",\"url\":\"https:\/\/www.fullcontact.com\/\",\"name\":\"FullContact\",\"description\":\"Relationships, reimagined.\",\"publisher\":{\"@id\":\"https:\/\/www.fullcontact.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.fullcontact.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.fullcontact.com\/#organization\",\"name\":\"FullContact\",\"url\":\"https:\/\/www.fullcontact.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.fullcontact.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2019\/11\/fc-logo@2x.png\",\"contentUrl\":\"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2019\/11\/fc-logo@2x.png\",\"width\":200,\"height\":38,\"caption\":\"FullContact\"},\"image\":{\"@id\":\"https:\/\/www.fullcontact.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/fullcontact\",\"https:\/\/www.linkedin.com\/company\/fullcontact-inc-\",\"https:\/\/www.youtube.com\/user\/FullContactAPI\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.fullcontact.com\/#\/schema\/person\/3f6f68c7a1673284e6bdf16b77fa6d6e\",\"name\":\"Tony Snyder\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.fullcontact.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4cffc12203b8d767757077c901a41cd0c025e241a56e96cb48757b77bac45c57?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4cffc12203b8d767757077c901a41cd0c025e241a56e96cb48757b77bac45c57?s=96&d=mm&r=g\",\"caption\":\"Tony Snyder\"},\"url\":\"https:\/\/www.fullcontact.com\/blog\/author\/tony-snyder\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"FullContact Engineering: Cost Savings and Saving Our Bacon | FullContact","description":"Why Engineers Need to Consider the Cost of Cloud Computing One of the benefits of cloud computing is the ease with which engineers can spin up","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/","og_locale":"en_US","og_type":"article","og_title":"FullContact Engineering: Cost Savings and Saving Our Bacon","og_description":"How the FullContact engineering team solved the rising costs of cloud computing.","og_url":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/","og_site_name":"FullContact","article_published_time":"2021-05-05T16:09:04+00:00","article_modified_time":"2022-04-19T13:31:29+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/Engg-Cost-Saving-Blog-2-li.png","type":"image\/png"}],"author":"Tony Snyder","twitter_card":"summary_large_image","twitter_title":"FullContact Engineering: Cost Savings and Saving Our Bacon","twitter_description":"How the FullContact engineering team solved the rising costs of cloud computing.","twitter_image":"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/Engg-Cost-Saving-Blog-1-tw.png","twitter_creator":"@fullcontact","twitter_site":"@fullcontact","twitter_misc":{"Written by":"Tony Snyder","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#article","isPartOf":{"@id":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/"},"author":{"name":"Tony Snyder","@id":"https:\/\/www.fullcontact.com\/#\/schema\/person\/3f6f68c7a1673284e6bdf16b77fa6d6e"},"headline":"FullContact Engineering: Cost Savings and Saving Our Bacon","datePublished":"2021-05-05T16:09:04+00:00","dateModified":"2022-04-19T13:31:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/"},"wordCount":1799,"publisher":{"@id":"https:\/\/www.fullcontact.com\/#organization"},"image":{"@id":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#primaryimage"},"thumbnailUrl":"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2.png","keywords":["Kafka streamliners","Bandwidth","AWS Cost","cloud computing","DevOps","FinOps","finance","finance team","project bacon","Object Storage","Cleanup","EMR Reducers"],"articleSection":["Engineering"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/","url":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/","name":"FullContact Engineering: Cost Savings and Saving Our Bacon | FullContact","isPartOf":{"@id":"https:\/\/www.fullcontact.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#primaryimage"},"image":{"@id":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#primaryimage"},"thumbnailUrl":"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2.png","datePublished":"2021-05-05T16:09:04+00:00","dateModified":"2022-04-19T13:31:29+00:00","description":"Why Engineers Need to Consider the Cost of Cloud Computing One of the benefits of cloud computing is the ease with which engineers can spin up","breadcrumb":{"@id":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#primaryimage","url":"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2.png","contentUrl":"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2021\/05\/image2.png","width":597,"height":409,"caption":"FullContact's Costbot-- a simple slack bot to track cost savings metrics"},{"@type":"BreadcrumbList","@id":"https:\/\/www.fullcontact.com\/blog\/engineering\/fullcontact-engineering-cost-savings-and-saving-our-bacon\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fullcontact.com\/"},{"@type":"ListItem","position":2,"name":"FullContact Engineering: Cost Savings and Saving Our Bacon"}]},{"@type":"WebSite","@id":"https:\/\/www.fullcontact.com\/#website","url":"https:\/\/www.fullcontact.com\/","name":"FullContact","description":"Relationships, reimagined.","publisher":{"@id":"https:\/\/www.fullcontact.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fullcontact.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.fullcontact.com\/#organization","name":"FullContact","url":"https:\/\/www.fullcontact.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fullcontact.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2019\/11\/fc-logo@2x.png","contentUrl":"https:\/\/www.fullcontact.com\/wp-content\/uploads\/2019\/11\/fc-logo@2x.png","width":200,"height":38,"caption":"FullContact"},"image":{"@id":"https:\/\/www.fullcontact.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/fullcontact","https:\/\/www.linkedin.com\/company\/fullcontact-inc-","https:\/\/www.youtube.com\/user\/FullContactAPI"]},{"@type":"Person","@id":"https:\/\/www.fullcontact.com\/#\/schema\/person\/3f6f68c7a1673284e6bdf16b77fa6d6e","name":"Tony Snyder","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fullcontact.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4cffc12203b8d767757077c901a41cd0c025e241a56e96cb48757b77bac45c57?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cffc12203b8d767757077c901a41cd0c025e241a56e96cb48757b77bac45c57?s=96&d=mm&r=g","caption":"Tony Snyder"},"url":"https:\/\/www.fullcontact.com\/blog\/author\/tony-snyder\/"}]}},"_links":{"self":[{"href":"https:\/\/www.fullcontact.com\/wp-json\/wp\/v2\/posts\/19506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fullcontact.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fullcontact.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fullcontact.com\/wp-json\/wp\/v2\/users\/116"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fullcontact.com\/wp-json\/wp\/v2\/comments?post=19506"}],"version-history":[{"count":0,"href":"https:\/\/www.fullcontact.com\/wp-json\/wp\/v2\/posts\/19506\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.fullcontact.com\/wp-json\/wp\/v2\/media?parent=19506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fullcontact.com\/wp-json\/wp\/v2\/categories?post=19506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fullcontact.com\/wp-json\/wp\/v2\/tags?post=19506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}