์ „์†ก ์—์ด์ „ํŠธ ๊ด€๋ฆฌ

Storage Transfer Service ์—์ด์ „ํŠธ๋Š” Open Container Initiative (OCI) ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ, ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋‚˜ S3 ํ˜ธํ™˜ ์Šคํ† ๋ฆฌ์ง€์™€ ๊ด€๋ จ๋œ ์ „์†ก์„ ์œ„ํ•ด Storage Transfer Service์™€ ์กฐ์œจ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ Storage Transfer Service๋Š” Docker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OCI ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. Storage Transfer Service๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Podman๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Podman์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด podman run ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ „์†ก์ด ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋‚˜ S3 ํ˜ธํ™˜ ์Šคํ† ๋ฆฌ์ง€์™€ ๊ด€๋ จ๋˜์ง€ ์•Š์œผ๋ฉด ์—์ด์ „ํŠธ๋ฅผ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์—์„œ๋Š” ์„œ๋ฒ„์—์„œ ์ „์†ก ์—์ด์ „ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์š”

  • ์—์ด์ „ํŠธ ํ”„๋กœ์„ธ์Šค๋Š” ๋™์ ์ž…๋‹ˆ๋‹ค. ์ „์†ก์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์—์ด์ „ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ ์‹œ์ž‘๋œ ์—์ด์ „ํŠธ๋Š” ํ• ๋‹น๋œ ์—์ด์ „ํŠธ ํ’€์— ์ฐธ์—ฌํ•˜์—ฌ ๊ธฐ์กด ์ „์†ก์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹คํ–‰ ์ค‘์ธ ์—์ด์ „ํŠธ ์ˆ˜๋ฅผ ์กฐ์ •ํ•˜๊ฑฐ๋‚˜ ์ „์†ก ์„ฑ๋Šฅ์— ๋งž์ถฐ ์ „์†ก ์ˆ˜์š”๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์—์ด์ „ํŠธ ํ”„๋กœ์„ธ์Šค๋Š” ๋‚ด๊ฒฐํ•จ์„ฑ ์ง‘๋‹จ์ž…๋‹ˆ๋‹ค. ํ•œ ์—์ด์ „ํŠธ์˜ ์‹คํ–‰์ด ์ค‘์ง€๋˜๋ฉด ๋‚˜๋จธ์ง€ ์—์ด์ „ํŠธ๋Š” ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์—์ด์ „ํŠธ๊ฐ€ ์ค‘์ง€๋˜๋ฉด ์ƒˆ ์—์ด์ „ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์—์ด์ „ํŠธ๊ฐ€ ์ค‘์ง€๋œ ๊ณณ์—์„œ ์ „์†ก์ด ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์—์ด์ „ํŠธ ๋ชจ๋‹ˆํ„ฐ๋ง, ์ „์†ก ์žฌ์‹œ๋„, ๋ณต๊ตฌ ๋กœ์ง ๊ตฌํ˜„์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Google Kubernetes Engine๊ณผ ์—์ด์ „ํŠธ๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์ „์†ก ๋‹ค์šดํƒ€์ž„ ์—†์ด ์—์ด์ „ํŠธ ํ’€์„ ํŒจ์น˜, ์ด์ „, ๋™์  ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘ ์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋‘ ๊ฐœ์˜ ์ „์†ก์„ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋จธ์‹  ์žฌ๋ถ€ํŒ… ๋˜๋Š” ์šด์˜์ฒด์ œ ํŒจ์น˜๋กœ ์ธํ•ด ์—์ด์ „ํŠธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ค‘์ง€๋˜๋ฉด ๋‚˜๋จธ์ง€ ์—์ด์ „ํŠธ๋Š” ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์ „์†ก์€ ๊ณ„์† ์‹คํ–‰ ์ค‘์ด์ง€๋งŒ ๋‹จ์ผ ์—์ด์ „ํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋™ํ•˜๋ฏ€๋กœ ์†๋„๊ฐ€ ๋А๋ฆฝ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ์—์ด์ „ํŠธ๋„ ์ค‘์ง€๋  ๊ฒฝ์šฐ ์‹คํ–‰ ์ค‘์ธ ์—์ด์ „ํŠธ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ชจ๋“  ์ „์†ก์ด ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ค‘๋‹จ๋œ ์ง€์ ๋ถ€ํ„ฐ ์ „์†ก์ด ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

  • ์—์ด์ „ํŠธ ํ”„๋กœ์„ธ์Šค๋Š” ํ’€์— ์†ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ’€์— ์žˆ๋Š” ๋ชจ๋“  ์—์ด์ „ํŠธ๋Š” ์ „์†กํ•˜๋ ค๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์†Œ์Šค์— ๋Œ€ํ•ด ๋™์ผํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ ค๋ฉด ์—์ด์ „ํŠธ ํ’€์—์„œ ์—์ด์ „ํŠธ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ชจ๋“  ๋จธ์‹ ์— ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋งˆ์šดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ’€์˜ ์ผ๋ถ€ ์—์ด์ „ํŠธ๋Š” ๋ฐ์ดํ„ฐ ์†Œ์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์—์ด์ „ํŠธ๋Š” ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ ์ „์†กํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

์ „์†ก์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉ์ž ๋ฐ ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

gcloud ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ gcloud CLI๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ „์†ก ์—์ด์ „ํŠธ ์„ค์น˜ ๋ฐ ์‹คํ–‰

์—์ด์ „ํŠธ ํ’€๋ณ„๋กœ ์ตœ์†Œ 3๊ฐœ์˜ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค(๋ณ„๋„์˜ ๋จธ์‹ ์— ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ž„). ์‹คํ–‰ํ•  ์—์ด์ „ํŠธ ์ˆ˜ ๊ฒฐ์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ „์†ก ์—์ด์ „ํŠธ ์„ฑ๋Šฅ ๊ทน๋Œ€ํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์—์ด์ „ํŠธ ID ํ”„๋ฆฌํ”ฝ์Šค์— ๊ฐœ์ธ ์‹๋ณ„ ์ •๋ณด(PII) ๋˜๋Š” ๋ณด์•ˆ ๋ฐ์ดํ„ฐ์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์ง€ ๋งˆ์„ธ์š”. ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์€ ๋‹ค๋ฅธ Google Cloud ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์œผ๋กœ ์ „ํŒŒ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ”„๋กœ์ ํŠธ ์™ธ๋ถ€์˜ Google ๋‚ด๋ถ€ ์‹œ์Šคํ…œ์— ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์†ก ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

Google Cloud ์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ ์—์ด์ „ํŠธ ํ’€ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์—์ด์ „ํŠธ ํ’€๋กœ ์ด๋™

  2. ์ƒˆ ์—์ด์ „ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์—์ด์ „ํŠธ ํ’€์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ์—์ด์ „ํŠธ ์„ค์น˜๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ผ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ ๋ฐ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ์—์ด์ „ํŠธ์˜ ๋ช…๋ น์ค„ ์˜ต์…˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—์ด์ „ํŠธ ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

gcloud CLI

gcloud CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜ ์ด์ƒ์˜ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด gcloud transfer agents install์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
  --mount-directories=MOUNT_DIRECTORIES

์ด ๋„๊ตฌ๋Š” ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋‹จ๊ณ„๋ฅผ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” POOL_NAME์œผ๋กœ ์ง€์ •๋œ ํ’€ ์ด๋ฆ„์— ๋งคํ•‘๋œ NUM_AGENTS ์—์ด์ „ํŠธ๋ฅผ ๋จธ์‹ ์— ์„ค์น˜ํ•˜๊ณ  gcloud ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—์ด์ „ํŠธ๋ฅผ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค. ํ’€ ์ด๋ฆ„์€ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

--mount-directories ํ”Œ๋ž˜๊ทธ๋Š” ์„ ํƒ์‚ฌํ•ญ์ด์ง€๋งŒ ์ ๊ทน ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฐ’์€ ์—์ด์ „ํŠธ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ์ „์ฒด ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ์—์ด์ „ํŠธ ์ปจํ…Œ์ด๋„ˆ์— ๋งˆ์šดํŠธ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ gcloud ์ฐธ์กฐ๋ฅผ ์ฝ์–ด๋ณด์„ธ์š”.

S3 ํ˜ธํ™˜ ์†Œ์Šค

S3 ํ˜ธํ™˜ ์†Œ์Šค์— ์‚ฌ์šฉํ•˜๋„๋ก ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•  ๋•Œ๋Š” AWS_ACCESS_KEY_ID ๋ฐ AWS_SECRET_ACCESS_KEY์˜ ๊ฐ’๊ณผ ๊ฐ™์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ AWS ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ํŒŒ์ผ์— ์ €์žฅ๋œ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=POOL_NAME \
  --creds-file=/relative/path/to/service-account-key.json

์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ์‚ฌ์šฉ

์„œ๋น„์Šค ๊ณ„์ • ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด --creds-file ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
   --creds-file=/relative/path/to/service-account-key.json

์ถ”๊ฐ€ ์ •๋ณด

์„ ํƒ์ ์ธ ํ”Œ๋ž˜๊ทธ์˜ ์ „์ฒด ๋ชฉ๋ก์„ ๋ณด๋ ค๋ฉด gcloud transfer agents install --help๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ gcloud transfer ์ฐธ์กฐ๋ฅผ ์ฝ์œผ์„ธ์š”.

Docker

Docker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „์— ์•ˆ๋‚ด์— ๋”ฐ๋ผ Docker๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

docker run ๋ช…๋ น์–ด๋Š” ์—์ด์ „ํŠธ ํ•˜๋‚˜๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ํ’€์˜ ์—์ด์ „ํŠธ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋ ค๋ฉด ์ด ๋ช…๋ น์–ด๋ฅผ ํ•„์š”ํ•œ ํšŸ์ˆ˜๋งŒํผ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•  ๋•Œ gcloud ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋‚˜ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด

Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ gcloud ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋กœ ์ธ์ฆํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์„ ํฌํ•จํ•œ Docker ๋ณผ๋ฅจ์„ ๋งŒ๋“œ์„ธ์š”.

sudo docker run -ti --name gcloud-config google/cloud-sdk gcloud auth application-default login

๊ทธ๋Ÿฐ ํ›„ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ณ  --volumes-from ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ gcloud-config ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธํ•ฉ๋‹ˆ๋‹ค.

sudo docker run --ulimit memlock=64000000 -d --rm \
--volumes-from gcloud-config \
-v HOST_DIRECTORY:CONTAINER_DIRECTORY \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--hostname=$(hostname) \
--agent-pool=POOL_NAME

์„œ๋น„์Šค ๊ณ„์ • ์ธ์ฆ

์„œ๋น„์Šค ๊ณ„์ • ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก ์—์ด์ „ํŠธ docker run์„ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ ค๋ฉด --creds-file ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JSON ํ˜•์‹์˜ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๋กœ์—๋Š” /transfer_root ๋ฌธ์ž์—ด์ด ํ”„๋ฆฌํ”ฝ์Šค๋กœ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ • ํ‚ค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

sudo docker run --ulimit memlock=64000000 -d --rm \
-v HOST_DIRECTORY:CONTAINER_DIRECTORY \
-v PATH/TO/KEY.JSON:/etc/gcloud/key.json:ro \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--creds-file=/etc/gcloud/key.json \
--hostname=$(hostname) \
--agent-pool=POOL_NAME

์˜ต์…˜ ๋ฐ ํ”Œ๋ž˜๊ทธ

์œ„ ์˜ˆ์‹œ์˜ ๋ณ€์ˆ˜๋ฅผ ๋‹ค์Œ ์ •๋ณด๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • HOST_DIRECTORY๋Š” ๋ณต์‚ฌํ•˜๋ ค๋Š” ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. -v ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‘ ๊ฐœ ์ด์ƒ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์‚ฌํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • CONTAINER_DIRECTORY๋Š” ์—์ด์ „ํŠธ ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ๋งคํ•‘๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. HOST_DIRECTORY์™€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • PROJECT_ID๋Š” ์ „์†ก์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.
  • POOL_NAME์€ ์ด ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•  ์—์ด์ „ํŠธ ํ’€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ์—์ด์ „ํŠธ๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ transfer_service_default ํ’€์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

docker run ๋ช…๋ น์–ด๋Š” ์ถ”๊ฐ€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • --enable-mount-directory๋Š” ์ „์ฒด ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ปจํ…Œ์ด๋„ˆ์˜ /transfer_root ๋””๋ ‰ํ„ฐ๋ฆฌ ์•„๋ž˜์— ๋งˆ์šดํŠธํ•ฉ๋‹ˆ๋‹ค. --enable-mount-directory๊ฐ€ ์ง€์ •๋˜๋ฉด -v ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์ œํ•œ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • --creds-file=/etc/gcloud/key.json์€ ์ปจํ…Œ์ด๋„ˆ์˜ JSON ํ˜•์‹ ์„œ๋น„์Šค ๊ณ„์ • ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ํŒŒ์ผ๋กœ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ๋ช…๋ น์–ด์˜ -v <var>HOST_PATH/TO/KEY.JSON</var>:/etc/gcloud/key.json:ro ํ”Œ๋ž˜๊ทธ๋กœ ๋งˆ์šดํŠธ๋ฉ๋‹ˆ๋‹ค.

  • --enable-s3์€ ์ด ์—์ด์ „ํŠธ๊ฐ€ S3 ํ˜ธํ™˜ ์Šคํ† ๋ฆฌ์ง€์˜ ์ „์†ก์— ์‚ฌ์šฉ๋˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์œผ๋กœ ์„ค์น˜๋œ ์—์ด์ „ํŠธ๋Š” POSIX ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ „์†ก์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    ์ „์†ก์ด AWS S3 ๋˜๋Š” S3 ํ˜ธํ™˜ ์Šคํ† ๋ฆฌ์ง€์—์„œ ์˜จ ๊ฒฝ์šฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ํ‚ค ID์™€ ๋ณด์•ˆ ๋น„๋ฐ€ํ‚ค๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

    -e AWS_ACCESS_KEY_ID=AWS_ACCESS_KEY_ID \
    -e AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY
    
  • --gcs-api-endpoint=storage.LOCATION.rep.googleapis.com์€ Cloud Storage ๋ฆฌ์ „ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. Cloud Storage ๋ฆฌ์ „ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์ง€์ •๋˜๋ฉด ์—์ด์ „ํŠธ๋ฅผ ํ†ตํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ „์†ก ํŠธ๋ž˜ํ”ฝ์ด ํ•ด๋‹น Google Cloud ๋ฆฌ์ „ ๋‚ด์— ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฆฌ์ „ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

  • --env HTTPS_PROXY=PROXY๋Š” ๋„คํŠธ์›Œํฌ์—์„œ ์ „๋‹ฌ ํ”„๋ก์‹œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. PROXY ๊ฐ’์€ ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ HTTP URL ๋ฐ ํฌํŠธ์ž…๋‹ˆ๋‹ค. TLS ์•”ํ˜ธํ™”์—์„œ ์ด์ค‘ ๋ž˜ํ•‘ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก HTTPS URL์ด ์•„๋‹Œ HTTP URL์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ค‘ ๋ž˜ํ•‘ ์š”์ฒญ์€ ํ”„๋ก์‹œ ์„œ๋ฒ„๊ฐ€ ์œ ํšจํ•œ ์•„์›ƒ๋ฐ”์šด๋“œ ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ๋ชปํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • --agent-id-prefix=ID_PREFIX๋Š” Google Cloud ์ฝ˜์†”์—์„œ ์—์ด์ „ํŠธ ๋˜๋Š” ๋จธ์‹ ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋„๋ก ์—์ด์ „ํŠธ ID ์•ž์— ์ถ”๊ฐ€๋˜๋Š” ์„ ํƒ์  ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ฆฌํ”ฝ์Šค๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉด ์—์ด์ „ํŠธ ID ํ˜•์‹์€ prefix + hostname + Docker container ID๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

  • --log-dir=LOGS_DIRECTORY๋Š” ์—์ด์ „ํŠธ์—์„œ ๋กœ๊ทธ๋ฅผ ์“ฐ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” /tmp/์ž…๋‹ˆ๋‹ค.

    --enable_mount_directory๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์•˜์œผ๋ฉด ์ด ๊ฒฝ๋กœ์— /transfer_root๋ฅผ ํ”„๋ฆฌํ”ฝ์Šค๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด /transfer_root/logs์ž…๋‹ˆ๋‹ค.

  • --max-physical-mem=MAX_MEMORY: ์—์ด์ „ํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ๋Œ€ 8GiB ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์ด ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋งž์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ๊ด€๋ จ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    max-physical-mem ๊ฐ’ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์„ค์ •
    6g 6GB
    6gb 6GB
    6GiB 6GB
  • --network=DOCKER_NETWORK: ์ด ์ปจํ…Œ์ด๋„ˆ์˜ docker network๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --network=host๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์—ฌ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ˜ธ์ŠคํŠธ์˜ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์ „์ฒด ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Podman

Podman์„ ์‚ฌ์šฉํ•˜์—ฌ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „์— Podman์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

sudo apt-get update
sudo apt-get -y install podman

์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•  ๋•Œ gcloud ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋‚˜ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด

์—์ด์ „ํŠธ ์ปจํ…Œ์ด๋„ˆ์—์„œ Google Cloud CLI ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋กœ ์ธ์ฆํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์„ ํฌํ•จํ•œ ๋ณผ๋ฅจ์„ ๋งŒ๋“œ์„ธ์š”.

gcloud auth print-access-token | podman login -u oauth2accesstoken --password-stdin gcr.io
sudo podman pull gcr.io/google.com/cloudsdktool/google-cloud-cli:stable
sudo podman run -ti --replace --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth application-default login

๊ทธ๋Ÿฐ ํ›„ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ณ  --volumes-from ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ gcloud-config ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ์—์ด์ „ํŠธ ํ•˜๋‚˜๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ํ’€์˜ ์—์ด์ „ํŠธ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋ ค๋ฉด ์ด ๋ช…๋ น์–ด๋ฅผ ํ•„์š”ํ•œ ํšŸ์ˆ˜๋งŒํผ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

sudo podman run --ulimit memlock=64000000 -d --rm \
--volumes-from gcloud-config \
-v HOST_DIRECTORY:CONTAINER_DIRECTORY \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--hostname=$(hostname) \
--agent-pool=POOL_NAME

์„œ๋น„์Šค ๊ณ„์ • ์ธ์ฆ

์„œ๋น„์Šค ๊ณ„์ • ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ ค๋ฉด JSON ํ˜•์‹์˜ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค๋ฅผ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ํ‚ค์˜ ํ˜ธ์ŠคํŠธ ์œ„์น˜๋ฅผ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ชจ๋“  ๊ฒฝ๋กœ์— ๋งˆ์šดํŠธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -v $HOME/.config/gcloud/credentials.json:/key.json:ro ์ด๋Š” ํ‚ค๊ฐ€ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์— $HOME/.config/gcloud/credentials.json์— ์žˆ๊ณ  ์ปจํ…Œ์ด๋„ˆ์— /key.json๋กœ ๋งˆ์šดํŠธ๋˜์–ด์•ผ ํ•จ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ro๋Š” ํŒŒ์ผ์ด ์ปจํ…Œ์ด๋„ˆ์— ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์ œ๊ณต๋จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  2. ํ‚ค์˜ ์ปจํ…Œ์ด๋„ˆ ๊ฒฝ๋กœ๋ฅผ --creds-file์˜ ๊ฐ’์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋‹จ๊ณ„์˜ ์˜ˆ์‹œ์—์„œ --creds-file=/key.json๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ • ํ‚ค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

sudo podman run --ulimit memlock=64000000 -d --rm \
-v HOST_DIRECTORY:CONTAINER_DIRECTORY \
-v HOST_PATH/TO/KEY.JSON:/etc/gcloud/key.json:ro \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--creds-file=/etc/gcloud/key.json \
--hostname=$(hostname) \
--agent-pool=POOL_NAME

์˜ต์…˜ ๋ฐ ํ”Œ๋ž˜๊ทธ

์œ„ ์˜ˆ์‹œ์˜ ๋ณ€์ˆ˜๋ฅผ ๋‹ค์Œ ์ •๋ณด๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • HOST_DIRECTORY๋Š” ๋ณต์‚ฌํ•˜๋ ค๋Š” ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. -v ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‘ ๊ฐœ ์ด์ƒ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์‚ฌํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • CONTAINER_DIRECTORY๋Š” ์—์ด์ „ํŠธ ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ๋งคํ•‘๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. HOST_DIRECTORY์™€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • PROJECT_ID๋Š” ์ „์†ก์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.
  • POOL_NAME์€ ์ด ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•  ์—์ด์ „ํŠธ ํ’€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ์—์ด์ „ํŠธ๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ transfer_service_default ํ’€์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

podman run ๋ช…๋ น์–ด๋Š” ์ถ”๊ฐ€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • --enable-mount-directory๋Š” ์ „์ฒด ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ปจํ…Œ์ด๋„ˆ์˜ /transfer_root ๋””๋ ‰ํ„ฐ๋ฆฌ ์•„๋ž˜์— ๋งˆ์šดํŠธํ•ฉ๋‹ˆ๋‹ค. --enable-mount-directory๊ฐ€ ์ง€์ •๋˜๋ฉด -v ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์ œํ•œ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • --creds-file=/etc/gcloud/key.json์€ ์ปจํ…Œ์ด๋„ˆ์˜ JSON ํ˜•์‹ ์„œ๋น„์Šค ๊ณ„์ • ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ํŒŒ์ผ๋กœ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ๋ช…๋ น์–ด์˜ -v <var>HOST_PATH/TO/KEY.JSON</var>:/etc/gcloud/key.json:ro ํ”Œ๋ž˜๊ทธ๋กœ ๋งˆ์šดํŠธ๋ฉ๋‹ˆ๋‹ค.

  • --enable-s3์€ ์ด ์—์ด์ „ํŠธ๊ฐ€ S3 ํ˜ธํ™˜ ์Šคํ† ๋ฆฌ์ง€์˜ ์ „์†ก์— ์‚ฌ์šฉ๋˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์œผ๋กœ ์„ค์น˜๋œ ์—์ด์ „ํŠธ๋Š” POSIX ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ „์†ก์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • ์ „์†ก์ด AWS S3 ๋˜๋Š” S3 ํ˜ธํ™˜ ์Šคํ† ๋ฆฌ์ง€์—์„œ ์˜จ ๊ฒฝ์šฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ํ‚ค ID์™€ ๋ณด์•ˆ ๋น„๋ฐ€ํ‚ค๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

      -e AWS_ACCESS_KEY_ID=AWS_ACCESS_KEY_ID \
      -e AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY
      ```
    
  • --env HTTPS_PROXY=PROXY๋Š” ๋„คํŠธ์›Œํฌ์—์„œ ์ „๋‹ฌ ํ”„๋ก์‹œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. PROXY ๊ฐ’์€ ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ HTTP URL ๋ฐ ํฌํŠธ์ž…๋‹ˆ๋‹ค. TLS ์•”ํ˜ธํ™”์—์„œ ์ด์ค‘ ๋ž˜ํ•‘ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก HTTPS URL์ด ์•„๋‹Œ HTTP URL์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ค‘ ๋ž˜ํ•‘ ์š”์ฒญ์€ ํ”„๋ก์‹œ ์„œ๋ฒ„๊ฐ€ ์œ ํšจํ•œ ์•„์›ƒ๋ฐ”์šด๋“œ ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ๋ชปํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • --agent-id-prefix=ID_PREFIX๋Š” Google Cloud ์ฝ˜์†”์—์„œ ์—์ด์ „ํŠธ ๋˜๋Š” ๋จธ์‹ ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋„๋ก ์—์ด์ „ํŠธ ID ์•ž์— ์ถ”๊ฐ€๋˜๋Š” ์„ ํƒ์  ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ฆฌํ”ฝ์Šค๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉด ์—์ด์ „ํŠธ ID ํ˜•์‹์€ prefix + hostname + OCI container ID๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

  • --log-dir=LOGS_DIRECTORY๋Š” ์—์ด์ „ํŠธ์—์„œ ๋กœ๊ทธ๋ฅผ ์“ฐ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” /tmp/์ž…๋‹ˆ๋‹ค.

    --enable_mount_directory๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์•˜์œผ๋ฉด ์ด ๊ฒฝ๋กœ์— /transfer_root๋ฅผ ํ”„๋ฆฌํ”ฝ์Šค๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด /transfer_root/logs์ž…๋‹ˆ๋‹ค.

  • --max-physical-mem=MAX_MEMORY: ์—์ด์ „ํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ๋Œ€ 8GiB ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์ด ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋งž์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ๊ด€๋ จ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    max-physical-mem ๊ฐ’ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์„ค์ •
    6g 6GB
    6gb 6GB
    6GiB 6GB
  • --network=DOCKER_NETWORK: ์ด ์ปจํ…Œ์ด๋„ˆ์˜ docker network๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --network=host๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์—ฌ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ˜ธ์ŠคํŠธ์˜ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์ „์ฒด ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ

SELinux ๊ตฌ์„ฑ์—์„œ ์ปจํ…Œ์ด๋„ˆ์— ๋งˆ์šดํŠธ๋œ ๋ณผ๋ฅจ ์ฝ˜ํ…์ธ ์— ๋ผ๋ฒจ์„ ๋ฐฐ์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋ณผ๋ฅจ์— :Z ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

sudo podman run --ulimit memlock=64000000 -d --rm \
-v HOST_DIRECTORY:CONTAINER_DIRECTORY:Z \
-v HOST_PATH/TO/KEY.JSON:/etc/gcloud/key.json:ro \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--creds-file=/etc/gcloud/key.json:ro \
--hostname=$(hostname) \
--agent-pool=POOL_NAME

๋ผ๋ฒจ์ด ์—†์œผ๋ฉด ๋ณด์•ˆ ์‹œ์Šคํ…œ์—์„œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Podman์€ OS์—์„œ ์„ค์ •ํ•œ ๋ผ๋ฒจ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ ์—ฐ๊ฒฐ ํ™•์ธ

์—์ด์ „ํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ ์—์ด์ „ํŠธ ํ’€ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์—์ด์ „ํŠธ ํ’€๋กœ ์ด๋™

    ์—์ด์ „ํŠธ ํ’€์ด ์—ฐ๊ฒฐ๋œ ์—์ด์ „ํŠธ ์ˆ˜์™€ ํ•จ๊ป˜ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  2. ์—ฐ๊ฒฐ๋œ ์—์ด์ „ํŠธ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ์—์ด์ „ํŠธ ํ’€์„ ์„ ํƒํ•˜์„ธ์š”.

์—์ด์ „ํŠธ ์ƒ์„ฑ ํ›„ 10๋ถ„ ๋‚ด์— ์ƒˆ ์—์ด์ „ํŠธ๊ฐ€ ์—์ด์ „ํŠธ ํ’€ ํŽ˜์ด์ง€์— ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ์—์ด์ „ํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์—์ด์ „ํŠธ ํ™œ๋™ ๋ชจ๋‹ˆํ„ฐ๋ง

Cloud Monitoring์„ ์‚ฌ์šฉํ•˜์—ฌ ์—์ด์ „ํŠธ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

project, agent_pool, agent_id ์ธก์ •๊ธฐ์ค€๊ณผ ํ•จ๊ป˜ Monitoring์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก๊ณผ ๊ด€๋ จ๋œ ์ž ์žฌ์ ์ธ ๋ฌธ์ œ๋ฅผ ์•Œ๋ฆฌ๋„๋ก ์•Œ๋ฆผ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ Google Cloud ์ธก์ •ํ•ญ๋ชฉ ์ค‘ ํ•˜๋‚˜์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ๋งŒ๋“œ์„ธ์š”.

์ธก์ •ํ•ญ๋ชฉ ์ด๋ฆ„ ์„ค๋ช… ๋‚ด์šฉ ์ถ”์ฒœ ์šฉ๋„
storagetransfer.googleapis.com/agent/transferred_bytes_count ํŠน์ • ์—์ด์ „ํŠธ๊ฐ€ ํŠน์ • ์‹œ์ ์— ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ์ž‘์—… ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋™ํ•˜๋Š” ์†๋„๋ฅผ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ํ•˜๋ฝ ์•Œ๋ฆผ
storagetransfer.googleapis.com/agent/connected Google Cloud์—์„œ ์ตœ๊ทผ ํ•˜ํŠธ๋น„ํŠธ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•œ ๊ฐ ์—์ด์ „ํŠธ์— ๋Œ€ํ•ด True์ธ ๋ถ€์šธ์ž…๋‹ˆ๋‹ค.
  • ์‹คํŒจํ•œ ์—์ด์ „ํŠธ ์•Œ๋ฆผ
  • ํ•ฉ๋ฆฌ์ ์ธ ์„ฑ๋Šฅ์— ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ์— ๋ฏธ๋‹ฌ
  • ์—์ด์ „ํŠธ ๋จธ์‹  ๋ฌธ์ œ ์•Œ๋ฆผ

์—์ด์ „ํŠธ ์ค‘์ง€

์—์ด์ „ํŠธ๋ฅผ ์ค‘์ง€ํ•˜๋ ค๋ฉด ์—์ด์ „ํŠธ์˜ Docker ์ปจํ…Œ์ด๋„ˆ ID์—์„œ docker stop์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ID๋ฅผ ์ฐพ๊ณ  ์—์ด์ „ํŠธ๋ฅผ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ ์—์ด์ „ํŠธ ํ’€ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์—์ด์ „ํŠธ ํ’€๋กœ ์ด๋™

  2. ์ค‘์ง€ํ•  ์—์ด์ „ํŠธ๊ฐ€ ํฌํ•จ๋œ ์—์ด์ „ํŠธ ํ’€์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ชฉ๋ก์—์„œ ์—์ด์ „ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ•„ํ„ฐ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ฆฌํ”ฝ์Šค, ์—์ด์ „ํŠธ ์ƒํƒœ, ์—์ด์ „ํŠธ ์—ฐ๋ น ๋“ฑ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

  4. ์—์ด์ „ํŠธ ์ค‘์ง€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ์ปจํ…Œ์ด๋„ˆ ID๊ฐ€ ํ‘œ์‹œ๋œ docker stop ๋ช…๋ น์–ด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  5. ์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ๋จธ์‹ ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. docker stop ๋ช…๋ น์–ด๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ ID๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

์ค‘์ง€๋˜๋ฉด ์—์ด์ „ํŠธ๊ฐ€ ์—์ด์ „ํŠธ ํ’€ ๋ชฉ๋ก์— ์—ฐ๊ฒฐ ํ•ด์ œ๋จ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ ๋‹ค์‹œ ์‹œ์ž‘

์ค‘์ง€๋œ ์—์ด์ „ํŠธ๋Š” ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์—์ด์ „ํŠธ ํ’€์— ์ƒˆ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜์„ธ์š”.

์—์ด์ „ํŠธ ์‚ญ์ œ

ํŠน์ • ์—์ด์ „ํŠธ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋จธ์‹ ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์—์ด์ „ํŠธ๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

docker container list --all --filter ancestor=gcr.io/cloud-ingest/tsop-agent

๊ทธ๋Ÿฐ ๋‹ค์Œ ์—์ด์ „ํŠธ ID๋ฅผ transfer agents delete์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

gcloud transfer agents delete --ids=id1,id2,โ€ฆ

๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  ์—์ด์ „ํŠธ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด --all ํ”Œ๋ž˜๊ทธ๋‚˜ --uninstall ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‘ ํ”Œ๋ž˜๊ทธ ๋ชจ๋‘ ๋จธ์‹ ์˜ ๋ชจ๋“  ์—์ด์ „ํŠธ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. --uninstall ํ”Œ๋ž˜๊ทธ๋Š” ์—์ด์ „ํŠธ Docker ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

gcloud transfer agents delete --all
gcloud transfer agents delete --uninstall

ํŒŒ์ผ ์‹œ์Šคํ…œ ์ „์†ก ์„ธ๋ถ€์ •๋ณด

์ฆ๋ถ„ ์ „์†ก

Storage Transfer Service๋Š” ์†Œ์Šค ๋ฐ ๋Œ€์ƒ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์‚ฐํ•˜์—ฌ ๋ชจ๋“  ์ „์†ก์„ ์‹œ์ž‘ํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ์ „์†ก ์ดํ›„ ์ƒˆ๋กœ์šด ์†Œ์Šค ํŒŒ์ผ, ์—…๋ฐ์ดํŠธ ๋˜๋Š” ์‚ญ์ œ๋œ ์†Œ์Šค ํŒŒ์ผ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋จธ์‹ ์—์„œ ์ „์†กํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์ค„์ด๊ณ , ๋Œ€์—ญํญ์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ „์†ก ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ต๋‹ˆ๋‹ค.

ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Google์—์„œ๋Š” ์†Œ์Šค ํŒŒ์ผ์˜ ์ตœ์ข… ์ˆ˜์ • ์‹œ๊ฐ„๊ณผ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ํŒŒ์ผ์„ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ณต์‚ฌํ•œ ์‹œ์ ์— ๊ธฐ๋ก๋œ ์ตœ์ข… ์ˆ˜์ • ์‹œ๊ฐ„ ๋ฐ ํฌ๊ธฐ์™€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ํŒŒ์ผ์ด๋‚˜ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์ด ๊ฐ์ง€๋˜๋ฉด ์ „์ฒด ํŒŒ์ผ์ด ๋Œ€์ƒ์— ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ตœ์‹  ์ƒํƒœ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ์ ์œผ๋กœ Google์€ ์†Œ์Šค์—์„œ ์‚ญ์ œ๋œ ํŒŒ์ผ์„ ๊ฐ์ง€ํ•˜์ง€๋งŒ ์กฐ์น˜๋ฅผ ์ทจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŒ๋“ค๊ธฐ ๋˜๋Š” ์ˆ˜์ • ์‹œ ์†Œ์Šค์—๋„ ์—†๋Š” ๋Œ€์ƒ ํŒŒ์ผ ์‚ญ์ œ ๋™๊ธฐํ™” ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ์ „์†ก ์‹œ ๋Œ€์ƒ์—์„œ ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

์†Œ์Šค์—๋„ ์—†๋Š” ๋Œ€์ƒ ํŒŒ์ผ ์‚ญ์ œ ๋™๊ธฐํ™” ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ์†Œ์Šค์—์„œ ์‹ค์ˆ˜๋กœ ์‚ญ์ œ๋œ ํŒŒ์ผ๋„ ๋Œ€์ƒ์—์„œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์‹ค์ˆ˜๋กœ ์ธํ•œ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๋Œ€์ƒ ๋ฒ„ํ‚ท์—์„œ ๊ฐ์ฒด ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‹ค์ˆ˜๋กœ ์ธํ•ด ํŒŒ์ผ์ด ์‚ญ์ œ๋˜์–ด๋„ Cloud Storage์˜ ๊ฐ์ฒด๋ฅผ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์„ธ๋ถ€์ •๋ณด

์„ฑ๊ณต์ ์ธ ์ „์†ก ์ž‘์—…์€ ์ž‘์—…์˜ ์ „์ฒด ์‹คํ–‰ ์‹œ๊ฐ„ ๋™์•ˆ ์กด์žฌํ•˜๊ณ  ์ˆ˜์ •๋˜์ง€ ์•Š์€ ๋ชจ๋“  ์†Œ์Šค ํŒŒ์ผ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ „์†ก ์ค‘์— ์ƒ์„ฑ, ์—…๋ฐ์ดํŠธ ๋˜๋Š” ์‚ญ์ œ๋œ ์†Œ์Šค ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋Œ€์ƒ ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐ˜์˜ ๋˜๋Š” ๋ฐ˜์˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Storage Transfer Service๋Š” ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ์ˆ˜์ • ์‹œ๊ฐ„๊ณผ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์ˆ˜์ • ์‹œ๊ฐ„ ๋˜๋Š” ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ํŒŒ์ผ์ด ์—…๋ฐ์ดํŠธ๋œ ๊ฒฝ์šฐ delete-objects-from-source ์˜ต์…˜์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

delete-objects-from-source ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ฐ์ดํ„ฐ ์†์‹ค ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ์ „์†ก ๊ธฐ๊ฐ„ ๋™์•ˆ ์†Œ์Šค์— ๋Œ€ํ•œ ์“ฐ๊ธฐ๋ฅผ ๊ณ ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์†Œ์Šค์— ๋Œ€ํ•œ ์“ฐ๊ธฐ๋ฅผ ๊ณ ์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์ „์†กํ•˜๋ ค๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํด๋ก ํ•œ ํ›„ ํด๋ก ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ „์†ก ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์†Œ์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ „์†ก ์ค‘์— ๋ฐœ์ƒํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•ด์•ผ ํ•˜๋ฉด ์ „์†ก์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์ž‘์—…์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์†Œ์Šค ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Cloud Storage์—๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฐœ๋…์ด ์—†์œผ๋ฏ€๋กœ ๋นˆ ์†Œ์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.