У нас высокий трафик (100 тыс. Обращений в день), новостной сайт Drupal размещен на AWS. За ним стоит cloudflare и 2 сервера Varnish с балансировкой нагрузки. По какой-то причине использование полосы пропускания для RDS очень велико. Это после того, как все таблицы кеша размещены в memcache в Elastic Cache. 100% трафика анонимны. За исключением нового или обновленного контента трафик обслуживается лаком.
Но все же пропускная способность RDS очень высока. Например, к 18-му числу этого месяца объем использования уже составляет 15 ТБ +. Эта стоимость убивает весь сайт.
Как мы можем определить, что поглощает всю полосу пропускания? Как нам найти первопричину?
См. Подробную информацию, скопированную на моей странице выставления счетов:
Bandwidth
$0.000 per GB - data transfer in per month - 4.808 GB - $0.00
$0.000 per GB - first 1 GB of data transferred out per month - 1 GB - $0.00
$0.010 per GB - regional data transfer - in/out/between EC2 AZs or using IPs or ELB - 15,147.744 GB - $151.48
$0.120 per GB - up to 10 TB / month data transfer out - 20.759 GB - $2.49
Total: $153.97
Region Total: $154.04
Вы всегда должны использовать частный IP-адреса для связи между различными компонентами инфраструктуры (RDS, ElastiCache и т. Д.). Если вы используете общественный IP-адрес, тогда вам будет выставлен счет за региональную передачу данных, потому что трафик уходит и повторно входит в AWS.
Тщательно проверьте свое приложение на предмет того, что некорректно обращается к внутреннему компоненту с использованием общедоступного IP-адреса.
Пункт «региональная передача данных - вход / выход / между зонами доступа EC2 или с использованием IP или ELB» учитывает передачу данных:
Если ваша цена за "региональная передача данных - вход / выход / между зонами доступа EC2 или с использованием IP-адресов или ELB"составляет 151,48 доллара США, то это означает, что сумма данных, переданных за эти 3 единицы, составляет 15,148 ТБ.
Так всегда используйте частный IP адрес при передаче данных на EC2 в той же зоне доступности. Это, наверное, твоя проблема.
Если вы хотите избавиться от этой стоимости, вам следует использовать все инстансы EC2 в одной зоне доступности, но я бы не рекомендовал. Если что-то случится с выбранной зоной доступности, вероятно, ваш сервис отключится.
Вы можете использовать отчеты AWS Billing and Cost Management, чтобы узнать, какие из них вносят наибольший вклад в эти расходы, просто добавьте теги в свои экземпляры и в консоли AWS Billing and Cost Management создайте Отчет по ведру S3.