Amazon S3 ці Cloudflare R2: нулявы egress не кампенсуе кожную затрымку

|Аўтар: Рэдакцыя QUASA|5 хв чытання| 1
Amazon S3 ці Cloudflare R2: нулявы egress не кампенсуе кожную затрымку

Для прамой раздачы вялікага аб’ёму файлаў Cloudflare R2 часта дае меншы рахунак: паводле тарыфаў Cloudflare R2, выхадны трафік не аплачваецца ні ў адным класе сховішча. У Standard захоўванне каштуе $0,015 за ГБ у месяц, запісы класа A — $4,50 за мільён, чытанні класа B — $0,36 за мільён. Amazon S3 можа быць лепшым выбарам, калі для сэрвісу важнейшыя хуткасць загрузкі файлаў, міжрэгіянальная рэплікацыя або функцыі AWS, ад якіх ужо залежыць прыкладанне.

Затрымку паказвае еўрапейскі тэст AIMultiple: пры загрузцы файла памерам 1 ГБ прапускная здольнасць склала 77,92 МБ/с для S3 і 25,61 МБ/с для R2, а затрымка аперацыі загрузкі — адпаведна 28,45 і 171,58 мс. Тэст праводзіўся з Еўропы праз еўрапейскія канчатковыя пункты сэрвісаў. Ён дае падставу ўлічыць рызыку павольнейшага запісу ў R2, але не прадказвае хуткасць злучэнняў з Беларусі.

Што ўваходзіць у кошт чытання

Для абодвух сэрвісаў трэба скласці плату за захоўванне і запыты, а для прамога чытання з S3 — яшчэ і плату за перадачу ў інтэрнэт. На старонцы цэн Amazon S3 у прыкладзе для Еўропы (Ірландыя) паказана $0,09 за ГБ выхаднога трафіку. Першыя 100 ГБ такой перадачы за месяц бясплатныя ў сукупнасці для адпаведных сэрвісаў і рэгіёнаў AWS, таму выкарыстанне квоты іншымі сэрвісамі змяняе рахунак S3.

Для разлікаў ніжэй прыняты S3 Standard у Ірландыі па $0,023 за ГБ-месяц і $0,0004 за тысячу GET-запытаў. У R2 Standard бясплатная месячная квота ахоплівае 10 ГБ-месяцаў захоўвання, мільён аперацый класа A і 10 мільёнаў аперацый класа B. Cloudflare акругляе платнае выкарыстанне да наступнай разліковай адзінкі, таму каля мяжы квоты рэальны рахунак можа крыху адрознівацца ад простага множання аб’ёму на стаўку.

Запіс і чытанне аплачваюцца па-рознаму. Загрузка аб’екта ў R2 лічыцца аперацыяй класа A, а яго атрыманне — аперацыяй класа B; у S3 запыты таксама тарыфікуюцца паводле тыпу. Таму невялікая колькасць буйных файлаў і мільёны дробных запытаў да таго ж аб’ёму дадзеных даюць розныя вынікі нават пры аднолькавым выхадным трафіку.

Ніжэйшая стаўка R2 Infrequent Access не падыходзіць для механічнай замены Standard у такой мадэлі. У гэтым класе асобна аплачваецца атрыманне дадзеных, дзейнічае мінімальны тэрмін захоўвання, а бясплатная квота Standard на яго не распаўсюджваецца. Калі файлы рэгулярна чытаюць, эканомію на захоўванні можа перакрыць плата за атрыманне.

Тры ўмоўныя месячныя нагрузкі

У прыкладах аб’екты захоўваюцца поўны месяц, кожны GET даходзіць да сховішча і вяртае дадзеныя непасрэдна ў інтэрнэт. Разлікі ўключаюць захоўванне, GET-запыты і выхадны трафік; пачатковую загрузку, CDN, рэплікацыю, іншыя платныя сэрвісы і падаткі яны не ўключаюць. Для S3 таксама прынята, што агульная бясплатная квота трафіку яшчэ не выкарыстана.

  • Невялікая бібліятэка файлаў. Умоўныя 100 ГБ захоўвання, 100 ГБ выдачы і 100 тысяч GET за месяц дадуць каля $2,34 у S3: $2,30 за месца і $0,04 за запыты, без платы за трафік у межах квоты. У R2 атрымаецца каля $1,35: аплачваюцца 90 ГБ-месяцаў захоўвання пасля бясплатнай квоты, а чытанні ў яе змяшчаюцца. Розніца тут невялікая, таму патрабаванні да запісу або функцый могуць важыць больш за яе.
  • Актыўная публічная раздача. Пры ўмоўных 1000 ГБ захоўвання, 5000 ГБ выдачы і 5 мільёнах GET S3 абыдзецца прыкладна ў $466: $23 за захоўванне, $2 за запыты і $441 за трафік пасля бясплатных 100 ГБ. У R2 вынік складае каля $14,85 за захоўванне; чытанні ўкладаюцца ў бясплатную квоту. Тут менавіта аб’ём прамой выдачы стварае асноўны разрыў у кошце.
  • Шмат дробных зваротаў. Пры ўмоўных 100 ГБ захоўвання, 50 ГБ выдачы і 100 мільёнах GET S3 каштаваў бы каля $42,30, з іх $40 — запыты. Для R2 атрымаецца каля $33,75: $1,35 за захоўванне і $32,40 за чытанні звыш бясплатнага ліміту. Адсутнасць платы за выхадны трафік тут не робіць доступ бясплатным.

Гэтыя сумы апісваюць адзін маршрут: чытач звяртаецца да аб’ектнага сховішча. Калі перад ім стаіць CDN і файл ужо ёсць у кэшы, частка GET не дойдзе да сховішча; затое кошт дастаўкі і магчымых дадатковых функцый CDN трэба ўлічыць асобна. Параўнанне прамога выхаду з R2 з дастаўкай S3 праз CloudFront без уліку рахунку CloudFront дало б няпоўную карціну.

Што еўрапейскі тэст кажа пра затрымку ў Беларусі

Прапускная здольнасць загрузкі вялікага файла і затрымка асобнай аперацыі ўплываюць на розныя задачы. Для архіва, які запісваюць зрэдку і шмат разоў раздаюць, дадатковы час загрузкі можа быць прымальным пры вялікай розніцы ў кошце выдачы. У прыкладанні, якое часта прымае файлы і чакае пацвярджэння запісу перад наступным дзеяннем, такая затрымка можа ўплываць на ўвесь ланцужок аперацый.

Еўрапейскія лічбы датычацца зваротаў да рэгіянальных канчатковых пунктаў праз API. Чытанне ўжо кэшаванага публічнага файла і запыт з Беларусі ідуць іншымі сеткавымі шляхамі, таму нельга пераносіць вымераныя мілісекунды на беларускіх карыстальнікаў або лічыць іх хуткасцю сайта. Для выбару важныя фактычнае месцазнаходжанне кліента і сховішча, доля траплянняў у кэш, памер файлаў і тое, якая частка працы прыпадае на запіс.

Рэплікацыя, шыфраванне і захаванне аб’ектаў

Сумяшчальнасць R2 з S3 API дапамагае выкарыстоўваць знаёмыя інструменты, але не робіць магчымасці сэрвісаў аднолькавымі. Матрыца сумяшчальнасці R2 пазначае як непадтрыманыя аперацыі кіравання рэплікацыяй S3, загалоўкі для AWS KMS і загалоўкі S3 Object Lock. Калі код або палітыка бяспекі залежаць ад гэтых выклікаў, паспяховыя PUT і GET яшчэ не азначаюць, што перанос захоўвае патрэбныя паводзіны.

Пытанне рэплікацыі асабліва істотнае, калі копіі павінны аўтаматычна з’яўляцца ў розных рэгіёнах AWS. Адсутнасць адпаведных аперацый у сумяшчальным API R2 азначае, што існуючую канфігурацыю S3 нельга проста накіраваць на новы адрас. Асобнае капіраванне можна праектаваць, але яго затрымка, кошт і апрацоўка памылак ужо будуць уласцівасцямі гэтай канкрэтнай схемы, а не аўтаматычнай заменай рэплікацыі S3.

У R2 ёсць уласны сродак захавання: правілы bucket locks могуць забараніць выдаленне і перазапіс аб’ектаў на зададзены тэрмін або без тэрміну. Іх наяўнасць не азначае падтрымкі выклікаў S3 Object Lock. Калі патрабаванні да захавання ўжо рэалізаваны праз гэты API, розніцу трэба ацэньваць паводле канкрэтных аперацый і палітыкі доступу.

Для прамой раздачы вялікага аб’ёму файлаў без залежнасці ад гэтых магчымасцяў R2 мае выразную цэнавую перавагу ў разгледжанай мадэлі. Калі ж прыкладанне інтэгравана з AWS KMS, выкарыстоўвае S3 Object Lock або патрабуе штатнай міжрэгіянальнай рэплікацыі, кошт пераходу ўключае змены ў архітэктуры. У такім выпадку плата за трафік — толькі адзін радок параўнання, а не поўная цана выбару.

Чытайце таксама:

Падзяліцца:

Падпішыцеся на нашу рассылку

Атрымлівайце свежыя навіны пра Web3, ШІ і крыптавалюты проста на пошту.

0