Назад | Перейти на главную страницу

Сколько стоят sql-запросы в AWS?

Я все время читаю / непонимаю, что в EBS стоит 0,10 доллара за миллион. Означает ли это, что 1 миллион запросов стоит 0,10 доллара? б / с я создаю веб-тесты, и они требуют много запросов для сохранения прогресса, результатов и экзаменов. Я также использую объект blob в моем sql для хранения изображений. Значит ли это, что я плачу 0,10 доллара за 1 миллион запросов?

EBS - это необработанное хранилище на уровне блоков. Думайте об этом как о виртуальном диске. Вы запрашиваете том EBS, монтируете его на экземпляре машины AWS, форматируете, а затем сохраняете на нем данные. Хранение данных на томе EBS стоит денег, а перемещение данных на общий ресурс EBS извне AWS стоит денег. Доступ к нему из AWS бесплатный, в этом случае вы просто платите за хранилище.

Таким образом, если вы запускаете SQL-сервер на экземпляре AWS, который хранит свои данные на томе EBS, вам нужно будет хранить данные SQL на диске EBS, но нет затрат на выполнение запроса к этому SQL-серверу, работающему на Экземпляр AWS (при условии, что транзакция может происходить с данными, полностью отображенными в памяти). Это просто передача данных по сети, и это то, для чего инстансы AWS были изначально более или менее предназначены: для обслуживания данных.

Чтобы оценить затраты на EBS, вам необходимо выяснить, сколько данных на диске будет хранить ваш SQL-сервер, а не сколько запросов будет выполнено к вашему SQL-серверу. Данные на диске: это стоимость EBS для вашего проекта на основе AWS. Есть раздел в конце этой ссылки EBS который дает вам следующие советы по оценке ваших затрат на EBS:

В Amazon Elastic Block Store вы платите только за то, что используете. Объемное хранилище оплачивается по сумме, которую вы выделяете до момента его выпуска, и оценивается по ставке 0,10 доллара США за выделенный ГБ в месяц. Amazon EBS также взимает 0,10 доллара США за 1 миллион запросов ввода-вывода, которые вы отправляете на свой том. Такие программы, как IOSTAT, можно использовать для измерения точного использования ввода-вывода вашей системы в любое время. Однако приложения и операционные системы часто используют разные уровни кэширования, поэтому вы, вероятно, увидите в вашем счете меньшее количество запросов ввода-вывода, чем ваше приложение, если вы не синхронизируете все свои операции ввода-вывода с диском.

Например, база данных веб-сайта среднего размера может иметь размер 100 ГБ и ожидать в среднем 100 операций ввода-вывода в секунду в течение месяца. Это приведет к 10 долларам в месяц затрат на хранение (100 ГБ x 0,10 доллара в месяц) и примерно 26 долларам в месяц затрат на запросы (~ 2,6 миллиона секунд в месяц x 100 операций ввода-вывода в секунду * 0,10 доллара США за миллион операций ввода-вывода).

Хранилище снимков зависит от объема пространства, которое ваши данные занимают в Amazon S3. Поскольку данные сжимаются перед сохранением в Amazon S3, а Amazon EBS не сохраняет пустые блоки, вероятно, что размер моментального снимка будет значительно меньше размера вашего тома. Для первого снимка тома Amazon EBS сохранит полную копию ваших данных в Amazon S3. Однако для каждого инкрементного снимка в Amazon S3 будет сохранена только измененная часть вашего тома Amazon EBS.

Перед передачей в Amazon S3 объемные данные разбиваются на блоки. Хотя размер фрагментов может измениться в результате будущих оптимизаций, количество запросов PUT, необходимых для сохранения конкретного снимка в Amazon S3, можно оценить, разделив размер данных, которые изменились с момента последнего снимка, на 4 МБ. И наоборот, при загрузке снимка состояния из Amazon S3 в том Amazon EBS количество запросов GET, необходимых для полной загрузки тома, можно оценить, разделив полный размер снимка на 4 МБ. С вас также будет взиматься плата за GET и PUT по обычным тарифам Amazon S3.

Эти 0,10 доллара США взимаются в зависимости от количества запросов ввода-вывода, а не количества запросов. Если вы используете EBS для хранения базы данных, то для каждого запроса к базе данных может потребоваться любое количество запросов ввода-вывода. Например, для выполнения запроса UPDATE требуется несколько операций: ему необходимо прочитать базу данных, чтобы найти строки, которые нужно изменить, затем записать обратно измененные строки и, возможно, также записать измененные индексы. Однако, если сервер базы данных кэшировал таблицу в памяти, ему не нужно будет читать из тома EBS, чтобы найти строки, которые нужно изменить, поэтому потребуется меньше запросов ввода-вывода. Нет простого способа сказать «0,10 доллара дает вам столько запросов».