";font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;padding:1px 4px;position:absolute;right:0;top:0}#root-el.light blockquote{border-bottom:1px solid #33383f;border-top:3px solid #33383f;font-size:1.2rem;line-height:1.25;margin:2.5rem 0;padding-bottom:1em;padding-top:.83333em}#root-el.light blockquote:first-child{margin-top:0}#root-el.light blockquote p{margin-bottom:.5em}#root-el.light blockquote p:last-child{margin-bottom:0}#root-el.light blockquote cite,#root-el.light blockquote small{color:#1c1f23;display:block;font-size:.5em;font-style:normal;font-weight:400;line-height:1.66667;margin-top:1em}#root-el.light blockquote cite:last-child,#root-el.light blockquote small:last-child{margin-bottom:0}#root-el.light dl{margin:0}#root-el.light dt{font-weight:700}#root-el.light dd{margin:0 0 1.66667em}#root-el.light ol,#root-el.light ul{margin:0 0 1.66667em;padding:0 0 0 1.66667em}#root-el.light li>ol,#root-el.light li>ul{margin-bottom:0}#root-el.light hr{background-color:#fff;border:0;height:1px;margin:1.66667em 0}#root-el.light table{font-size:.88889rem;line-height:1.5;margin:0 0 1.66667rem;text-align:left;width:100%}#root-el.light caption{color:#1c1f23;font-size:.875em;font-style:normal;margin-bottom:1em;text-align:left}#root-el.light td,#root-el.light th{border-bottom:1px solid #fff;padding:.5em 5px}#root-el.light label,#root-el.light th{color:#33383f;font-weight:700}#root-el.light label>span{font-size:14px;font-weight:400}#root-el.light input[type=checkbox]+label,#root-el.light input[type=radio]+label{cursor:pointer;padding-left:.25em;padding-right:1em}#root-el.light input[type=email],#root-el.light input[type=password],#root-el.light input[type=search],#root-el.light input[type=tel],#root-el.light input[type=text],#root-el.light input[type=url],#root-el.light select,#root-el.light textarea{background:#fff;border:1px solid #959ea9;border-radius:5px;box-shadow:none;box-sizing:border-box;color:#555e69;display:inline-block;font-size:16px;font-weight:400;line-height:1.5;max-width:100%;padding:.5em 10px;vertical-align:baseline;width:100%}#root-el.light input[type=email]:focus,#root-el.light input[type=password]:focus,#root-el.light input[type=search]:focus,#root-el.light input[type=tel]:focus,#root-el.light input[type=text]:focus,#root-el.light input[type=url]:focus,#root-el.light select:focus,#root-el.light textarea:focus{outline:0}#root-el.light input[type=email],#root-el.light input[type=password],#root-el.light input[type=search],#root-el.light input[type=tel],#root-el.light input[type=text],#root-el.light input[type=url],#root-el.light select{height:2.625em}#root-el.light a.button,#root-el.light button,#root-el.light input[type=button],#root-el.light input[type=reset],#root-el.light input[type=submit]{background:#1de2bc;border:2px solid #1de2bc;border-radius:30px;box-sizing:border-box;color:#fff;display:inline-block;font-size:14px;height:3em;letter-spacing:.075em;line-height:1.5;padding:.25em 35px;text-transform:uppercase;transition:.3s ease}#root-el.light a.button:active,#root-el.light a.button:focus,#root-el.light a.button:hover,#root-el.light button:active,#root-el.light button:focus,#root-el.light button:hover,#root-el.light input[type=button]:active,#root-el.light input[type=button]:focus,#root-el.light input[type=button]:hover,#root-el.light input[type=reset]:active,#root-el.light input[type=reset]:focus,#root-el.light input[type=reset]:hover,#root-el.light input[type=submit]:active,#root-el.light input[type=submit]:focus,#root-el.light input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(29,226,188,.2);color:#33383f;outline:0}#root-el.light a.button{line-height:1.2;padding-bottom:.75em;padding-top:.75em}#root-el.light a.circle{background:transparent;color:#555e69;padding:0;width:3em}#root-el.light a.circle:active,#root-el.light a.circle:focus,#root-el.light a.circle:hover{background:#1de2bc;color:#fff}#root-el.light embed,#root-el.light iframe,#root-el.light object,#root-el.light video{max-width:100%}#root-el.light .js-reframe{margin:0 0 1.66667em}#root-el.light img{height:auto;max-width:100%}#root-el.light .block img,#root-el.light .post-content img,#root-el.light .post-thumbnail img{border-radius:5px}#root-el.light .screen-reader-text,#root-el.light .site-logo+.site-identity .site-description,#root-el.light .site-logo+.site-identity .site-title{border:0;clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;padding:0;position:absolute!important;width:1px}#root-el.light .underline{position:relative}#root-el.light .underline:after{border-left:30px solid #1de2bc;box-shadow:inset 0 1px 0 0 #fff;display:block;content:"";height:3px;margin-top:1rem}#root-el.light .post-content:after{clear:both}#root-el.light .post-content:after,#root-el.light .post-content:before{content:"";display:table}#root-el.light .inner{margin-left:auto;margin-right:auto;max-width:1080px}#root-el.light .site{overflow:hidden;position:relative}#root-el.light .site-content,#root-el.light .site-header-inside,#root-el.light .site-nav-inside{padding-left:3vw;padding-right:3vw}#root-el.light .site-content{background-color:#fff;padding-bottom:2.5em;padding-top:2.5em}@media only screen and (min-width:801px){#root-el.light .site-content{margin-left:30vw;padding-bottom:3.33333em;padding-top:3.33333em}}@media only screen and (min-width:1001px){#root-el.light .site-content{margin-left:300px}}#root-el.light .site-main{margin-bottom:3.33333em}#root-el.light .site-footer,#root-el.light .site-main{margin-left:auto;margin-right:auto;max-width:760px}#root-el.light .style-overflow .site-main{margin-left:0;margin-right:0;max-width:none}#root-el.light .style-overflow .block-content,#root-el.light .style-overflow .block-title,#root-el.light .style-overflow .hero,#root-el.light .style-overflow .post-feed+.block-cta,#root-el.light .style-overflow .post-full .post-content,#root-el.light .style-overflow .post-full .post-header,#root-el.light .style-overflow .post-full .post-meta,#root-el.light .style-overflow .post-full .post-subtitle{margin-left:auto;margin-right:auto;max-width:760px}#root-el.light .site-header{background:#cdd1d7;border-bottom:1px solid #fff;color:#33383f}#root-el.light .site-header-inside{padding-bottom:1.11111em;padding-top:1.11111em}#root-el.light .site-branding{align-items:center;display:flex;font-size:1rem}#root-el.light .site-logo{flex:0 0 auto;margin:0 10px 0 0}#root-el.light .site-logo a{border:0}#root-el.light .site-logo img{max-height:45px}#root-el.light .profile{flex:0 0 auto;margin:0 15px 0 0}#root-el.light .profile a{border:0}#root-el.light .profile .avatar{border:2px solid #1de2bc;box-shadow:0 0 1px 7px rgba(29,226,188,.2);border-radius:100%;display:block;object-fit:cover;height:45px;width:45px}#root-el.light .site-title{color:#33383f;font-size:1.11111rem;font-weight:700;line-height:1;margin:0}#root-el.light .site-title a{border:0;color:inherit}#root-el.light .site-description{font-size:12px;line-height:1;margin:.25em 0 0}#root-el.light .site-navigation{background:#cdd1d7;bottom:0;box-sizing:border-box;-webkit-overflow-scrolling:touch;position:absolute;right:-100%;top:0;transition:right .3s,visibility 0s .3s;visibility:hidden;width:100%;z-index:90}#root-el.light .site-nav-wrap{height:100%;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}#root-el.light .site-nav-inside{padding-bottom:4em;padding-top:4em}#root-el.light .menu{border-bottom:1px solid #33383f;font-size:14px;line-height:1.5;letter-spacing:.15em;list-style:none;margin:0;padding:0;text-transform:uppercase}#root-el.light .menu-item{border-top:1px solid #33383f;padding:.5em 0}#root-el.light .menu-item a{border:0;color:inherit}#root-el.light .current-menu-item a,#root-el.light .menu-item a:hover{color:#1de2bc}#root-el.light .social-links{display:flex;flex-wrap:wrap;margin-top:1.66667em}#root-el.light .social-links a{align-items:center;border:1px solid #33383f;border-radius:50%;color:inherit;display:flex;height:30px;justify-content:center;margin:0 10px .5em 0;transition:.3s ease;width:30px}#root-el.light .social-links a:hover{background:#1de2bc;border-color:#1de2bc;box-shadow:0 0 1px 5px rgba(29,226,188,.2);color:#fff}#root-el.light .social-links .fab{font-size:16px;line-height:1.875}#root-el.light .site-header.dark{background:#33383f;border:0;color:#cdd1d7}#root-el.light .site-header.dark .site-navigation{background:#33383f}#root-el.light .site-header.dark .site-title{color:#fff}#root-el.light .site-header.dark .menu,#root-el.light .site-header.dark .menu-item,#root-el.light .site-header.dark .social-links a{border-color:rgba(205,209,215,.4)}#root-el.light .site-header.dark .social-links a:hover{border-color:#1de2bc}@media only screen and (min-width:801px){#root-el.light .site-header{border-bottom:0;border-right:1px solid #fff;height:100%;left:0;position:fixed;text-align:center;top:0;width:30vw}#root-el.light .site-header-wrap{height:100%;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}#root-el.light .site-header-inside{padding-bottom:3.33333em;padding-top:3.33333em}#root-el.light .site-branding{flex-direction:column}#root-el.light .site-identity{margin-bottom:1.66667em;padding:0}#root-el.light .site-logo{margin:0 0 1.66667em}#root-el.light .site-logo img{max-height:100px}#root-el.light .profile{margin:0 0 1.66667em}#root-el.light .profile a{outline-color:#fff}#root-el.light .profile .avatar{border-width:3px;box-shadow:0 0 1px 11px rgba(29,226,188,.2);object-fit:cover;height:100px;width:100px}#root-el.light .site-title{font-size:1.33333rem;line-height:1.2}#root-el.light .site-description{font-size:14px;line-height:1.2;margin-top:.4em}#root-el.light .menu-toggle{display:none}#root-el.light .menu-toggle~.icon-menu{display:none}#root-el.light .site-navigation{position:static;visibility:visible}#root-el.light .site-nav-inside{padding:0}#root-el.light .social-links{justify-content:center}#root-el.light .social-links a{margin:0 5px .5em}}@media only screen and (min-width:1001px){#root-el.light .site-header{max-width:300px}#root-el.light .site-header-inside{padding-left:24px;padding-right:24px}}@media only screen and (max-width:800px){#root-el.light input#menu-toggle{background:0;border:0;box-shadow:none;color:inherit;padding:0;height:30px;width:30px;display:block;position:absolute;top:2vh;right:5vw;cursor:pointer;opacity:0;z-index:100;-webkit-touch-callout:none}#root-el.light input:checked#menu-toggle~.site-navigation{right:0;transition:right .3s ease-in-out;visibility:visible}#root-el.light .menu--opened .site{height:100%;left:0;overflow:hidden;position:fixed;top:0;transform:translateZ(0);width:100%;z-index:9997}}#root-el.light .post{margin-bottom:3.33333em;position:relative}#root-el.light .post-header{margin-bottom:1.66667em}#root-el.light .post-title{font-size:2.66667rem;margin:0 0 1.66667rem}#root-el.light .post-title a{border:0;color:inherit}#root-el.light .post-title a:hover{color:#1de2bc}#root-el.light .post-subtitle{font-size:1.33333rem;line-height:1.5;margin-bottom:1.66667rem}#root-el.light .post-thumbnail{margin-bottom:1.66667em}#root-el.light .post-thumbnail img{width:100%}#root-el.light .post-avatar{border:none;width:3em;float:left;margin-right:1.5em}#root-el.light .post-meta{color:#1c1f23;font-size:14px;letter-spacing:1px;line-height:1.5;margin-bottom:1.66667rem;text-transform:uppercase}#root-el.light .post-feed{display:flex;flex-wrap:wrap;margin:0 -.83333em 1.66667em}#root-el.light .post-feed .post{display:flex;flex:0 0 50%;flex-direction:column;margin-bottom:1.66667em}#root-el.light .post-feed .post-inside{border:1px solid #fff;border-radius:5px;display:flex;flex:1 1 auto;flex-direction:column;margin:0 .833333em}#root-el.light .post-feed .post-thumbnail{border:0;border-radius:5px 5px 0 0;display:block;margin:0;position:relative;width:100%}#root-el.light .post-feed .post-thumbnail:before{content:"";display:block;padding-top:6.666%}#root-el.light .post-feed .post-thumbnail img{border-radius:5px 5px 0 0;height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}#root-el.light .post-feed .post-header{margin-bottom:.83333rem;padding:1.33333rem 1.33333rem 0}#root-el.light .post-feed .post-header+.post-thumbnail{padding-top:.83333rem}#root-el.light .post-feed .post-title{border-bottom:1px solid #fff;font-size:1.33333rem;margin:0;padding-bottom:.83333rem}#root-el.light .post-feed .post-content{flex-grow:1;font-size:16px;padding:0 1.33333rem}#root-el.light .post-feed .post-description{margin-bottom:1.66667em}#root-el.light .post-feed .post-meta{margin:0;padding:0 1.33333rem 1.33333rem}#root-el.light .post-highlight blockquote{font-size:2rem}@media only screen and (max-width:1000px){#root-el.light .post-feed{margin-left:-1.5vw;margin-right:-1.5vw}#root-el.light .post-feed .post{margin-bottom:3vw}#root-el.light .post-feed .post-inside{margin-left:1.5vw;margin-right:1.5vw}}@media only screen and (max-width:600px),only screen and (min-width:801px)and (max-width:1000px){#root-el.light .post-feed .post{flex:0 0 100%}}#root-el.light .pagination{padding:0 70px 1.66667em;position:relative;text-align:center}#root-el.light .page-number{color:#1c1f23;display:inline-block;font-size:14px;letter-spacing:1px;line-height:1.5;padding:.75em 0;text-transform:uppercase}#root-el.light .newer-posts,#root-el.light .older-posts{position:absolute;top:0}#root-el.light .older-posts{left:0}#root-el.light .newer-posts{right:0}#root-el.light .hero{margin-bottom:2.5em}#root-el.light .hero-title{font-size:2.66667rem;margin:0 0 1rem}#root-el.light .hero-text{font-size:1.33333rem;line-height:1.5;margin:0}#root-el.light .block{margin-bottom:5em}#root-el.light .block.read-next{margin-bottom:3.33333em;margin-top:5em}#root-el.light .block-title{color:#33383f;font-size:1rem;letter-spacing:.11111em;margin:0 0 1.66667rem;text-transform:uppercase}#root-el.light .block-thumbnail{margin-bottom:1.66667em}#root-el.light .block-thumbnail img{width:100%}#root-el.light .block-cta .button{margin-right:15px}#root-el.light .site-footer{align-items:center;border-top:1px solid #fff;display:flex;padding-top:2.5em}#root-el.light .site-footer .site-info{font-size:11px;letter-spacing:.09em;line-height:1.5;margin-bottom:0;text-transform:uppercase}#root-el.light .site-footer .to-top{border:0;color:#555e69;display:none;flex:0 0 auto;height:30px;margin-left:auto;position:relative;width:30px}@media only screen and (max-width:800px){#root-el.light .site-footer .site-info{margin-right:15px}#root-el.light .site-footer .to-top{display:block}}#root-el.light .palette-blue a{border-color:#10bcf9}#root-el.light .palette-blue a:hover{border-color:currentColor}#root-el.light .palette-blue a.button,#root-el.light .palette-blue button,#root-el.light .palette-blue input[type=button],#root-el.light .palette-blue input[type=reset],#root-el.light .palette-blue input[type=submit]{background:#10bcf9;border-color:#10bcf9}#root-el.light .palette-blue a.button:active,#root-el.light .palette-blue a.button:focus,#root-el.light .palette-blue a.button:hover,#root-el.light .palette-blue button:active,#root-el.light .palette-blue button:focus,#root-el.light .palette-blue button:hover,#root-el.light .palette-blue input[type=button]:active,#root-el.light .palette-blue input[type=button]:focus,#root-el.light .palette-blue input[type=button]:hover,#root-el.light .palette-blue input[type=reset]:active,#root-el.light .palette-blue input[type=reset]:focus,#root-el.light .palette-blue input[type=reset]:hover,#root-el.light .palette-blue input[type=submit]:active,#root-el.light .palette-blue input[type=submit]:focus,#root-el.light .palette-blue input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(16,188,249,.2)}#root-el.light .palette-blue a.button.circle{background:transparent}#root-el.light .palette-blue a.button.circle:active,#root-el.light .palette-blue a.button.circle:focus,#root-el.light .palette-blue a.button.circle:hover{background:#10bcf9}#root-el.light .palette-blue .underline:after{border-color:#10bcf9}#root-el.light .palette-blue .profile .avatar{border-color:#10bcf9;box-shadow:0 0 1px 7px rgba(16,188,249,.2)}@media only screen and (min-width:801px){#root-el.light .palette-blue .profile .avatar{box-shadow:0 0 1px 11px rgba(16,188,249,.2)}}#root-el.light .palette-blue .current-menu-item a,#root-el.light .palette-blue .menu-item a:hover{color:#10bcf9}#root-el.light .palette-blue .social-links a{border-color:#fff}#root-el.light .palette-blue .social-links a:hover{background:#10bcf9;border-color:#10bcf9;box-shadow:0 0 1px 5px rgba(16,188,249,.2)}#root-el.light .palette-blue .dark .social-links a{border-color:rgba(85,94,105,.4)}#root-el.light .palette-blue .dark .social-links a:hover{border-color:#10bcf9}#root-el.light .palette-blue .post-title a:hover{color:#10bcf9}#root-el.light .palette-violet a{border-color:#9371e6}#root-el.light .palette-violet a:hover{border-color:currentColor}#root-el.light .palette-violet a.button,#root-el.light .palette-violet button,#root-el.light .palette-violet input[type=button],#root-el.light .palette-violet input[type=reset],#root-el.light .palette-violet input[type=submit]{background:#9371e6;border-color:#9371e6}#root-el.light .palette-violet a.button:active,#root-el.light .palette-violet a.button:focus,#root-el.light .palette-violet a.button:hover,#root-el.light .palette-violet button:active,#root-el.light .palette-violet button:focus,#root-el.light .palette-violet button:hover,#root-el.light .palette-violet input[type=button]:active,#root-el.light .palette-violet input[type=button]:focus,#root-el.light .palette-violet input[type=button]:hover,#root-el.light .palette-violet input[type=reset]:active,#root-el.light .palette-violet input[type=reset]:focus,#root-el.light .palette-violet input[type=reset]:hover,#root-el.light .palette-violet input[type=submit]:active,#root-el.light .palette-violet input[type=submit]:focus,#root-el.light .palette-violet input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(147,113,230,.2)}#root-el.light .palette-violet a.button.circle{background:transparent}#root-el.light .palette-violet a.button.circle:active,#root-el.light .palette-violet a.button.circle:focus,#root-el.light .palette-violet a.button.circle:hover{background:#9371e6}#root-el.light .palette-violet .underline:after{border-color:#9371e6}#root-el.light .palette-violet .profile .avatar{border-color:#9371e6;box-shadow:0 0 1px 7px rgba(147,113,230,.2)}@media only screen and (min-width:801px){#root-el.light .palette-violet .profile .avatar{box-shadow:0 0 1px 11px rgba(147,113,230,.2)}}#root-el.light .palette-violet .current-menu-item a,#root-el.light .palette-violet .menu-item a:hover{color:#e5ddf9}#root-el.light .palette-violet .social-links a{border-color:#33383f}#root-el.light .palette-violet .social-links a:hover{background:#9371e6;border-color:#9371e6;box-shadow:0 0 1px 5px rgba(147,113,230,.2)}#root-el.light .palette-violet .dark .social-links a{border-color:rgba(205,209,215,.4)}#root-el.light .palette-violet .dark .social-links a:hover{border-color:#9371e6}#root-el.light .palette-violet .post-title a:hover{color:#9371e6}#root-el.light .palette-orange a{border-color:#fc6e51}#root-el.light .palette-orange a:hover{border-color:currentColor}#root-el.light .palette-orange a.button,#root-el.light .palette-orange button,#root-el.light .palette-orange input[type=button],#root-el.light .palette-orange input[type=reset],#root-el.light .palette-orange input[type=submit]{background:#fc6e51;border-color:#fc6e51}#root-el.light .palette-orange a.button:active,#root-el.light .palette-orange a.button:focus,#root-el.light .palette-orange a.button:hover,#root-el.light .palette-orange button:active,#root-el.light .palette-orange button:focus,#root-el.light .palette-orange button:hover,#root-el.light .palette-orange input[type=button]:active,#root-el.light .palette-orange input[type=button]:focus,#root-el.light .palette-orange input[type=button]:hover,#root-el.light .palette-orange input[type=reset]:active,#root-el.light .palette-orange input[type=reset]:focus,#root-el.light .palette-orange input[type=reset]:hover,#root-el.light .palette-orange input[type=submit]:active,#root-el.light .palette-orange input[type=submit]:focus,#root-el.light .palette-orange input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(252,110,81,.2)}#root-el.light .palette-orange a.button.circle{background:transparent}#root-el.light .palette-orange a.button.circle:active,#root-el.light .palette-orange a.button.circle:focus,#root-el.light .palette-orange a.button.circle:hover{background:#fc6e51}#root-el.light .palette-orange .underline:after{border-color:#fc6e51}#root-el.light .palette-orange .profile .avatar{border-color:#fc6e51;box-shadow:0 0 1px 7px rgba(252,110,81,.2)}@media only screen and (min-width:801px){#root-el.light .palette-orange .profile .avatar{box-shadow:0 0 1px 11px rgba(252,110,81,.2)}}#root-el.light .palette-orange .current-menu-item a,#root-el.light .palette-orange .menu-item a:hover{color:#fc6e51}#root-el.light .palette-orange .social-links a{border-color:#fff}#root-el.light .palette-orange .social-links a:hover{background:#fc6e51;border-color:#fc6e51;box-shadow:0 0 1px 5px rgba(252,110,81,.2)}#root-el.light .palette-orange .dark .social-links a{border-color:rgba(85,94,105,.4)}#root-el.light .palette-orange .dark .social-links a:hover{border-color:#fc6e51}#root-el.light .palette-orange .post-title a:hover{color:#fc6e51}#root-el.dark body,#root-el.dark html{font-family:Roboto,Helvetica Neue,Helvetica,sans-serif;font-size:112.5%;height:100%;min-height:100%}@media only screen and (max-width:600px){#root-el.dark body,#root-el.dark html{font-size:100%}}#root-el.dark body{background:#000;color:#959ea9;line-height:1.66667}#root-el.dark a{border-bottom:2px solid #1de2bc;color:#cdd1d7;text-decoration:none;transition:border .3s ease,color .3s ease}#root-el.dark a:hover{border-color:currentColor;text-decoration:none}#root-el.dark .no-border *{border:none}#root-el.dark h1,#root-el.dark h2,#root-el.dark h3,#root-el.dark h4,#root-el.dark h5,#root-el.dark h6{color:#cdd1d7;font-weight:700;line-height:1.2;margin:1.66667rem 0 .83333rem;text-rendering:optimizeLegibility}#root-el.dark h1:first-child,#root-el.dark h2:first-child,#root-el.dark h3:first-child,#root-el.dark h4:first-child,#root-el.dark h5:first-child,#root-el.dark h6:first-child{margin-top:0}#root-el.dark h1{font-size:2.22222rem}#root-el.dark h2{font-size:1.88889rem}#root-el.dark h3{font-size:1.33333rem}#root-el.dark h4{font-size:1.11111rem}#root-el.dark h5{font-size:.88889rem}#root-el.dark h6{font-size:14px;letter-spacing:.075em;text-transform:uppercase}#root-el.dark p{margin:0 0 1.66667em}#root-el.dark address{font-style:italic;margin:0 0 1.66667em}#root-el.dark ins,#root-el.dark mark{background:#fff493;color:#cdd1d7;padding:0 3px;text-decoration:none}#root-el.dark pre{border:1px solid #33383f;border-radius:5px;color:#cdd1d7;font-size:.88889rem;margin:0 0 1.66667rem;overflow:auto;padding:1.5em 1.875em;position:relative;white-space:pre}#root-el.dark pre:before{border-color:#000;border-style:solid;border-width:0 0 1px 1px;color:inherit;content:">";font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;padding:1px 4px;position:absolute;right:0;top:0}#root-el.dark blockquote{border-bottom:1px solid #cdd1d7;border-top:3px solid #cdd1d7;font-size:1.2rem;line-height:1.25;margin:2.5rem 0;padding-bottom:1em;padding-top:.83333em}#root-el.dark blockquote:first-child{margin-top:0}#root-el.dark blockquote p{margin-bottom:.5em}#root-el.dark blockquote p:last-child{margin-bottom:0}#root-el.dark blockquote cite,#root-el.dark blockquote small{color:#e9ebed;display:block;font-size:.5em;font-style:normal;font-weight:400;line-height:1.66667;margin-top:1em}#root-el.dark blockquote cite:last-child,#root-el.dark blockquote small:last-child{margin-bottom:0}#root-el.dark dl{margin:0}#root-el.dark dt{font-weight:700}#root-el.dark dd{margin:0 0 1.66667em}#root-el.dark ol,#root-el.dark ul{margin:0 0 1.66667em;padding:0 0 0 1.66667em}#root-el.dark li>ol,#root-el.dark li>ul{margin-bottom:0}#root-el.dark hr{background-color:#000;border:0;height:1px;margin:1.66667em 0}#root-el.dark table{font-size:.88889rem;line-height:1.5;margin:0 0 1.66667rem;text-align:left;width:100%}#root-el.dark caption{color:#e9ebed;font-size:.875em;font-style:normal;margin-bottom:1em;text-align:left}#root-el.dark td,#root-el.dark th{border-bottom:1px solid #000;padding:.5em 5px}#root-el.dark label,#root-el.dark th{color:#cdd1d7;font-weight:700}#root-el.dark label>span{font-size:14px;font-weight:400}#root-el.dark input[type=checkbox]+label,#root-el.dark input[type=radio]+label{cursor:pointer;padding-left:.25em;padding-right:1em}#root-el.dark input[type=email],#root-el.dark input[type=password],#root-el.dark input[type=search],#root-el.dark input[type=tel],#root-el.dark input[type=text],#root-el.dark input[type=url],#root-el.dark select,#root-el.dark textarea{background:#fff;border:1px solid #33383f;border-radius:5px;box-shadow:none;box-sizing:border-box;color:#959ea9;display:inline-block;font-size:16px;font-weight:400;line-height:1.5;max-width:100%;padding:.5em 10px;vertical-align:baseline;width:100%}#root-el.dark input[type=email]:focus,#root-el.dark input[type=password]:focus,#root-el.dark input[type=search]:focus,#root-el.dark input[type=tel]:focus,#root-el.dark input[type=text]:focus,#root-el.dark input[type=url]:focus,#root-el.dark select:focus,#root-el.dark textarea:focus{outline:0}#root-el.dark input[type=email],#root-el.dark input[type=password],#root-el.dark input[type=search],#root-el.dark input[type=tel],#root-el.dark input[type=text],#root-el.dark input[type=url],#root-el.dark select{height:2.625em}#root-el.dark a.button,#root-el.dark button,#root-el.dark input[type=button],#root-el.dark input[type=reset],#root-el.dark input[type=submit]{background:#1de2bc;border:2px solid #1de2bc;border-radius:30px;box-sizing:border-box;color:#000;display:inline-block;font-size:14px;height:3em;letter-spacing:.075em;line-height:1.5;padding:.25em 35px;text-transform:uppercase;transition:.3s ease}#root-el.dark a.button:active,#root-el.dark a.button:focus,#root-el.dark a.button:hover,#root-el.dark button:active,#root-el.dark button:focus,#root-el.dark button:hover,#root-el.dark input[type=button]:active,#root-el.dark input[type=button]:focus,#root-el.dark input[type=button]:hover,#root-el.dark input[type=reset]:active,#root-el.dark input[type=reset]:focus,#root-el.dark input[type=reset]:hover,#root-el.dark input[type=submit]:active,#root-el.dark input[type=submit]:focus,#root-el.dark input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(29,226,188,.2);color:#cdd1d7;outline:0}#root-el.dark a.button{line-height:1.2;padding-bottom:.75em;padding-top:.75em}#root-el.dark a.circle{background:transparent;color:#959ea9;padding:0;width:3em}#root-el.dark a.circle:active,#root-el.dark a.circle:focus,#root-el.dark a.circle:hover{background:#1de2bc;color:#000}#root-el.dark embed,#root-el.dark iframe,#root-el.dark object,#root-el.dark video{max-width:100%}#root-el.dark .js-reframe{margin:0 0 1.66667em}#root-el.dark img{height:auto;max-width:100%}#root-el.dark .block img,#root-el.dark .post-content img,#root-el.dark .post-thumbnail img{border-radius:5px}#root-el.dark .screen-reader-text,#root-el.dark .site-logo+.site-identity .site-description,#root-el.dark .site-logo+.site-identity .site-title{border:0;clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;padding:0;position:absolute!important;width:1px}#root-el.dark .underline{position:relative}#root-el.dark .underline:after{border-left:30px solid #1de2bc;box-shadow:inset 0 1px 0 0 #000;display:block;content:"";height:3px;margin-top:1rem}#root-el.dark .post-content:after{clear:both}#root-el.dark .post-content:after,#root-el.dark .post-content:before{content:"";display:table}#root-el.dark .inner{margin-left:auto;margin-right:auto;max-width:1080px}#root-el.dark .site{overflow:hidden;position:relative}#root-el.dark .site-content,#root-el.dark .site-header-inside,#root-el.dark .site-nav-inside{padding-left:3vw;padding-right:3vw}#root-el.dark .site-content{background-color:#000;padding-bottom:2.5em;padding-top:2.5em}@media only screen and (min-width:801px){#root-el.dark .site-content{margin-left:30vw;padding-bottom:3.33333em;padding-top:3.33333em}}@media only screen and (min-width:1001px){#root-el.dark .site-content{margin-left:300px}}#root-el.dark .site-main{margin-bottom:3.33333em}#root-el.dark .site-footer,#root-el.dark .site-main{margin-left:auto;margin-right:auto;max-width:760px}#root-el.dark .style-overflow .site-main{margin-left:0;margin-right:0;max-width:none}#root-el.dark .style-overflow .block-content,#root-el.dark .style-overflow .block-title,#root-el.dark .style-overflow .hero,#root-el.dark .style-overflow .post-feed+.block-cta,#root-el.dark .style-overflow .post-full .post-content,#root-el.dark .style-overflow .post-full .post-header,#root-el.dark .style-overflow .post-full .post-meta,#root-el.dark .style-overflow .post-full .post-subtitle{margin-left:auto;margin-right:auto;max-width:760px}#root-el.dark .site-header{background:#cdd1d7;border-bottom:1px solid #000;color:#33383f}#root-el.dark .site-header-inside{padding-bottom:1.11111em;padding-top:1.11111em}#root-el.dark .site-branding{align-items:center;display:flex;font-size:1rem}#root-el.dark .site-logo{flex:0 0 auto;margin:0 10px 0 0}#root-el.dark .site-logo a{border:0}#root-el.dark .site-logo img{max-height:45px}#root-el.dark .profile{flex:0 0 auto;margin:0 15px 0 0}#root-el.dark .profile a{border:0}#root-el.dark .profile .avatar{border:2px solid #1de2bc;box-shadow:0 0 1px 7px rgba(29,226,188,.2);border-radius:100%;display:block;object-fit:cover;height:45px;width:45px}#root-el.dark .site-title{color:#33383f;font-size:1.11111rem;font-weight:700;line-height:1;margin:0}#root-el.dark .site-title a{border:0;color:inherit}#root-el.dark .site-description{font-size:12px;line-height:1;margin:.25em 0 0}#root-el.dark .site-navigation{background:#cdd1d7;bottom:0;box-sizing:border-box;-webkit-overflow-scrolling:touch;position:absolute;right:-100%;top:0;transition:right .3s,visibility 0s .3s;visibility:hidden;width:100%;z-index:90}#root-el.dark .site-nav-wrap{height:100%;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}#root-el.dark .site-nav-inside{padding-bottom:4em;padding-top:4em}#root-el.dark .menu{border-bottom:1px solid #33383f;font-size:14px;line-height:1.5;letter-spacing:.15em;list-style:none;margin:0;padding:0;text-transform:uppercase}#root-el.dark .menu-item{border-top:1px solid #33383f;padding:.5em 0}#root-el.dark .menu-item a{border:0;color:inherit}#root-el.dark .current-menu-item a,#root-el.dark .menu-item a:hover{color:#1de2bc}#root-el.dark .social-links{display:flex;flex-wrap:wrap;margin-top:1.66667em}#root-el.dark .social-links a{align-items:center;border:1px solid #33383f;border-radius:50%;color:inherit;display:flex;height:30px;justify-content:center;margin:0 10px .5em 0;transition:.3s ease;width:30px}#root-el.dark .social-links a:hover{background:#1de2bc;border-color:#1de2bc;box-shadow:0 0 1px 5px rgba(29,226,188,.2);color:#fff}#root-el.dark .social-links .fab{font-size:16px;line-height:1.875}#root-el.dark .site-header.dark{background:#33383f;border:0;color:#cdd1d7}#root-el.dark .site-header.dark .site-navigation{background:#33383f}#root-el.dark .site-header.dark .site-title{color:#fff}#root-el.dark .site-header.dark .menu,#root-el.dark .site-header.dark .menu-item,#root-el.dark .site-header.dark .social-links a{border-color:rgba(205,209,215,.4)}#root-el.dark .site-header.dark .social-links a:hover{border-color:#1de2bc}@media only screen and (min-width:801px){#root-el.dark .site-header{border-bottom:0;border-right:1px solid #000;height:100%;left:0;position:fixed;text-align:center;top:0;width:30vw}#root-el.dark .site-header-wrap{height:100%;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}#root-el.dark .site-header-inside{padding-bottom:3.33333em;padding-top:3.33333em}#root-el.dark .site-branding{flex-direction:column}#root-el.dark .site-identity{margin-bottom:1.66667em;padding:0}#root-el.dark .site-logo{margin:0 0 1.66667em}#root-el.dark .site-logo img{max-height:100px}#root-el.dark .profile{margin:0 0 1.66667em}#root-el.dark .profile a{outline-color:#000}#root-el.dark .profile .avatar{border-width:3px;box-shadow:0 0 1px 11px rgba(29,226,188,.2);object-fit:cover;height:100px;width:100px}#root-el.dark .site-title{font-size:1.33333rem;line-height:1.2}#root-el.dark .site-description{font-size:14px;line-height:1.2;margin-top:.4em}#root-el.dark .menu-toggle{display:none}#root-el.dark .menu-toggle~.icon-menu{display:none}#root-el.dark .site-navigation{position:static;visibility:visible}#root-el.dark .site-nav-inside{padding:0}#root-el.dark .social-links{justify-content:center}#root-el.dark .social-links a{margin:0 5px .5em}}@media only screen and (min-width:1001px){#root-el.dark .site-header{max-width:300px}#root-el.dark .site-header-inside{padding-left:24px;padding-right:24px}}@media only screen and (max-width:800px){#root-el.dark input#menu-toggle{background:0;border:0;box-shadow:none;color:inherit;padding:0;height:30px;width:30px;display:block;position:absolute;top:2vh;right:5vw;cursor:pointer;opacity:0;z-index:100;-webkit-touch-callout:none}#root-el.dark input:checked#menu-toggle~.site-navigation{right:0;transition:right .3s ease-in-out;visibility:visible}#root-el.dark .menu--opened .site{height:100%;left:0;overflow:hidden;position:fixed;top:0;transform:translateZ(0);width:100%;z-index:9997}}#root-el.dark .post{margin-bottom:3.33333em;position:relative}#root-el.dark .post-header{margin-bottom:1.66667em}#root-el.dark .post-title{font-size:2.66667rem;margin:0 0 1.66667rem}#root-el.dark .post-title a{border:0;color:inherit}#root-el.dark .post-title a:hover{color:#1de2bc}#root-el.dark .post-subtitle{font-size:1.33333rem;line-height:1.5;margin-bottom:1.66667rem}#root-el.dark .post-thumbnail{margin-bottom:1.66667em}#root-el.dark .post-thumbnail img{width:100%}#root-el.dark .post-avatar{border:none;width:3em;float:left;margin-right:1.5em}#root-el.dark .post-meta{color:#e9ebed;font-size:14px;letter-spacing:1px;line-height:1.5;margin-bottom:1.66667rem;text-transform:uppercase}#root-el.dark .post-feed{display:flex;flex-wrap:wrap;margin:0 -.83333em 1.66667em}#root-el.dark .post-feed .post{display:flex;flex:0 0 50%;flex-direction:column;margin-bottom:1.66667em}#root-el.dark .post-feed .post-inside{border:1px solid #000;border-radius:5px;display:flex;flex:1 1 auto;flex-direction:column;margin:0 .833333em}#root-el.dark .post-feed .post-thumbnail{border:0;border-radius:5px 5px 0 0;display:block;margin:0;position:relative;width:100%}#root-el.dark .post-feed .post-thumbnail:before{content:"";display:block;padding-top:6.666%}#root-el.dark .post-feed .post-thumbnail img{border-radius:5px 5px 0 0;height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}#root-el.dark .post-feed .post-header{margin-bottom:.83333rem;padding:1.33333rem 1.33333rem 0}#root-el.dark .post-feed .post-header+.post-thumbnail{padding-top:.83333rem}#root-el.dark .post-feed .post-title{border-bottom:1px solid #000;font-size:1.33333rem;margin:0;padding-bottom:.83333rem}#root-el.dark .post-feed .post-content{flex-grow:1;font-size:16px;padding:0 1.33333rem}#root-el.dark .post-feed .post-description{margin-bottom:1.66667em}#root-el.dark .post-feed .post-meta{margin:0;padding:0 1.33333rem 1.33333rem}#root-el.dark .post-highlight blockquote{font-size:2rem}@media only screen and (max-width:1000px){#root-el.dark .post-feed{margin-left:-1.5vw;margin-right:-1.5vw}#root-el.dark .post-feed .post{margin-bottom:3vw}#root-el.dark .post-feed .post-inside{margin-left:1.5vw;margin-right:1.5vw}}@media only screen and (max-width:600px),only screen and (min-width:801px)and (max-width:1000px){#root-el.dark .post-feed .post{flex:0 0 100%}}#root-el.dark .pagination{padding:0 70px 1.66667em;position:relative;text-align:center}#root-el.dark .page-number{color:#e9ebed;display:inline-block;font-size:14px;letter-spacing:1px;line-height:1.5;padding:.75em 0;text-transform:uppercase}#root-el.dark .newer-posts,#root-el.dark .older-posts{position:absolute;top:0}#root-el.dark .older-posts{left:0}#root-el.dark .newer-posts{right:0}#root-el.dark .hero{margin-bottom:2.5em}#root-el.dark .hero-title{font-size:2.66667rem;margin:0 0 1rem}#root-el.dark .hero-text{font-size:1.33333rem;line-height:1.5;margin:0}#root-el.dark .block{margin-bottom:5em}#root-el.dark .block.read-next{margin-bottom:3.33333em;margin-top:5em}#root-el.dark .block-title{color:#cdd1d7;font-size:1rem;letter-spacing:.11111em;margin:0 0 1.66667rem;text-transform:uppercase}#root-el.dark .block-thumbnail{margin-bottom:1.66667em}#root-el.dark .block-thumbnail img{width:100%}#root-el.dark .block-cta .button{margin-right:15px}#root-el.dark .site-footer{align-items:center;border-top:1px solid #000;display:flex;padding-top:2.5em}#root-el.dark .site-footer .site-info{font-size:11px;letter-spacing:.09em;line-height:1.5;margin-bottom:0;text-transform:uppercase}#root-el.dark .site-footer .to-top{border:0;color:#959ea9;display:none;flex:0 0 auto;height:30px;margin-left:auto;position:relative;width:30px}@media only screen and (max-width:800px){#root-el.dark .site-footer .site-info{margin-right:15px}#root-el.dark .site-footer .to-top{display:block}}#root-el.dark .palette-blue a{border-color:#10bcf9}#root-el.dark .palette-blue a:hover{border-color:currentColor}#root-el.dark .palette-blue a.button,#root-el.dark .palette-blue button,#root-el.dark .palette-blue input[type=button],#root-el.dark .palette-blue input[type=reset],#root-el.dark .palette-blue input[type=submit]{background:#10bcf9;border-color:#10bcf9}#root-el.dark .palette-blue a.button:active,#root-el.dark .palette-blue a.button:focus,#root-el.dark .palette-blue a.button:hover,#root-el.dark .palette-blue button:active,#root-el.dark .palette-blue button:focus,#root-el.dark .palette-blue button:hover,#root-el.dark .palette-blue input[type=button]:active,#root-el.dark .palette-blue input[type=button]:focus,#root-el.dark .palette-blue input[type=button]:hover,#root-el.dark .palette-blue input[type=reset]:active,#root-el.dark .palette-blue input[type=reset]:focus,#root-el.dark .palette-blue input[type=reset]:hover,#root-el.dark .palette-blue input[type=submit]:active,#root-el.dark .palette-blue input[type=submit]:focus,#root-el.dark .palette-blue input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(16,188,249,.2)}#root-el.dark .palette-blue a.button.circle{background:transparent}#root-el.dark .palette-blue a.button.circle:active,#root-el.dark .palette-blue a.button.circle:focus,#root-el.dark .palette-blue a.button.circle:hover{background:#10bcf9}#root-el.dark .palette-blue .underline:after{border-color:#10bcf9}#root-el.dark .palette-blue .profile .avatar{border-color:#10bcf9;box-shadow:0 0 1px 7px rgba(16,188,249,.2)}@media only screen and (min-width:801px){#root-el.dark .palette-blue .profile .avatar{box-shadow:0 0 1px 11px rgba(16,188,249,.2)}}#root-el.dark .palette-blue .current-menu-item a,#root-el.dark .palette-blue .menu-item a:hover{color:#10bcf9}#root-el.dark .palette-blue .social-links a{border-color:#000}#root-el.dark .palette-blue .social-links a:hover{background:#10bcf9;border-color:#10bcf9;box-shadow:0 0 1px 5px rgba(16,188,249,.2)}#root-el.dark .palette-blue .dark .social-links a{border-color:rgba(149,158,169,.4)}#root-el.dark .palette-blue .dark .social-links a:hover{border-color:#10bcf9}#root-el.dark .palette-blue .post-title a:hover{color:#10bcf9}#root-el.dark .palette-violet a{border-color:#9371e6}#root-el.dark .palette-violet a:hover{border-color:currentColor}#root-el.dark .palette-violet a.button,#root-el.dark .palette-violet button,#root-el.dark .palette-violet input[type=button],#root-el.dark .palette-violet input[type=reset],#root-el.dark .palette-violet input[type=submit]{background:#9371e6;border-color:#9371e6}#root-el.dark .palette-violet a.button:active,#root-el.dark .palette-violet a.button:focus,#root-el.dark .palette-violet a.button:hover,#root-el.dark .palette-violet button:active,#root-el.dark .palette-violet button:focus,#root-el.dark .palette-violet button:hover,#root-el.dark .palette-violet input[type=button]:active,#root-el.dark .palette-violet input[type=button]:focus,#root-el.dark .palette-violet input[type=button]:hover,#root-el.dark .palette-violet input[type=reset]:active,#root-el.dark .palette-violet input[type=reset]:focus,#root-el.dark .palette-violet input[type=reset]:hover,#root-el.dark .palette-violet input[type=submit]:active,#root-el.dark .palette-violet input[type=submit]:focus,#root-el.dark .palette-violet input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(147,113,230,.2)}#root-el.dark .palette-violet a.button.circle{background:transparent}#root-el.dark .palette-violet a.button.circle:active,#root-el.dark .palette-violet a.button.circle:focus,#root-el.dark .palette-violet a.button.circle:hover{background:#9371e6}#root-el.dark .palette-violet .underline:after{border-color:#9371e6}#root-el.dark .palette-violet .profile .avatar{border-color:#9371e6;box-shadow:0 0 1px 7px rgba(147,113,230,.2)}@media only screen and (min-width:801px){#root-el.dark .palette-violet .profile .avatar{box-shadow:0 0 1px 11px rgba(147,113,230,.2)}}#root-el.dark .palette-violet .current-menu-item a,#root-el.dark .palette-violet .menu-item a:hover{color:#e5ddf9}#root-el.dark .palette-violet .social-links a{border-color:#33383f}#root-el.dark .palette-violet .social-links a:hover{background:#9371e6;border-color:#9371e6;box-shadow:0 0 1px 5px rgba(147,113,230,.2)}#root-el.dark .palette-violet .dark .social-links a{border-color:rgba(205,209,215,.4)}#root-el.dark .palette-violet .dark .social-links a:hover{border-color:#9371e6}#root-el.dark .palette-violet .post-title a:hover{color:#9371e6}#root-el.dark .palette-orange a{border-color:#fc6e51}#root-el.dark .palette-orange a:hover{border-color:currentColor}#root-el.dark .palette-orange a.button,#root-el.dark .palette-orange button,#root-el.dark .palette-orange input[type=button],#root-el.dark .palette-orange input[type=reset],#root-el.dark .palette-orange input[type=submit]{background:#fc6e51;border-color:#fc6e51}#root-el.dark .palette-orange a.button:active,#root-el.dark .palette-orange a.button:focus,#root-el.dark .palette-orange a.button:hover,#root-el.dark .palette-orange button:active,#root-el.dark .palette-orange button:focus,#root-el.dark .palette-orange button:hover,#root-el.dark .palette-orange input[type=button]:active,#root-el.dark .palette-orange input[type=button]:focus,#root-el.dark .palette-orange input[type=button]:hover,#root-el.dark .palette-orange input[type=reset]:active,#root-el.dark .palette-orange input[type=reset]:focus,#root-el.dark .palette-orange input[type=reset]:hover,#root-el.dark .palette-orange input[type=submit]:active,#root-el.dark .palette-orange input[type=submit]:focus,#root-el.dark .palette-orange input[type=submit]:hover{background:0;box-shadow:0 0 1px 7px rgba(252,110,81,.2)}#root-el.dark .palette-orange a.button.circle{background:transparent}#root-el.dark .palette-orange a.button.circle:active,#root-el.dark .palette-orange a.button.circle:focus,#root-el.dark .palette-orange a.button.circle:hover{background:#fc6e51}#root-el.dark .palette-orange .underline:after{border-color:#fc6e51}#root-el.dark .palette-orange .profile .avatar{border-color:#fc6e51;box-shadow:0 0 1px 7px rgba(252,110,81,.2)}@media only screen and (min-width:801px){#root-el.dark .palette-orange .profile .avatar{box-shadow:0 0 1px 11px rgba(252,110,81,.2)}}#root-el.dark .palette-orange .current-menu-item a,#root-el.dark .palette-orange .menu-item a:hover{color:#fc6e51}#root-el.dark .palette-orange .social-links a{border-color:#000}#root-el.dark .palette-orange .social-links a:hover{background:#fc6e51;border-color:#fc6e51;box-shadow:0 0 1px 5px rgba(252,110,81,.2)}#root-el.dark .palette-orange .dark .social-links a{border-color:rgba(149,158,169,.4)}#root-el.dark .palette-orange .dark .social-links a:hover{border-color:#fc6e51}#root-el.dark .palette-orange .post-title a:hover{color:#fc6e51}
The Hidden Cost of AWS ELBs - Rohit's Personal Blog This app works best with JavaScript enabled.
Or how we saved $1200 every month with Let's Encrypt
This past month we had a really high AWS bill, and it was supposed to be high but not THIS high. The culprit - "Data Transfer Out". I'm sure I'm not the only one who has had to deal with this.
Some Context
We had a NodeJS service running on EC2 in an Auto Scaling Group (ASG) behind an Application Load Balancer (ALB) that was supposed to handle a huge volume of requests. We were expecting a consistent increase in traffic this month, so we had made estimates on how it would affect our costs. We had expected some high data transfer out of our Application Load Balancer (ALB) but this was a consistent 4-5x of our estimates. Time to investigate.
Analysing the Data
After filtering Cost Explorer data with tags, it was clear that the ALB was the source of these costs. I immediately went to CloudWatch and checked the "Processed Bytes" metric of the ALB.
Cloud Watch
Processed Bytes is supposed to be "the total number of bytes processed by the load balancer over IPv4 and IPv6 ... includes traffic to and from clients" , so ideally Processed Bytes should be greater than the "Data Transfer Out". But it was not..?
Our stats showed Processed Bytes to be around what our estimates had predicted for this amount of traffic. But Cost Explorer was showing a number that was 4-5 times that. Time to contact support.
AWS Support
We raised a support request to AWS, but we didn't have high hopes because we were not on the premium support plan. But it was worth a shot.
ELB Access Logs
Next up, we enabled ALB Access Logs to an S3 bucket and let it generate some logs for some time. Upon checking the logs, we were certain that this wasn't a problem at the application level. The access logs showed response size consistent with what we had estimated, no inflation due to extra headers or something like that.
VPC Flow Logs
We wondered if there was some other service running that might be communicating over an Elastic IP or public IP instead of a private IP. To check that, we enabled VPC Flow logs to another S3 bucket and let it generate some logs for some time.
We didn't find any services that might be communicating over Elastic IP but we did find some services that could be moved to the same Availability Zone (AZ) and reduced some Regional Data Transfer costs.
Frantic Googling
After eliminating all possible sources of Data Transfer we still had no clue what was the source of the Cost other than that it was from the ALB. This led to frantic googling and sending/explaining the problem statement to various people.
Then over the weekend, trying to think of keywords that would not lead me down to more documentation, I finally found this StackOverflow answer :
Q. AWS ELB: How can I see how many bytes of outbound network traffic an SSL-enabled ELB generates
A. The handshake of a TLS connection is pretty much constant and do not depend on your application. So your function is really : number of connections * ( size of http responses + constant)
And it finally clicked, the missing piece of the puzzle. Since HTTPS was handled directly by the ALB, it wouldn't show in the Access Logs as the instance didn't have to deal with it.
Here is an article that estimates the payload to average ~6.5k (depending on your certificate size). Our response sizes were really small, and this could be a major part of the response size if the user was visiting the site for the first time. Since a lot of the traffic was new, it would be a significant chunk.
That led to even more Googling on how HTTPS might affect AWS ELB costs and we came upon this very good article that also suggested increasing the default timeout for idle connections to 10 minutes for the ALB along with changing the certificate.
Testing Different HTTPS Certs
We were currently using the default certificate generated by Amazon Certificate Manager (ACM) with the Load Balancer. We tested the size of the TLS handshake with Wormly Test SSL Tool and then replaced it with one generated with Let's Encrypt. To be thorough we also tested TLS handshake sizes of different websites with different Certificate Authorities.
Certificate Issuer
Certificate Type
SSL Handshake Size (Bytes)
ACM
Wildcard (RSA 2048 bits)
5971
Let's Encrypt
Single (RSA 2048 bits)
3753
Let's Encrypt
Wildcard (RSA 2048 bits)
3702
Let's Encrypt
Wildcard (ECC 256 bits)
3323
DigiCert
Single (ECC 256 bits)
3311
Sectigo
Wildcard (RSA 2048 bits)
6720
DigiCert was the best with respect to size, but Let's Encrypt was close enough (& free!). ECC certificates are not compatible with some older browsers, so we generated both the smaller ECC and RSA certificates through acme.sh and uploaded them through AWS CLI. The ALB will automatically select the best one depending on the client (read more here ).
After adding them to the ALB listener and letting Cost Explorer catch up for a day, we saw a significant decrease in our Data Transfer Out Costs for the same number of requests.
It was still not equal to the estimates we had, but it will never be because we never considered the TLS handshake size in our estimates. AWS Costs really are a mystery until you actually get the bill.