til: aws_instance-costs-per-month.md
This data as json
| path | topic | title | url | body | html | shot | created | created_utc | updated | updated_utc | shot_hash | slug |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| aws_instance-costs-per-month.md | aws | Display EC2 instance costs per month | https://github.com/simonw/til/blob/main/aws/instance-costs-per-month.md | The [EC2 pricing page](https://aws.amazon.com/ec2/pricing/on-demand/) shows cost per hour, which is pretty much useless. I want cost per month. The following JavaScript, pasted into the browser developer console, modifies the page to show cost-per-month instead. ```javascript Array.from( document.querySelectorAll('td') ).filter( el => el.textContent.toLowerCase().includes('per hour') ).forEach( el => el.textContent = '$' + (parseFloat( /\d+\.\d+/.exec(el.textContent)[0] ) * 24 * 30).toFixed(2) + ' per month' ) ``` | <p>The <a href="https://aws.amazon.com/ec2/pricing/on-demand/" rel="nofollow">EC2 pricing page</a> shows cost per hour, which is pretty much useless. I want cost per month. The following JavaScript, pasted into the browser developer console, modifies the page to show cost-per-month instead.</p> <div class="highlight highlight-source-js"><pre><span class="pl-v">Array</span><span class="pl-kos">.</span><span class="pl-en">from</span><span class="pl-kos">(</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'td'</span><span class="pl-kos">)</span> <span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span> <span class="pl-s1">el</span> <span class="pl-c1">=></span> <span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-c1">textContent</span><span class="pl-kos">.</span><span class="pl-en">toLowerCase</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">includes</span><span class="pl-kos">(</span><span class="pl-s">'per hour'</span><span class="pl-kos">)</span> <span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">forEach</span><span class="pl-kos">(</span> <span class="pl-s1">el</span> <span class="pl-c1">=></span> <span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-c1">textContent</span> <span class="pl-c1">=</span> <span class="pl-s">'$'</span> <span class="pl-c1">+</span> <span class="pl-kos">(</span><span class="pl-en">parseFloat</span><span class="pl-kos">(</span> <span class="pl-pds">/<span class="pl-cce">\d</span><span class="pl-c1">+</span><span class="pl-cce">\.</span><span class="pl-cce">\d</span><span class="pl-c1">+</span>/</span><span class="pl-kos">.</span><span class="pl-en">exec</span><span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-c1">textContent</span><span class="pl-kos">)</span><span class="pl-kos">[</span><span class="pl-c1">0</span><span class="pl-kos">]</span> <span class="pl-kos">)</span> * <span class="pl-c1">24</span> * <span class="pl-c1">30</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toFixed</span><span class="pl-kos">(</span><span class="pl-c1">2</span><span class="pl-kos">)</span> <span class="pl-c1">+</span> <span class="pl-s">' per month'</span> <span class="pl-kos">)</span></pre></div> | <Binary: 53,887 bytes> | 2020-09-06T19:43:29-07:00 | 2020-09-07T02:43:29+00:00 | 2020-09-06T19:43:29-07:00 | 2020-09-07T02:43:29+00:00 | 47d56d5c931266cac22ae86df8d494cf | instance-costs-per-month |