Регулирование пропускной способности C# с Azure
Я написал небольшую утилиту, которая использует хранилище BLOB-объектов Azure для передачи некоторых файлов во вторичную резервную копию (~100 ГБ). Пока что он работает очень хорошо, однако, поскольку он находится в зоне колокейшн, мое использование полосы пропускания может достигать 190 Мб / с +, что является счетом, который я бы предпочел не оплачивать. Учитывая это, у меня есть два вопроса:
- Исходящий трафик на сервере с несколькими IP-адресами использует первый IP-адрес, настроенный как "основной". Я знаю, что в C# я могу получить список сетевых адаптеров и изменить свойства, но возможно ли сообщить приложению, что его трафику нужно использовать определенный IP (вместо значения по умолчанию) для исходящих соединений? Мы можем использовать это для фильтрации всего, что выходит с этого IP, независимо от места назначения, и только это приложение будет использовать этот адрес.
- Если нет, возможно ли настроить приложение для отправки всего трафика на отдельный адаптер, который будет иметь один IP-адрес, чтобы мы могли фильтровать исходящие сигналы на уровне нашего маршрутизатора, чтобы регулировать этот трафик?
В качестве альтернативы (если мы атакуем это с неправильной точки зрения), возможно ли ограничить передачу Azure максимальным выделением полосы пропускания в некоторой емкости? Это все, что мне действительно нужно, так как любой другой трафик должен быть в состоянии использовать максимум, который он может использовать (это означает, что QoS не применяется - здесь нет разногласий, просто слишком много исходящих сообщений в целом).
1 ответ
Для ваших потребностей в резервном копировании, вы уже оценили RA-GRS, он обеспечивает встроенную репликацию данных во вторичное местоположение с доступом к данным только для чтения. https://azure.microsoft.com/en-us/documentation/articles/storage-redundancy/
Насколько я могу судить, API не позволяет вам устанавливать ограничения для потребляемой пропускной способности, однако вы можете включить мониторинг хранилища, чтобы у вас было лучшее представление о количестве запущенных транзакций. https://azure.microsoft.com/en-us/documentation/articles/storage-monitor-storage-account/
Кстати, есть одна вещь, которая может быть в состоянии решить вашу проблему с ценами, - это настроить лимит расходов для вашей подписки Azure, но это зависит от типа вашей подписки. https://azure.microsoft.com/en-us/pricing/spending-limits/