<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>aws &#8211; Airtame</title>
	<atom:link href="https://airtame.com/blog/tag/aws/feed/" rel="self" type="application/rss+xml" />
	<link>https://airtame.com/</link>
	<description>Wireless screen mirroring and digital signage &#124; Airtame</description>
	<lastBuildDate>Mon, 13 Jul 2026 20:20:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://airtame.com/wp-content/uploads/2018/06/cropped-airtame-logo-1-32x32.png</url>
	<title>aws &#8211; Airtame</title>
	<link>https://airtame.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How we reduced Cloud network infrastructure costs by 63%</title>
		<link>https://airtame.com/blog/cloud-infrastructure-costs/</link>
					<comments>https://airtame.com/blog/cloud-infrastructure-costs/#respond</comments>
		
		<dc:creator><![CDATA[Airtame]]></dc:creator>
		<pubDate>Wed, 21 Nov 2018 12:38:09 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[infrastructure]]></category>
		<guid isPermaLink="false">https://airtame.com/?p=5086</guid>

					<description><![CDATA[<p>Great success comes at an even greater expense. Here's a lowdown on how Infrastructure team improved the operational costs of the Airtame Cloud environment</p>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/cloud-infrastructure-costs/">How we reduced Cloud network infrastructure costs by 63%</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://help.airtame.com/airtame-cloud-and-homescreen/overview/what-is-airtame-cloud" target="_blank" rel="noopener"><span style="font-weight: 400;">Airtame Cloud</span></a><span style="font-weight: 400;"> was created as a simple service to improve the ergonomics of managing a large number of Airtame devices. The number of active users is quickly rising, and soon enough we started to encounter scalability and runaway cost issues related to the infrastructure of our Cloud product.</span></p>
<p><span style="font-weight: 400;">Our Cloud is fully backed by AWS services. Airtame devices communicate with the Cloud via secure websockets. Usage of websockets results in a large number of active connections, usually around 10k. Websockets are used to synchronize settings between the Cloud and Airtames. </span></p>
<p><span style="font-weight: 400;">The size of the exchanged data is relatively high. Devices send pictures of dynamic dashboards, which are displayed while the Airtame device is not streaming.</span></p>
<p><span style="font-weight: 400;">If we gather all these facts we start to see that Cloud costs are related to the increasing number of users. This was a good starting point for us. </span></p>
<h2>The problem</h2>
<p><span style="font-weight: 400;">Our infrastructure hasn’t changed much over the last few months, the only change was the number of users – which is, of course, a great problem to have!</span></p>
<p><span style="font-weight: 400;">We discovered the problem quite quickly: we were running server instances in multiple availability zones (AZ) inside one region. From our billing information, we could see that we were transferring around 2200 GB per day. 1900 GB inside AZs and 300 GB to the internet. Prices for transferring to the internet are 10x higher than between AZs. Costs for transfer between AZs should be zero.</span></p>

      <div
         class="air-image  air-image--large"
        
      >
         <img fetchpriority="high" decoding="async" class="alignnone wp-image-5099 size-full" title="Cloud Infrastructure Chart" src="https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph1-1.png" alt="Screenshot showing the cloud infrastructure chart" width="1294" height="258" srcset="https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph1-1.png 1294w, https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph1-1-300x60.png 300w, https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph1-1-768x153.png 768w, https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph1-1-1024x204.png 1024w, https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph1-1-800x160.png 800w" sizes="(max-width: 1294px) 100vw, 1294px" />
      </div>
    
      <div
         class="air-image  air-image--large"
        
      >
         <img decoding="async" class="alignnone size-full wp-image-5098" src="https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph2.png" alt="" width="1294" height="167" srcset="https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph2.png 1294w, https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph2-300x39.png 300w, https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph2-768x99.png 768w, https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph2-1024x132.png 1024w, https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-graph2-800x103.png 800w" sizes="(max-width: 1294px) 100vw, 1294px" />
      </div>
    
<h2>Finding a solution</h2>
<p><span style="font-weight: 400;">We started exploring our internal Cloud network in AWS Console. As an entry point to our Cloud, we use Nginx public proxies. Only our public proxies are accessible from the Internet, and they purpose is simple: They serve static data and proxy API request to a backend instance. Public proxies were running in AZ 1b.</span></p>
<p><span style="font-weight: 400;">The backend does the heavy lifting and processes API requests. Unfortunately, the backend instances were hosted in AZ 1a. This means that all API requests were transferred between AZs. </span></p>
<p><span style="font-weight: 400;">To handle requests, the backend additionally connects to MySQL and Redis. And only to make things worse, MySQL and Redis were in AZ 1b, resulting in additional transfers to the first zone and then sending results back the same way requests came in.</span></p>

      <div
         class="air-image  air-image--small"
        
      >
        <img decoding="async" class="alignnone wp-image-5120 size-full" title="Cloud Infrastructure Flow Chart" src="https://airtame.com/wp-content/uploads/2018/11/Cloud-infrastructure-Reduced-02.png" alt="Screenshot showing the cloud infrastructure flow graph" width="2400" height="484" srcset="https://airtame.com/wp-content/uploads/2018/11/Cloud-infrastructure-Reduced-02.png 2400w, https://airtame.com/wp-content/uploads/2018/11/Cloud-infrastructure-Reduced-02-300x61.png 300w, https://airtame.com/wp-content/uploads/2018/11/Cloud-infrastructure-Reduced-02-768x155.png 768w, https://airtame.com/wp-content/uploads/2018/11/Cloud-infrastructure-Reduced-02-1024x207.png 1024w, https://airtame.com/wp-content/uploads/2018/11/Cloud-infrastructure-Reduced-02-800x161.png 800w, https://airtame.com/wp-content/uploads/2018/11/Cloud-infrastructure-Reduced-02-1400x282.png 1400w" sizes="(max-width: 2400px) 100vw, 2400px" />
      </div>
    
<p><span style="font-weight: 400;">Once we figured out the root cause of our problem, we came up with a plan to move everything to the same AZ. Moving so many servers between AZ wasn’t easy, and we caused only a few outages along the road. </span></p>
<p><span style="font-weight: 400;">We were able to move RDS from one AZ to another without downtime with this neat trick: First, we enabled multi-AZ deployment and then used reboot with failover to switch primary DBs. AWS guarantees that DBs in multi-AZ are consistent and can be used interchangeably. </span></p>
<p><span style="font-weight: 400;">We took advantage of an interesting side effect of a reboot with failover, which is primarily used for DB updates. It first switches primary RDS to failover DB and then performs a reboot, resulting in zero downtime.</span></p>

      <div
         class="air-image  air-image--smaller"
        
      >
        <img loading="lazy" decoding="async" class="alignnone wp-image-5090 size-full" title="Reboot DB Instance" src="https://airtame.com/wp-content/uploads/2018/11/cloud-infrastructure-update-reboot-db-instance.png" alt="Screenshot showing the cloud infrastructure Reboot DB Instance " width="800" height="367" /></p>
<p><small>dbtechno.blogspot.com</small></p>

      </div>
    
<p><span style="font-weight: 400;">Now the real question: how did this happen? Terraform, our infrastructure as code software, is a good servant, but a bad master. Its defaults can be dangerous. We didn’t specify AZs in Terraform’s configuration and as a result, it has chosen random AZs. The easy fix was to define AZs for all resources.</span></p>
<p><span style="font-weight: 400;">We’ve successfully minimized costs of inter-AZ transfers to zero. This significantly reduced the cost of our Cloud network cost by 63%. This price reduction – not to mention the resource and time surplus – will be fed back into our production line; creating an even more sustainable Cloud environment for our growing user base. </span></p>

<p>Watch this short video showing how the Airtame Cloud management works:<br />

      <div
         class="air-video  air-video--large"
      >
      
        <div class="air-video__inner">
          <iframe
            class="air-video__player"
            data-loader="youtube"
            data-src="https://youtube-nocookie.com/embed/AkJaf3wRYMQ?rel=0&amp;controls=0&amp;showinfo=0"
            width="560"
            height="315"
            frameborder="0"
            allow="encrypted-media"
            data-consent="analytics"
            allowfullscreen
          ></iframe>
        </div>
        
        
      </div>
    
<p><em>This piece was written by Peter, with additional writing from Raghav Karol and Jakob Bauers from the Airtame infrastructure team</em></p>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/cloud-infrastructure-costs/">How we reduced Cloud network infrastructure costs by 63%</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://airtame.com/blog/cloud-infrastructure-costs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
