Design Object Storage System
์ ์ฅ์ ์์คํ
์ ๋ถ๋ฅ
์ ์ฅ์ ์์คํ ์ ํฌ๊ฒ ์ธ ๊ฐ์ง ๋ถ๋ฅ๋ก ๋๋ ์ ์๋ค.
๋ธ๋ก ์ ์ฅ์: ์์ ๋ธ๋ก์ ์๋ฒ์ ๋ณผ๋ฅจ ํํ๋ก ์ ๊ณตํ๋ ์์คํ
ํ์ผ ์ ์ฅ์: ๋ธ๋ก ์ ์ฅ์ ์์ ๊ตฌํ๋๋ฉฐ, ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ์ถ์ํํ ์์คํ
๊ฐ์ฒด ์ ์ฅ์: ํ์ผ ์ ์ฅ์ ์์ ๊ตฌํ๋๋ฉฐ, ํ์ผ์ ๊ฐ์ฒด๋ก ์ถ์ํํ ์์คํ
๋ฐ์ดํฐ ์์์ฑ์ ๋์ด๊ณ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์
๋น์ฉ์ ๋ฎ์ถ๊ธฐ ์ํด ์ฑ๋ฅ์ ํฌ์
๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ํ์ ๊ตฌ์กฐ๋ก ์ ์ฅ(๊ณ์ธต์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ X)
๊ฐ์ฒด ์ ์ฅ์์์์ ์ฉ์ด
๋ฒํท(bucket): ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๋ ผ๋ฆฌ์ ์ปจํ ์ด๋๋ก, ์ด๋ฆ์ ์ ์ญ์ ์ผ๋ก ์ ์ผํด์ผ ํจ
๊ฐ์ฒด(object): ๋ฒํท์ ์ ์ฅํ๋ ๋ฐ์ดํฐ์ ๋ฉํ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ๋ ๊ฐ๋ณ ๋ฐ์ดํฐ
๋ฒ์ (versioning): ํ ๊ฐ์ฒด์ ์ฌ๋ฌ ๋ฒ์ ์ ๊ฐ์ ๋ฒํท ์์ ๋ ์ ์๋๋ก ํ๋ ๋ฒ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ
URI(Uniform Resource Identifier): ๊ฐ์ฒด๋ฅผ ์๋ณํ๋ ๊ณ ์ ํ ์ฃผ์
SLA(Service-Level Agreement): ์๋น์ค ์ ๊ณต์์ ์ฌ์ฉ์ ๊ฐ์ ์๋น์ค ์์ค์ ๋ช ์ํ ๊ณ์ฝ
๊ฐ์ฒด ์ ์ฅ์ ํน์ง
๊ฐ์ฒด ๋ถ๋ณ์ฑ: ๋ค๋ฅธ ์ ์ฅ์์ ๋ฌ๋ฆฌ, ์ ์ฅ๋๋ ๊ฐ์ฒด๋ค์ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํจ
ํค-๊ฐ ์ ์ฅ์: ๊ฐ์ฒด๋ ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋จ(key: URI, value: ๊ฐ์ฒด ๋ฐ์ดํฐ)
์ ์ฅ 1ํ / ์ฝ๊ธฐ ์ฌ๋ฌ ํ: ๋ฐ์ดํฐ ์ ๊ทผ ํจํด ์ธก๋ฉด์์ ์ฐ๊ธฐ๋ 1ํ, ์ฝ๊ธฐ๋ ์ฌ๋ฌ ํ๋ก ๊ตฌ์ฑ๋จ
์ํ ๋ฐ ๋ํ ๊ฐ์ฒด ๋์ ์ง์: ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด ์ ์ฅ ๊ฐ๋ฅ
์๊ตฌ์ฌํญ
๊ธฐ๋ฅ
๋ฒํท ์์ฑ
๊ฐ์ฒด ์ ๋ก๋ ๋ฐ ๋ค์ด๋ก๋
๊ฐ์ฒด ๋ฒ์
๋ฒํท ๋ด ๊ฐ์ฒด ๋ชฉ๋ก ์ถ๋ ฅ ๊ธฐ๋ฅ
๊ท๋ชจ
๊ฐ์ฒด ํฌ๊ธฐ: ์ํ ๊ฐ์ฒด๋ถํฐ ๋ํ ๊ฐ์ฒด(์ GB ์ด์)
1MB ๋ฏธ๋ง ๊ฐ์ฒด(์ค์๊ฐ 0.5MB): 20%
1MB ~ 64MB ๊ฐ์ฒด(์ค์๊ฐ: 32MB): 60%
64MB ์ด๊ณผ ๊ฐ์ฒด(์ค์๊ฐ: 200MB): 20%
๋งค๋ ์ถ๊ฐ ๋ฐ์ดํฐ: 100PB
๋ด๊ตฌ์ฑ ๋ฐ ๊ฐ์ฉ์ฑ: 99.999%
์ ์ฅ ๊ณต๊ฐ ์ฌ์ฉ๋ฅ : 40%
๋ฉํ๋ฐ์ดํฐ ํฌ๊ธฐ: 1KB
์ถ์
๊ฐ์ฒด ์ = 100PB * 40% (20% * 0.5MB + 60% * 32MB + 20% * 200MB) = 6์ต 8์ฒ๋ง ๊ฐ
๋ฉํ๋ฐ์ดํฐ ๊ณต๊ฐ = 6์ต 8์ฒ๋ง ๊ฐ * 1KB = 0.68TB
์ค๊ณ์
๊ฐ์ฒด ์ ์ฅ์ ์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด ํ์ํ ์ปดํฌ๋ํธ๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
๋ก๋๋ฐธ๋ฐ์: RESTful API ์์ฒญ ๋ถ์ฐ
API ์๋น์ค: IAM ์๋น์ค / ๋ฉํ๋ฐ์ดํฐ ์๋น์ค / ์ ์ฅ์ ์๋น์ค์ ๋ํ ํธ์ถ ์กฐ์จ ์ญํ
IAM: ์ธ์ฆ / ๊ถํ ๋ถ์ฌ / ์ ๊ทผ ์ ์ด ๋ฑ์ ์ค์์์ ๋งก์ ์ฒ๋ฆฌ
๋ฐ์ดํฐ ์ ์ฅ์: ์ค์ ๋ฐ์ดํฐ ๋ณด๊ด, ๊ด๋ จ ์ฐ์ฐ์ ๊ณ ์ ID(UUID)๋ฅผ ์ด์ฉํ์ฌ ์ฒ๋ฆฌ
๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์: ๊ฐ์ฒด ๋ฉํ๋ฐ์ดํฐ ๋ณด๊ด
๊ฐ์ฒด ์ ์ฅ์ ๊ธฐ๋ฅ์ ํ๋ฆ
๊ฐ์ฒด ์ ์ฅ์๋ ํฌ๊ฒ ์ ๋ก๋ / ๋ค์ด๋ก๋ / ๊ฐ์ฒด ๋ชฉ๋ก ์กฐํ ์ธ ๊ฐ์ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ๊ทธ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ฐ์ฒด ์
๋ก๋
๊ฐ์ฒด๋ ๋ฒํท ์์ ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์, ๋ฒํท์ ๋ง๋ค๊ณ ํด๋น ๋ฒํท์ ํ์ผ์ ์ ๋ก๋ํ๋ ๊ณผ์ ์ ์๋์ ๊ฐ์ด ์งํ๋๋ค.
๋ฒํท ์์ฑ
ํด๋ผ์ด์ธํธ์์ ๋ฒํท ์์ฑ API ์์ฒญ
API ์๋น์ค์์ IAM ์๋น์ค๋ฅผ ํธ์ถํด ๊ถํ ํ์ธ
๋ฒํท ์ ๋ณด๋ฅผ ๋ฑ๋กํ๊ธฐ ์ํด ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ํธ์ถํ์ฌ ๋ฒํท ์์ฑ
๊ฐ์ฒด ์ ๋ก๋
ํด๋ผ์ด์ธํธ์์ ๊ฐ์ฒด ์ ๋ก๋ API ์์ฒญ
API ์๋น์ค์์ IAM ์๋น์ค๋ฅผ ํธ์ถํด ๊ถํ ํ์ธ
๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ฑ๋กํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์ ์ฅ์ ์๋น์ค๋ฅผ ํธ์ถํ์ฌ ๊ฐ์ฒด ์ ๋ก๋ ํ UUID ๋ฐํ ๋ฐ์
๋ฐํ ๋ฐ์ UUID / ๋ฒํท ์ ๋ณด / ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์์ ์ ์ฅ
๊ฐ์ฒด ๋ค์ด๋ก๋
๋ฒํท์ ๋๋ ํฐ๋ฆฌ ๊ฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ง์ํ์ง ์์ง๋ง, ๋ฒํท ์ด๋ฆ๊ณผ ๊ฐ์ฒด ์ด๋ฆ์ ์ฐ๊ฒฐํด ๋
ผ๋ฆฌ์ ๊ณ์ธต์ ๊ตฌ์ฑํ ์ ์๋ค.(์: bucket_name/object_name)
ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ฒด๋ฅผ ์์ฒญํ ๋, ์ฐ๊ฒฐํ ๋ฒํท ์ด๋ฆ๊ณผ ๊ฐ์ฒด ์ด๋ฆ์ ์ด์ฉํด ๊ฐ์ฒด๋ฅผ ์กฐํํ ์ ์๋ค.
ํด๋ผ์ด์ธํธ์์
/bucket_name/object_name์ผ๋ก API ์์ฒญAPI ์๋น์ค์์ IAM ์๋น์ค๋ฅผ ํธ์ถํด ๊ถํ ํ์ธ
๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์์์ ๋ฒํท ์ ๋ณด์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ์กฐํ
์กฐํ๋ ๋ฐ์ดํฐ์์ ํด๋น ๊ฐ์ฒด UUID๋ก ๋ฐ์ดํฐ ์ ์ฅ์ ์๋น์ค๋ฅผ ํธ์ถํ์ฌ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ฐํ
๋ฐํ๋ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ด์ธํธ์ ์ ๋ฌ
๋ฐ์ดํฐ ์ ์ฅ์ ์ค๊ณ
๋ฐ์ดํฐ ์ ์ฅ์๋ ๋ด๋ถ์ ์ผ๋ก ํฌ๊ฒ ์ธ ๊ฐ์ง ์ฃผ์ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋๋ค.
๋ฐ์ดํฐ ๋ผ์ฐํ ์๋น์ค: ๋ฐ์ดํฐ ๋ ธ๋ ํด๋ฌ์คํฐ์ ์ ๊ทผํ๊ธฐ ์ํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ฉฐ, ๋ฌด์ํ ์๋น์ค๋ก ๊ตฌ์ฑ
๋ฐฐ์น ์๋น์ค๋ฅผ ํธ์ถํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ต์ ์ ๋ฐ์ดํฐ ๋ ธ๋ ํ๋จ
๋ฐ์ดํฐ ๋ ธ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด API ์๋น์ค์ ๋ฐํ
๋ฐ์ดํฐ ๋ ธ๋์ ๋ฐ์ดํฐ ๊ธฐ๋ก
๋ฐฐ์น ์๋น์ค: ์ด๋ ๋ฐ์ดํฐ ๋ ธ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ง ๊ฒฐ์
๋ฐ์ดํฐ ๋ ธ๋์ ์์น ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ์ฌ๋ณธ์ด ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ค๋ฅธ ์์น์ ๋์ด๋๋ก ํด ๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ์ ๋์
์ง์์ ์ผ๋ก ๋ชจ๋ ๋ฐ์ดํฐ ๋ ธ๋์ ๋ฐ๋ ๋ฉฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ฐ์ดํฐ ๋ ธ๋์ ์ํ๋ฅผ ํ์ธ
๋ฐ์ดํฐ ๋ ธ๋: ์ค์ ๋ฐ์ดํฐ๊ฐ ๋ณด๊ด๋๋ ๊ณณ
์ฌ๋ฌ ๋ ธ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํ์ฌ ์์ ์ฑ๊ณผ ๋ด๊ตฌ์ฑ ๋ณด์ฆ
๋ฐฐ์น ์๋น์ค์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ ์์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ ๋ฐ๋ ๋ฉ์์ง ์ ์ก
๋ฐ์ดํฐ ์ ์ฅ ํ๋ฆ
๊ฐ์ฒด ๋ฐ์ดํฐ ์ ์ฅ ์์ฒญ
๋ฐ์ดํฐ ๋ผ์ฐํ ์๋น์ค์์ ํด๋น ๊ฐ์ฒด์ UUID ํ ๋น ํ ๋ฐฐ์น ์๋น์ค์ ๋ณด๊ดํ ๋ฐ์ดํฐ ๋ ธ๋ ์ง์
์ ์ฅํ ๋ฐ์ดํฐ ๋ ธ๋ ์ ์ ํ ์ฃผ ๋ฐ์ดํฐ ๋ ธ๋์ ๋ฐ์ดํฐ ์ ์ฅ
์ฃผ ๋ฐ์ดํฐ ๋ ธ๋๋ ๋ถ ๋ฐ์ดํฐ ๋ ธ๋์ ๋ค์คํ
์ ์ฅ ์๋ฃ ํ ๊ฐ์ฒด UUID ๋ฐํ
๊ฐ์ฒด ์กฐํ ๋ฐฉ๋ฒ
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ ๋ค UUID๋ก ๊ฐ์ฒด๋ฅผ ์กฐํํ๊ฒ ๋๋๋ฐ, ํด๋น ๊ฐ์ผ๋ก ์ฐพ๊ธฐ ์ํด ๋งคํ ํ ์ด๋ธ์ ์ด์ฉํ๋ค.
๋งคํ ํ ์ด๋ธ: ๊ฐ์ฒด UUID์ ๋ฐ์ดํฐ ๋ ธ๋ ์ฃผ์๋ฅผ ๋งคํํ ํ ์ด๋ธ
object_id: ๊ฐ์ฒด UUIDfile_name: ๊ฐ์ฒด๊ฐ ๋ณด๊ด๋ ๋ฐ์ดํฐ ํ์ผstart_offset: ๋ฐ์ดํฐ ํ์ผ ๋ด ๊ฐ์ฒด ์คํ์ object_size: ๊ฐ์ฒด ํฌ๊ธฐ
๊ฐ์ฒด ์ ์ฅ์ ํน์ฑ์, ๊ฐ์ฒด๋ฅผ ํ ๋ฒ ์ ์ฅํ๋ฉด ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉฐ ์ฝ๊ธฐ ์ฐ์ฐ์ด ํจ์ฌ ๋ ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ฏ๋ก, RDBMS๋ฅผ ํตํด ๋งคํ ํ ์ด๋ธ์ ๊ตฌ์ฑํด๋ณผ ์ ์๋ค.
๋ฉํ๋ฐ์ดํฐ ๋ฐ์ดํฐ ๋ชจ๋ธ
๋ฉํ๋ฐ์ดํฐ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํตํด์ ๋ค์ ์ธ ๊ฐ์ง ์ง์๋ฅผ ์ง์ํ ์ ์์ด์ผ ํ๋ค.
๊ฐ์ฒด ์ด๋ฆ(
bucket_name/object_name)์ผ๋ก ๊ฐ์ฒด UUID ์กฐํ๊ฐ์ฒด ์ด๋ฆ(
bucket_name/object_name)์ ๊ธฐ๋ฐํ์ฌ ๊ฐ์ฒด ์ฝ์ ๋ฐ ์ญ์ ๊ฐ์ ์ ๋์ด๋ฅผ ๊ฐ๋ ๋ฒํท ๋ด์ ๋ชจ๋ ๊ฐ์ฒด ์กฐํ
์ ์ง์๋ฅผ ์ง์ํ๊ธฐ ์ํ ์คํค๋ง๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ ์ ์๋ค.
bucket
bucket_name: ๋ฒํท ์ด๋ฆbucket_id: ๋ฒํท UUIDowner_id: ๋ฒํท ์์ ์ IDenable_versioning: ๋ฒ์ ๊ด๋ฆฌ ํ์ฑํ ์ฌ๋ถ
object
bucket_name: ๋ฒํท ์ด๋ฆobject_name: ๊ฐ์ฒด ์ด๋ฆobject_version: ๊ฐ์ฒด ๋ฒ์ object_id: ๊ฐ์ฒด UUID
๊ท๋ชจ ํ์ฅ
๋ง์ ์์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๋งํผ, ๋ฉํ๋ฐ์ดํฐ๋ ๋ง์ ์์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ํ๋์ ๋ณด๊ดํ๊ธฐ์๋ ํ๊ณ๊ฐ ์์ด ์ค๋ฉ์ ํตํด ํ์ฅํ ์ ์๋ค.
bucket ํ ์ด๋ธ: ์ด์ฉ์๋น ๋ฒํท์ ๊ฐฏ์๋ฅผ ์ ํํ์ฌ ์ค๋ฉ ํ์ ์์ด ์ฌ๋ณธ์ ๋ง๋ค์ด ํ์ฅ ๊ฐ๋ฅ
object ํ ์ด๋ธ: ๊ฐ id ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฉํ์ฌ ํ์ฅ ๊ฐ๋ฅ
bucket_id๊ธฐ์ค ์ค๋ฉ: ํ๋์ ๋ฒํท ์์ ๋งค์ฐ ๋ง์ ๋ฒํท์ด ๋ค์ด๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ ํ์ง ์์object_id๊ธฐ์ค ์ค๋ฉ:bucket_name/object_name์ ํตํด ๊ฐ์ฒด๋ฅผ ์กฐํํ๊ธฐ ๋๋ฌธ์ ๋ถ์ ์ bucket_name+object_name๊ธฐ์ค ์ค๋ฉ: ๋๋ถ๋ถ์ ์ฐ์ฐ์ด ๊ฐ์ฒด URI๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ์ ์
๊ฐ์ฒด ๋ฒ์
๊ฐ์ฒด ๋ฒ์ ์ ๊ฐ์ฒด์ ์ฌ๋ฌ ๋ฒ์ ์ ์ ์ฅํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฅ์ผ๋ก, ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋ณต๊ตฌํ ์ ์๋๋ก ํด์ค๋ค. ๊ฐ์ฒด ์ ์ฅ์์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ฒ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์๋ค.
ํด๋ผ์ด์ธํธ์์ ๊ฐ์ฒด ์ ๋ก๋ ์์ฒญ(์ด๋ฏธ ์กด์ฌํ๋
bucket_name/object_name์์ฒญ)์ ์ ํ์ธ ํ ๋ฐ์ดํฐ ์ ์ฅ์์ ์ ๋ก๋ ํ UUID๋ฅผ ๋ฐํ ๋ฐ์
๋ฐํ ๋ฐ์ UUID๋ฅผ ํตํด ๋ฉํ ๋ฐ์ดํฐ ์ ์ฅ์์ ์ ์ฅ
๊ธฐ์กด ๋ ์ฝ๋๋ฅผ ๋ฎ์ด์ฐ๋ ๊ฒ์ด ์๋ ๊ฐ์
bucket_id/object_name์ผ๋ก ์๋ก์ด ๋ ์ฝ๋ ์์ฑ์๋ก์ด
object_version์ ๋ถ์ฌํ์ฌ ๋ ์ฝ๋ ์ถ๊ฐ(TIMEUUID๊ฐ์ ๊ฐ์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ)
ํฐ ํ์ผ ์
๋ก๋ ์ต์ ํ
ํฐ ํ์ผ์ ์ ๋ก๋๋ ์ค๋ ์๊ฐ์ด ์์๋๋ฉฐ, ์ค๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋ค์ ์ฒ์๋ถํฐ ์ ๋ก๋ํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฉํฐํํธ ์ ๋ก๋๋ฅผ ํตํด ํด๊ฒฐํ๊ณ ์๋ค.
ํด๋ผ์ด์ธํธ์์ ์ ๋ก๋๋ฅผ ํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์ ์ฅ์ ํธ์ถ
๋ฐ์ดํฐ ์ ์ฅ์๊ฐ
uploadID๋ฐํ(์ ์ผ ์๋ณ ID)ํด๋ผ์ด์ธํธ๋ ํ์ผ์ ์์ ๊ฐ์ฒด๋ก ๋ถํ ํ ๋ค์ ์ ๋ก๋ ์์
๋ถํ ๋ ์กฐ๊ฐ ํ๋๊ฐ ์ ๋ก๋ ๋ ๋๋ง๋ค ๋ฐ์ดํฐ ์ ์ฅ์์์๋
ETag๋ฐํ(ํด๋น ์กฐ๊ฐ์ ๋ํ MD5 ํด์ ์ฒดํฌ์ฌ)๋ชจ๋ ๋ถํ ๋ ์กฐ๊ฐ์ ์ ๋ก๋ํ ํด๋ผ์ด์ธํธ๋ ๋ฉํฐํํธ ์ ๋ก๋ ์ข ๋ฃ ์์ฒญ
ํด๋น ์์ฒญ์
uploadID, ์กฐ๊ฐ ๋ฒํธ ๋ชฉ๋ก,ETag๋ชฉ๋ก์ ํจ๊ป ๋ณด๋
๋ฐ์ดํฐ ์ ์ฅ์๋ ์กฐ๊ฐ ๋ฒํธ ๋ชฉ๋ก์ ์ฌ์ฉํด ์๋ณธ ๊ฐ์ฒด๋ก ๋ณต์ ํ ์ฑ๊ณต ๋ฉ์์ง ๋ฐํ
Garbage Collection
๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๋ฐ์ดํฐ์ ํ ๋น๋ ์ ์ฅ๋ ๊ณต๊ฐ์ ํ์ํ๋ ์ ์ฐจ๋ก, ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์ฐ๋ ๊ธฐ ๋ฐ์ดํฐ๊ฐ ์๊ธธ ์ ์๋ค.
๊ฐ์ฒด ์ง์ฐ ์ญ์ (lazy object deletion): ์ญ์ ์ ๋ฐ๋ก ์ญ์ ํ๋ ๊ฒ์ด ์๋, ํ์๋ง ํด๋ ๋ค ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ์ญ์
๊ฐ ๊ณณ ์๋ ๋ฐ์ดํฐ(orphaned data): ๋ฐ์ฏค ์ ๋ก๋๋ ๋ฐ์ดํฐ / ์ทจ์๋ ๋ฉํฐํํธ ์ ๋ก๋ ๋ฐ์ํฐ
ํผ์๋ ๋ฐ์ดํฐ(corrupted data): ์ฒดํฌ์ฌ ๊ฒ์ฌ์ ์คํจํ ๋ฐ์ดํฐ
์ฐธ๊ณ ์๋ฃ
Last updated
Was this helpful?