[Cloudflare] R2: vs S3 ๋ฒค์น˜๋งˆํฌ

[์›๋ณธ ๋งํฌ]

์ด์ „ ํฌ์ŠคํŠธ
https://blog.naver.com/sssang97/223077815906
R2๋Š” ์ €๋ ดํ•œ AWS S3์˜ ๋Œ€์•ˆ ์ค‘ ํ•˜๋‚˜๋‹ค.

์ €์žฅ ๋น„์šฉ ์ž์ฒด๋„ S3๋ณด๋‹ค 1.6๋ฐฐ ์ •๋„๋Š” ์ €๋ ดํ•œ๋ฐ, CDN์„ ํƒ„ ์กฐํšŒ ๋น„์šฉ๊นŒ์ง€ ๋ฌด๋ฃŒ์ด๋‹ˆ ๋น…ํ…Œํฌ ์„œ๋น„์Šค ์ค‘์—์„œ๋Š” ์ด๋งŒํ•œ๊ฒŒ ์—†๋‹ค.




๋ฌธ์ œ: CDN ๋ ˆ์ดํ„ด์‹œ?

๋น„์šฉ ์ €๋ ดํ•˜๊ณ  ๋‹ค ์ข‹๊ธด ์ข‹์€๋ฐ, Cloudflare์—๋Š” ํฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ํ•œ๊ตญ์—์„œ๋งŒ.

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ํ•œ๊ตญ ๊ตญ๋‚ด์˜ CDN ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
๊ทธ๋ž˜์„œ ์ด๋ฏธ์ง€ ๊ฐ™์€๊ฑธ cloudflare ์†”๋ฃจ์…˜์œผ๋กœ ์กฐํšŒํ•œ๋‹ค๊ณ  ์ณ๋„, ํ•œ๊ตญ์— ์œ„์น˜ํ•œ CDN ์„œ๋ฒ„๋ฅผ ํƒ€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, ๊ทผ์ฒ˜์— ๋„์ฟ„๋‚˜ ํ™์ฝฉ, ์‹ฑ๊ฐ€ํด ๊ฐ™์€ ๋‹ค๋ฅธ ๋‚˜๋ผ์˜ CDN ์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค.

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๋ฅผ ์“ธ๋งŒํผ์˜ ์šฐ๋Ÿ‰๊ณ ๊ฐ์ด๋ผ๋ฉด ๊ดœ์ฐฎ๊ฒ ์œผ๋‚˜, ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ๋Ÿ‰์˜ ์‚ฌ์šฉ์ž๋ผ๋ฉด ์ง€๋ฆฌ์ ์ธ ๊ฒฉ์ฐจ๋กœ ์ธํ•œ ๋ ˆ์ดํ„ด์‹œ ์ฆ๊ฐ€๋Š” ๊ฝค ์‹ฌ๊ฐํ•˜๊ฒŒ ์™€๋‹ฟ๋Š” ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ๋‹ค.
์• ์ดˆ์— ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธ์œผ๋ฉด ํ•œ๋‹ฌ์— ์ˆ˜๋ฐฑ๋งŒ์›์—์„œ ์ฒœ๋งŒ์› ๋‹จ์œ„๋Š” ์šฐ์Šต๊ฒŒ ๋‚˜๊ฐ„๋‹ค.




๋ ˆ์ดํ„ด์‹œ ์‹คํ—˜ ์ค€๋น„

์„ฑ๋Šฅ์ฐจ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋‚˜๋Š”์ง€ ์ง์ ‘ ํ•œ๋ฒˆ ์‹คํ—˜์„ ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

์ž‘์€ ์ด๋ฏธ์ง€, ์ ๋‹นํ•œ ์ด๋ฏธ์ง€, 17mb๊นŒ๋ฆฌ ์ข€ ํฐ ์ด๋ฏธ์ง€๋ฅผ ํ…Œ์ŠคํŠธ์…‹์œผ๋กœ ์ค€๋น„ํ–ˆ๋‹ค.
๋‚ด ๊ฒฝ์šฐ์—๋Š” 100mb~gb ๊ฐ™์€ ๊ฑฐ๋Œ€ํ•œ ํŒŒ์ผ์„ ๋‹ค๋ฃฐ ์ผ์€ ์—†์–ด์„œ ๊ทธ์ •๋„๊นŒ์ง€ ์ฐ”๋Ÿฌ๋ณด์ง„ ์•Š์•˜๋‹ค.

๊ฐ๊ฐ์— ์ ๋‹นํžˆ ์—…๋กœ๋“œํ–ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ณต์žกํ•˜๊ฒŒ ์ฝ”๋“œ ์งค๊ฑฐ ์—†์ด ์‰˜ ์ปค๋งจ๋“œ๋กœ ๋Œ€์ถฉ ์ฐ”๋ €๋‹ค.

time wget --server-response --report-speed=bits -O output_image.jpg ๊ฒฝ๋กœ



์ž‘์€ ์ด๋ฏธ์ง€ (281k)

AWS Cloudfront๋ถ€ํ„ฐ ์ฐ”๋ €๋‹ค.

X-Cache: Miss from cloudfront๋ผ๋Š” ํ—ค๋”๊ฐ€ ๋ณด์ผํ…๋ฐ, ์บ์‹œ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ์ฒ˜์Œ ์กฐํšŒํ•˜๋Š”๊ฑฐ๋‹ˆ๊นŒ ๋‹น์—ฐํ•˜๋‹ค.
์ตœ์ดˆ์—๋Š” S3->CDN์œผ๋กœ ์ ์žฌํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋‹ค๋ณด๋‹ˆ, ๊ฑฐ์˜ 1์ดˆ์— ๊ฐ€๊น๊ฒŒ ๊ฑธ๋ฆฌ๊ธฐ๋„ ํ–ˆ๋‹ค.

๋‹ค์‹œ ์ฐŒ๋ฅด๋ฉด

X-Cache: Hit from cloudfront๊ฐ€ ๋œฌ ๊ฒƒ์ด ๋ณด์ธ๋‹ค.
์ด๋ฒˆ์—๋Š” ์บ์‹œ์—์„œ ์ž˜ ๊ฐ€์ ธ์™”๊ณ , ์‹ค์ œ๋กœ ์‹คํ–‰์‹œ๊ฐ„๋„ 100ms ๋‹จ์œ„๋กœ ๋น ๋ฅด๊ฒŒ ๋‚˜์™”๋‹ค.
๋ฐ˜๋ณต์ ์œผ๋กœ ์‹œ๋„ํ•ด๋„ 100ms ๋‚ด์™ธ๋กœ ์ž˜ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด Cloudflare๋Š” ์–ด๋–จ๊นŒ?

์ตœ์ดˆ์— ์ฐŒ๋ฅผ ๋•Œ๋Š” ๋‹น์—ฐํžˆ ๋А๋ฆฌ๋‹ค. ๋น„์Šทํ•˜๊ฒŒ 0.8์ดˆ์ฏค ๊ฑธ๋ ธ๋‹ค.
CF-Cache-Status: Miss๋ผ๊ณ  ๋œจ๋Š”๊ฒŒ ์บ์‹œ ๋ฏธ์Šค๊ฐ€ ๋‚ฌ๋‹ค๋Š” ๋œป์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ• ๊ฑด CF-RAY๋ผ๋Š” ์‘๋‹ต ํ—ค๋”๋‹ค.

์ด๊ฑด ๊ฐ ์š”์ฒญ์— ๋Œ€ํ•œ trace ID ๊ฐ™์€๊ฑด๋ฐ, ์ €๊ธฐ ๋’ค์— ๋ถ™์€ ICN์ด ๋ฆฌ์ „๋ช…์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  ICN์ด ํ•œ๊ตญ์ด๋‹ค.
์‚ฌ์‹ค ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ๊ธ€ ๋ณด๋‹ˆ๊นŒ ํ™์ฝฉ ๋ฆฌ์ „์— ๋ถ™๊ณ  ๊ทธ๋Ÿฌ๋˜๋ฐ, ๋‚˜๋Š” ์ด๊ฒƒ์ €๊ฒƒ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ฐ”๋Ÿฌ๋ด๋„ ICN์—๋งŒ ๋ถ™์—ˆ๋‹ค. ๋ฆฌ์ „์ด ์„ ์ •๋˜๋Š” ๊ธฐ์ค€์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค.

์•„๋ฌดํŠผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ฐ”๋Ÿฌ๋ณด๋ฉด, ์บ์‹œ HIT์ด ๋˜๋‹ˆ๊นŒ ๋นจ๋ผ์ง€๊ธด ํ•œ๋‹ค.

๊ทผ๋ฐ AWS์— ๋น„ํ•˜๋ฉด ๊ทธ ๋ ˆ์ดํ„ด์‹œ์˜ ์•ˆ์ •์„ฑ์ด ํ™•์—ฐํžˆ ๋–จ์–ด์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
๋น ๋ฅผ๋•Œ๋Š” 100ms๋กœ ์˜ค๊ธฐ๋„ ํ•˜๋Š”๋ฐ, 300ms๋Œ€๋กœ ์˜ค๊ธฐ๋„ ํ–ˆ๋‹ค.




์ค‘๊ฐ„ ์ด๋ฏธ์ง€ (6mb)

AWS Cloudfront๋กœ ๋จผ์ € ์ฐ”๋ €๋‹ค.
์ค‘๊ฐ„ ํฌ๊ธฐ ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ์—๋Š” ํฌ๊ธฐ ์ž์ฒด๊ฐ€ ์ข€ ์žˆ์–ด์„œ์ธ์ง€, ์บ์‹œ๋ฅผ ํƒ€๋“  ์•ˆํƒ€๋“ ๊ฐ„์— 500~900ms ์ •๋„๋Š” ๊ฑธ๋ ธ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” cloudflare์™€ aws์˜ ์„ฑ๋Šฅ์ฐจ๊ฐ€ ๊ทธ๋‹ค์ง€ ๋ˆˆ์— ๋„์ง€๋Š” ์•Š์•˜๋‹ค.

๊ฑฐ์˜ ๋น„์Šทํ•˜๋”๋ผ




ํฐ ์ด๋ฏธ์ง€ (17mb)

AWS์˜ ๊ฒฝ์šฐ

cloudflare์˜ ๊ฒฝ์šฐ

๋งค์šฐ ์ž‘์„๋•Œ๋Š” ์ข€ ์ฐจ์ด๊ฐ€ ๋‚˜์ง€๋งŒ ์• ๋งคํ•œ ํฌ๊ธฐ๋กœ ๊ฐ€๋ฉด ์„ฑ๋Šฅ์ฐจ๊ฐ€ ๋‘๋“œ๋Ÿฌ์ง€์ง€๋Š” ์•Š๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค.
ํŒŒ์ผ์ด ๋” ์ปค์ง€๋ฉด ๋ฒŒ์–ด์งˆ ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™๊ธด ํ•œ๋ฐ, ์‹œ๋„ํ•ด๋ณด์ง€๋Š” ์•Š์•˜๋‹ค.




๋ณด๋ฅ˜

์‚ฌ์‹ค ๊ตญ๋‚ด CDN ์•ˆํƒ€์„œ ๋А๋ฆฌ๋‹ค๊ณ  ํ•˜๊ธธ๋ž˜ ์–ผ๋งˆ๋‚˜ ๋А๋ฆฐ์ง€, ๊ทธ๋ž˜๋„ ์“ธ๋งŒ์€ ํ•œ ์ •๋„์ธ์ง€ ์‹คํ—˜ํ•ด๋ณด๋ ค ํ•œ๊ฑด๋ฐ, ๋„ˆ๋ฌด ๋น ๋ฅด๊ณ  ๊ตญ๋‚ด CDN๋„ ์ž˜ ํƒ€๋Š”๊ฑฐ ๊ฐ™์•„์„œ ์ข€ ๋‹นํ™ฉํ–ˆ๋‹ค.

๊ตญ๋‚ด CDN์„ ์•ˆํƒ€๋Š” ์กฐ๊ฑด์ด ๋”ฐ๋กœ ๋˜ ์žˆ๋Š”๊ฑด์ง€, ๋ฒ„๊ทธ์ธ๊ฑด์ง€ ์•„์ง๊นŒ์ง€๋„ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค.
์‹œ๊ฐ„์„ ๋‘๊ณ  ํ•œ๋ฒˆ ๋” ํ™•์ธ์„ ํ•ด๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ์‹คํ—˜์€ ์ž ์‹œ ์ค‘์ง€๋‹ค.



์ฐธ์กฐ
https://developers.cloudflare.com/fundamentals/reference/http-headers/#cf-ray
https://marinesnow34.github.io/2023/09/23/s3r2/