[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/