Restic: ๋น„๋Œ€์นญ ๋ฐฑ์—… ์ง€์›

์— ๋งŒ๋“  2015๋…„ 05์›” 14์ผ  ยท  44์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: restic/restic

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

์š”์•ฝ(2018-04-28)

ํ˜„์žฌ restic์€ (๋Œ€๋ถ€๋ถ„) "๋ฉ์ฒญํ•œ" ์ €์žฅ์†Œ(local, s3, b2, gcs, azure, REST ์„œ๋ฒ„ --append-only ์ œ์™ธ)์™€ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. restic์€ ๋ฐฑ์—”๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๋‚˜์—ด, ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐฑ์—…์— ํ•„์š”ํ•˜๋ฏ€๋กœ ๋ฐฑ์—”๋“œ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ž๊ฒฉ ์ฆ๋ช…์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, restic์€ ๊ฑฐ์˜ ๋ชจ๋“  ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ œํ•œ ์‚ฌํ•ญ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹จ์ ์€ ๊ณต๊ฒฉ์ž๊ฐ€ ์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด ๋ฐฑ์—”๋“œ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ ์ž๊ฒฉ ์ฆ๋ช…๊ณผ ๋‚˜๋จธ์ง€ ์•”ํ˜ธ๋ฅผ ์‰ฝ๊ฒŒ ์ถ”์ถœํ•˜์—ฌ ๋ชจ๋“  ๊ฐ€๋Šฅ์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ ํ•ด๋…, ๋ฐ์ดํ„ฐ ์ˆ˜์ •, ์ „์ฒด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์‚ญ์ œ.

๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ๊ณต๊ฒฉ์ž์˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ์ €์žฅ์†Œ์—์„œ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋…ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ, ํŠนํžˆ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋Š” ์—ฌ์ „ํžˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "๋น„๋Œ€์นญ ์•”ํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ"์ด โ€‹โ€‹์ „๋ถ€๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์•„์ด๋””์–ด๋Š” "๋ฉ์ฒญํ•œ" ์ €์žฅ์†Œ์— ์ง์ ‘ ์•ก์„ธ์Šคํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž ์ง€์ • ์„œ๋ฒ„ ๊ตฌํ˜„์„ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ์•„์ด๋””์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ๋†€์•˜๊ณ  REST ์„œ๋ฒ„์— ๋Œ€ํ•œ --append-only ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋กœ์ปฌ ํ•˜๋“œ ๋””์Šคํฌ์˜ "๋ฉ์ฒญํ•œ" ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ "์–ด๋Œ‘ํ„ฐ"๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์š”์•ฝ์˜ ์ฒซ ๋ฒˆ์งธ ๋‹จ๋ฝ๊ณผ "์–ด๋Œ‘ํ„ฐ" ๊ตฌํ˜„์˜ ์œ ์ผํ•œ ์˜ˆ์™ธ๋Š” rclone ๋ฐฑ์—”๋“œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด SSH( restic -o rclone.program='ssh user<strong i="15">@server</strong>' , ํ•˜๋“œ ์ฝ”๋”ฉ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•œ SSH ํ‚ค์— ๋Œ€ํ•ด .ssh/authorized_keys ์—์„œ ForceCommand rclone ๋ฅผ ํ†ตํ•ด --append-only ์— ํ˜ธ์ถœ์— ์ง€์ •๋œ rclone , ๋ฐ์ดํ„ฐ๋Š” ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"๋ฉ์ฒญํ•˜์ง€ ์•Š์€" ์ €์žฅ์†Œ๋งŒ ์žˆ์œผ๋ฉด ๊ณต๊ฒฉ์ž๊ฐ€ ์ €์žฅ์†Œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€ ์•Š์ง€๋งŒ(์ ์–ด๋„ ์ €์žฅ์†Œ ํ˜•์‹์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋Š” ์•„๋‹˜) ์ €์žฅ์†Œ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฒฐ๋ก ์ ์œผ๋กœ ๋ฐฑ์—…์„ ์œ„ํ•ด restic์„ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์ธ์ˆ˜ํ•˜๋Š” ๊ณต๊ฒฉ์ž๋กœ๋ถ€ํ„ฐ ๊ฐ€์žฅ ์ž˜ ๋ฐฉ์–ดํ•˜๋ ค๋ฉด ๋‘ ๊ฐ€์ง€(๋น„๋ค ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”)๋ฅผ ๋ชจ๋‘ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ธฐ์ ์ธ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค :)

feature enhancement tracking

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋Š” yubikey์™€ ๊ฐ™์€ OpenPGP ํ‚ค์˜ ์‚ฌ์šฉ๋„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  44 ๋Œ“๊ธ€

์ด์ „ ํ† ๋ก ์˜ ๊ฐ„๋žตํ•œ ์š”์•ฝ:

  • ์ด๋Ÿฌํ•œ ์„œ๋ฒ„๊ฐ€ ์†์ƒ๋œ ๊ฒฝ์šฐ ์ด๋ฉ”์ผ ์„œ๋ฒ„์˜ ๋ฐฑ์—… ๋˜๋Š” ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์˜ ์›๊ฒฉ ๋ฐฑ์—…์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์—์„œ ํŒŒ์‡„๋œ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐฑ์—…์— ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ์ž์˜ ์•ก์„ธ์Šค๋ฅผ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์ „์šฉ/์ฝ๊ธฐ ์ „์šฉ/์ฝ๊ธฐ-์“ฐ๊ธฐ ์•ก์„ธ์Šค๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์‹œ์Šคํ…œ์„ ๊ฐ–์ถ˜ "๋ธ”๋กญ ๋„คํŠธ์›Œํฌ ์„œ๋ฒ„"๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๊ณผ ๋™์‹œ์— ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋Šฅ์„ ๋ฐœํ–‰ํ•˜๊ธฐ ์œ„ํ•œ _๋˜ ๋‹ค๋ฅธ_ ์„ธํŠธ์˜ ๋Œ€์นญ ํ‚ค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ธฐ๋Šฅ ์‹œ์Šคํ…œ์˜ ๊ตฌํ˜„๋„ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ๋จธ์‹ ์ด ์žˆ๋Š” ์„ค์ •์—์„œ _one_ ๋ฐฑ์—… ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์ˆ˜์˜ ๋Œ€์นญ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ณ ๋„ ์—ฌ๋Ÿฌ ๋ฐฑ์—… ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Daniel Bernstein์˜ Curve25519์™€ ๊ฐ™์€ ์•”ํ˜ธ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ํ‚ค๋Š” ์•”ํ˜ธ์—์„œ ํŒŒ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ ๋งˆ์Šคํ„ฐ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ (์ž ์žฌ์ ์œผ๋กœ ๋งŽ์€) ์—ฌ๋Ÿฌ ๋ณด์•ˆ ๋„๋ฉ”์ธ์—์„œ ์ƒ์„ฑ๋œ ๋ฐฑ์—…์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  n ๋Œ€์นญ ํ‚ค์™€ ์•”ํ˜ธํ™”๋œ ํ‚ค ์ €์žฅ์†Œ๋กœ ๋น„์Šทํ•œ ๊ฒƒ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@heipei ์ฐธ๊ณ ๋กœ ์ด ํ˜ธ๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ๋ถ„๋ช…ํ•˜๊ณ  ์‹œ๊ธ‰ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ(๋ฐฑ์—… ํด๋ผ์ด์–ธํŠธ)์— ์นจ์ž…ํ•˜์—ฌ ๊ทธ๊ณณ์—์„œ restic์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ๋ฐฑ์—…์„ ์ง€์šฐ์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ€์„ฑ ( write-only )์€ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์€ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ง์Šน์ž…๋‹ˆ๋‹ค.
๋น„๋Œ€์นญ ์•”ํ˜ธํ™”(๋ฐ ์ผํšŒ์„ฑ ์„œ๋ช… ์ฒด๊ณ„)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Œ์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์™„์ „ํ•œ ์ œ๊ฑฐ ๋˜๋Š” ๊ต์ฒด๋ฅผ ๋ง‰์„ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” append-only (์ผ๋ถ€ ๋ถ€ํ’ˆ์˜ ๊ฒฝ์šฐ read-only ์ธ ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
ssh์™€ ๊ฐ™์€ ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ *nix์—์„œ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๋น„๊ต์  ๊ฐ„๋‹จํ•œ ์ž„์˜ ์•ก์„ธ์Šค ์ œ์–ด ๋•๋ถ„์—( chmod , chown , chattr +i , chattr +a ์•ก์„ธ์Šค ์ •์ฑ…์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค). append-only ๋ฐฑ์—…์€ ๊ณต๊ฒฉ์ž๊ฐ€ ์ฝ์ง€ ๋ชปํ•˜๋„๋ก ์•”ํ˜ธํ™”ํ•  ํ•„์š”์กฐ์ฐจ ์—†์ง€๋งŒ(์˜ˆ๋ฅผ ๋“ค์–ด rsyslog ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ์ผ๋ถ€์ž„) ์ด๋Š” ๊ฐ‘์ž๊ธฐ ๋ฐฑ์—… ์„œ๋ฒ„๋ฅผ ํฅ๋ฏธ๋กœ์šด ๋Œ€์ƒ์œผ๋กœ ๋งŒ๋“ค๊ณ , ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ๋งŽ์€ ์žฅ์น˜์— ๋ณต์ œํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ€ ์„ ์œ ์ง€ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ •ํ™•ํžˆ ๋†’์•„์ง€์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ์‚ฌ๋žŒ๋“ค์ด ๋ฉ์ฒญํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์‹œ์Šคํ…œ์—์„œ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋ฐฑ์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. restic ์˜ ํ•ต์‹ฌ ์ค‘ ํ•˜๋‚˜์ธ(๊ฐœ์„ ๋œ ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐ ๊ธฐํƒ€ ๋ชจ๋“  ์ข‹์€ ๊ธฐ๋Šฅ์€ ์ œ์™ธ) ์ด ์„ค๋ช…์ด ๋‚ด ์š”์ ์„ ์กฐ๊ธˆ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ•ด์ฃผ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ https://github.com/restic/restic/issues/187#issuecomment -101974306์— ์„ค๋ช…๋œ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ด€๋ จ: AFAIK, IAM ์ž๊ฒฉ ์ฆ๋ช…์— PutObject ๋ฐ GetObject ๊ถŒํ•œ DeleteObject ๋Š” ๋ณด๋ฅ˜ํ•˜์—ฌ Amazon S3์—์„œ append-only ๋™์ž‘์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค PutObject ํ—ˆ๊ฐ€.

๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ€์„ฑ ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™œ์„ฑํ™”๋œ ๊ณต๊ฒฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.
ํ”ผํ•ด์ž๊ฐ€ restic ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‹œ์ ์—์„œ ๊ณต๊ฒฉ์ž๊ฐ€ ํ”ผํ•ด์ž์˜ ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ทธ๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”ผํ•ด์ž์˜ restic ํ‚ค ํ›”์น˜๊ธฐ
  • ํ”ผํ•ด์ž์˜ IAM ์ž๊ฒฉ ์ฆ๋ช…/sftp ๋กœ๊ทธ์ธ/...

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ณต๊ฒฉ์ž๋Š” ํ”ผํ•ด์ž์˜ ์‹œ์Šคํ…œ์—์„œ ๊ณต๊ฒฉ์˜ ํ”์ ์„ ์ฆ‰์‹œ ์ง€์›Œ ํƒ์ง€ ๊ฐ€๋Šฅ์„ฑ์„ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฐ€ ์›๊ฒฉ ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋ ˆ์ŠคํŠธ๋ฆญ ํ‚ค์™€ ์ž๊ฒฉ ์ฆ๋ช…์„ ํ›”์ณค๊ธฐ ๋•Œ๋ฌธ์— ํ”ผํ•ด์ž๋Š” (๋ฐฑ์—…๋œ) ํ–ฅํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ์—๊ฒŒ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ „๋‹ฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์›๊ฒฉ ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ์—์„œ ๋•Œ๋•Œ๋กœ ์ƒˆ๋กœ์šด ๋ฐฑ์—…์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ํ•ด๋…ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ.

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

๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ: AFAIK์™€ ๊ด€๋ จํ•˜์—ฌ IAM ์ž๊ฒฉ ์ฆ๋ช…์— PutObject ๋ฐ GetObject ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌํ•˜๊ณ  DeleteObject ๊ถŒํ•œ์€ ๋ณด๋ฅ˜ํ•˜์—ฌ Amazon S3์—์„œ ์ถ”๊ฐ€ ์ „์šฉ ๋™์ž‘์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ PutObject ๋Š” ์ด์ „์— ์—…๋กœ๋“œํ•œ ํŒŒ์ผ์„ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์™„์ „ํ•œ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋Š” yubikey์™€ ๊ฐ™์€ OpenPGP ํ‚ค์˜ ์‚ฌ์šฉ๋„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋Š˜ ๋‚˜๋Š” restic์—์„œ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ ์ง€์›์„ ์›ํ•˜์ง€ ์•Š์ง€๋งŒ ์ €์žฅ์†Œ์— ํ‚ค๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋„๋ก ์ง€์›ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ restic์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ ์—†์ด ์ƒˆ ๋ฐฑ์—…์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋งค์šฐ ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ €์—๊ฒŒ๋Š” ๋Œ€์นญ ํ‚ค๋ฅผ ์ œํ•œ ์—†์ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ  ๋ณต์žกํ•œ KDF๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์ €์žฅ์†Œ์— ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋“  ์—…๋กœ๋“œ๋˜์ง€ ์•Š์œผ๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์—ฌ๋Ÿฌ ์„œ๋ฒ„์˜ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค.

๋น„๋Œ€์นญ ๋ฐฑ์—…์€ ๊ณต๊ฒฉ์ž๊ฐ€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ(๋ฐฑ์—… ํฌํ•จ)๋ฅผ ์•…์˜์ ์œผ๋กœ ํŒŒ๊ดด(๋˜๋Š” ๋žœ์„ฌ์›จ์–ด ์•”ํ˜ธํ™”)ํ•˜๋Š” ์„œ๋ฒ„ ์†์ƒ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋ฐฑ์—…์„ ๋ณดํ˜ธํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ rdiff-backup์— --restrict-update-only ์˜ต์…˜์ด ์žˆ๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ์ถ”๊ฐ€ ์ „์šฉ ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ธต ๋˜๋Š” ์„œ๋ฒ„ ๋ฐ๋ชฌ์„ ํ†ตํ•œ ์„œ๋ฒ„ ์ธก ์ง€์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ €๋Š” ๋ฐฑ์—… ์„œ๋ฒ„(sftp๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šค)์— ์žˆ๋Š” ๋ฐฑ์—… ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ฝ๊ธฐ ์ „์šฉ ์Šค๋ƒ…์ƒท์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

(์•„๋งˆ๋„ ๊ด€๋ จ) : ์ถ”๊ฐ€ ์ „์šฉํ•˜์—ฌ ํ†ตํ•ด ๋ฆฌ๋ˆ…์Šค์— ๋‹ฌ์„ฑ ํ•  ์ˆ˜ append-only ์™€ ํ•จ๊ป˜ ๋””๋ ‰ํ† ๋ฆฌ (๋น„ํ™œ์„ฑํ™” ๋งํฌ ํ•ด์ œ)์— ํ”Œ๋ž˜๊ทธ immutable ํŒŒ์ผ์— ํ”Œ๋ž˜๊ทธ. ์ด๋Ÿฌํ•œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์€ ๊ฐ๊ฐ chattr +a /path/to/directory ๋ฐ chattr +i /path/to/directory/myfile01 ์ž…๋‹ˆ๋‹ค.

์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” #533 - ๋ฌด์ธ ๋ฐฑ์—…์ž…๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ์–ธ๊ธ‰๋œ ๋ฐ”์™€ ๊ฐ™์ด ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋Š” ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ผ ๋ฟ์ด์ง€๋งŒ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ๋ช…๋ฐฑํ•œ ํ•ด๊ฒฐ์ฑ…์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

repo๊ฐ€ โ€‹โ€‹์›๊ฒฉ ์„œ๋ฒ„์— ์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ repo์˜ ๋กœ์ปฌ ๋ช…๋ น๋งŒ ์žŠ์–ด๋ฒ„๋ฆฌ๊ฑฐ๋‚˜ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€ ๋ฐฑ์—…์€ ๋ณต์›/๋ฐฑ์—… ๊ถŒํ•œ๋งŒ ์žˆ๋Š” ํ•ด๋‹น ์‹œ์Šคํ…œ์˜ ๊ณ ์œ  ํ‚ค๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

repo๊ฐ€ โ€‹โ€‹์›๊ฒฉ ์„œ๋ฒ„์— ์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ repo์˜ ๋กœ์ปฌ ๋ช…๋ น๋งŒ ์žŠ์–ด๋ฒ„๋ฆฌ๊ฑฐ๋‚˜ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ repo ์ˆ˜์ค€์—์„œ ํŒŒ์ผ ์‚ญ์ œ/์ˆ˜์ •์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜์—ฌ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” restic์ด ์ด๋Ÿฌํ•œ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฌ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์•ˆ์ „ํ•˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค). ๊ฒฐ๊ตญ ๋ˆ„๊ตฐ๊ฐ€๋Š” repo ๋˜๋Š” ์‹ฌ์ง€์–ด ํ‚ค๊นŒ์ง€ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚˜๋จธ์ง€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•ด๋‹น ์ž‘์—…์„ ํ—ˆ์šฉํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ „์ฒด repo๋ฅผ ์“ธ๋ชจ์—†๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„๋ฅผ ํ•ดํ‚นํ•˜๋Š” ๋ˆ„๊ตฐ๊ฐ€์— ์˜ํ•ด ๋ฐฑ์—… ๋ฐ์ดํ„ฐ๊ฐ€ ํŒŒ๊ดด๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ: rest-server๋Š” ์ตœ๊ทผ์— ์ •ํ™•ํžˆ ์ด๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” PR https://github.com/restic/rest-server/pull/28 ์„ ํ†ตํ•ด "์ถ”๊ฐ€ ์ „์šฉ ๋ชจ๋“œ"๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

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

๋‚ด๊ฐ€ ์ฐพ๊ณ  ์žˆ๋Š” ๊ธฐ๋Šฅ์€ ์‹œ์Šคํ…œ์ด ์“ฐ๊ธฐ(๋ฐฑ์—…) ๋ฐ ์ฝ๊ธฐ(๋ณต์›)๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์ง€๋งŒ ์–ด๋–ค ๊ด€๋ฆฌ๋„ ํ•  ์ˆ˜ ์—†๋Š” "๋ฐฑ์—…" ํ‚ค๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ: ์ •๋ฆฌ, ํ‚ค ์ถ”๊ฐ€ ๋˜๋Š” ๋‹ค๋ฅธ ํ‚ค, (์‚ฌ์šฉ์ž) ๋˜๋Š” $backup_key ์™€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ์Šค๋ƒ…์ƒท. (๋ฐฑ์—… ์‹œ๊ฐ„์„ ๋น„๊ตํ•ด์„œ ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ๋ฐ์ดํ„ฐ์˜ ์กด์žฌ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋‚˜์—๊ฒŒ๋Š” ์ƒ๊ด€์—†์ง€๋งŒ, ๋‚ด ๋ฐ์ดํ„ฐ๋ฅผ ๋žœ์„ฌ์›จ์–ดํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋ฅผ ๋ณผ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.) ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ์•”ํ˜ธ๋ฅผ ๋กคํฌ์›Œ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฑ์—…(์ „์šฉ) ํ‚ค ๋ณด์œ ์ž. ๋”ฐ๋ผ์„œ michbsd์˜ ์š”์ฒญ๊ณผ ๋‹ฌ๋ฆฌ ๊ถŒํ•œ ์žˆ๋Š” ํ‚ค๊ฐ€ ์žˆ๋Š” ๋กœ์ปฌ์ด ์•„๋‹Œ ์ปดํ“จํ„ฐ์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (SELinux๋ฅผ ๋ช‡ ๋…„ ๋™์•ˆ ์‚ฌ์šฉํ•ด ์˜จ ์ €๋Š” ์ด์ œ MAC์˜ ์„ธ๋ถ„ํ™”๋œ ๊ธฐ๋Šฅ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.) ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. (์ž์ฒด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.) ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด #RasticKillsRansomware

์ด ๊ธฐ๋Šฅ์œผ๋กœ #RasticKills๋žœ์„ฌ์›จ์–ด

์ผ๋ฐ˜์ ์œผ๋กœ ํ’€ ์ง€ํ–ฅ ๋ฐฑ์—…(ํ‘ธ์‹œ ์ง€ํ–ฅ ๋ฐฑ์—…๊ณผ ๋ฐ˜๋Œ€)์€ ๋žœ์„ฌ์›จ์–ด๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋งž๋‚˜์š”? :)

๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์›๊ฒฉ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๋˜ ๋‹ค๋ฅธ ๊ณต๊ฒฉ ๋ฒกํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์„ค๊ณ„ํ•œ ๋ฐฉ๋ฒ• ๋ฐฑ์—… ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‚ด ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ์•ก์„ธ์Šคํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ์˜์—ญ์˜ ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„.

Restic์€ ๋ฐฑ์—… ์ €์žฅ์†Œ์—์„œ ์ง์ ‘ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Restic์ด ์†”๋ฃจ์…˜์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ๋‹น์‹ ์€ ์ผ์ข…์˜ ์ค‘๊ฐœ์ž ์„œ๋ฒ„๋กœ ๋ญ”๊ฐ€๋ฅผ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ๋จธ์‹ ์—์„œ tarball์„ ์„œ๋ฒ„์— ์—…๋กœ๋“œํ•˜๋„๋ก ํ•œ ๋‹ค์Œ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ tarball์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ถ”์ถœํ•œ ๋‹ค์Œ ์ฝ˜ํ…์ธ ๋ฅผ ๋กœ์ปฌ๋กœ ๋ฐฑ์—…ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์–‘์ชฝ์€ ์ค‘๊ฐ„ ์„œ๋ฒ„์—๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Restic์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์‹  ์ „์šฉ Restic ๋ชจ๋“œ์˜ ๋ฒ„๊ทธ๋กœ ์ธํ•ด ๋ฐฑ์—…์ด ์†์ƒ๋œ ๋ฐฑ์—… ํด๋ผ์ด์–ธํŠธ์— ์ทจ์•ฝํ•ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์•„๋งˆ๋„ ๋” ์•ˆ์ „ํ•˜๊ณ  ๊ฐ•๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ฐพ๊ณ  ์žˆ๋Š” ๊ธฐ๋Šฅ์€ ์‹œ์Šคํ…œ์ด ์“ฐ๊ธฐ(๋ฐฑ์—…) ๋ฐ ์ฝ๊ธฐ(๋ณต์›)๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์ง€๋งŒ ์–ด๋–ค ๊ด€๋ฆฌ๋„ ํ•  ์ˆ˜ ์—†๋Š” "๋ฐฑ์—…" ํ‚ค๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ: ์ •๋ฆฌ, ํ‚ค ์ถ”๊ฐ€ ๋˜๋Š” ๋‹ค๋ฅธ ํ‚ค, (์‚ฌ์šฉ์ž) ๋˜๋Š” $backup_key ์™€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ์Šค๋ƒ…์ƒท. (๋ฐฑ์—… ์‹œ๊ฐ„์„ ๋น„๊ตํ•ด์„œ ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ๋ฐ์ดํ„ฐ์˜ ์กด์žฌ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋‚˜์—๊ฒŒ๋Š” ์ƒ๊ด€์—†์ง€๋งŒ, ๋‚ด ๋ฐ์ดํ„ฐ๋ฅผ ๋žœ์„ฌ์›จ์–ดํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋ฅผ ๋ณผ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.) ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ์•”ํ˜ธ๋ฅผ ๋กคํฌ์›Œ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฑ์—…(์ „์šฉ) ํ‚ค ๋ณด์œ ์ž. ๋”ฐ๋ผ์„œ michbsd์˜ ์š”์ฒญ๊ณผ ๋‹ฌ๋ฆฌ ๊ถŒํ•œ ์žˆ๋Š” ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ์ด ์•„๋‹Œ ์ปดํ“จํ„ฐ์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (SELinux๋ฅผ ๋ช‡ ๋…„ ๋™์•ˆ ์‚ฌ์šฉํ•ด ์˜จ ์ €๋Š” ์ด์ œ MAC์˜ ์„ธ๋ถ„ํ™”๋œ ๊ธฐ๋Šฅ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.) ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. (์ž์ฒด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.) ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด #RasticKillsRansomware

์ด๊ฒƒ์ด ๋‹น์‹ ์ด ์›ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ rest-server ๋ฅผ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฐฑ์—…์˜ ์‚ญ์ œ ๋ฐ ์ˆ˜์ •์„ ๋ฐฉ์ง€ํ•˜๋Š” ์ถ”๊ฐ€ ์ „์šฉ ๋ชจ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‹น์‹ ์ด ์›ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ rest-server๋ฅผ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฐฑ์—…์˜ ์‚ญ์ œ ๋ฐ ์ˆ˜์ •์„ ๋ฐฉ์ง€ํ•˜๋Š” ์ถ”๊ฐ€ ์ „์šฉ ๋ชจ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๊ฒŒ ์žˆ๋Š”์ง€๋„ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. NS:

์—ฌ๊ธฐ์— ๋ฒ„๋ฆฌ๊ณ  ์‹ถ์€ ๋‘ ๊ฐ€์ง€ ๊ตฌ์กฐ์  ์š”์†Œ(๋ฐ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ๊ณต๊ฒฉ์ž ๋ชจ๋ธ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ restic์€ (๋Œ€๋ถ€๋ถ„) "๋ฉ์ฒญํ•œ" ์ €์žฅ์†Œ(local, s3, b2, gcs, azure, REST ์„œ๋ฒ„ --append-only ์ œ์™ธ)์™€ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๋‚˜์—ด, ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐฑ์—…์— ํ•„์š”ํ•˜๋ฏ€๋กœ ๋ฐฑ์—”๋“œ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ž๊ฒฉ ์ฆ๋ช…์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, restic์€ ๊ฑฐ์˜ ๋ชจ๋“  ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ œํ•œ ์‚ฌํ•ญ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹จ์ ์€ ๊ณต๊ฒฉ์ž๊ฐ€ ์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด ๋ฐฑ์—”๋“œ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ ์ž๊ฒฉ ์ฆ๋ช…๊ณผ ๋‚˜๋จธ์ง€ ์•”ํ˜ธ๋ฅผ ์‰ฝ๊ฒŒ ์ถ”์ถœํ•˜์—ฌ ๋ชจ๋“  ๊ฐ€๋Šฅ์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ ํ•ด๋…, ๋ฐ์ดํ„ฐ ์ˆ˜์ •, ์ „์ฒด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์‚ญ์ œ.

๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ๊ณต๊ฒฉ์ž์˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ์ €์žฅ์†Œ์—์„œ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋…ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ, ํŠนํžˆ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋Š” ์—ฌ์ „ํžˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "๋น„๋Œ€์นญ ์•”ํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ"์ด โ€‹โ€‹์ „๋ถ€๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์•„์ด๋””์–ด๋Š” "๋ฉ์ฒญํ•œ" ์ €์žฅ์†Œ์— ์ง์ ‘ ์•ก์„ธ์Šคํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž ์ง€์ • ์„œ๋ฒ„ ๊ตฌํ˜„์„ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ์•„์ด๋””์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ๋†€์•˜๊ณ  REST ์„œ๋ฒ„์— ๋Œ€ํ•œ --append-only ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋กœ์ปฌ ํ•˜๋“œ ๋””์Šคํฌ์˜ "๋ฉ์ฒญํ•œ" ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ "์–ด๋Œ‘ํ„ฐ"๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. REST ์„œ๋ฒ„๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์•„์ด๋””์–ด๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ์Œ์˜ ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ(์˜ˆ: stdin/stdout)๋ฅผ ํ†ตํ•ด ๋งํ•˜๋Š” ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ sftp ๋ฐฑ์—”๋“œ์—์„œ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์›๊ฒฉ ์‹œ์Šคํ…œ์—์„œ SSH๋ฅผ ํ†ตํ•ด ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ด๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์„œ๋ฒ„ ๊ตฌํ˜„์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์œ„์น˜(๋กœ์ปฌ, s3, b2 ๋“ฑ)์™€ ์ ์šฉ๋˜๋Š” ์ œํ•œ ์‚ฌํ•ญ(์˜ˆ: "์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ๋งŒ ์ถ”๊ฐ€ ๋˜๋Š” ์ƒˆ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€"๋งŒ ์ถ”๊ฐ€)์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ž ๊ธˆ ํŒŒ์ผ ์™ธ์—๋Š” ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • ์‚ฌ์šฉ์ž ๊ณ„์ • ๋˜๋Š” SSH ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SSH๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธํ•  ๋•Œ ForceCommand ๋ฅผ ํ†ตํ•ด ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"๋ฉ์ฒญํ•˜์ง€ ์•Š์€" ์ €์žฅ์†Œ๋งŒ ์žˆ์œผ๋ฉด ๊ณต๊ฒฉ์ž๊ฐ€ ์ €์žฅ์†Œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€ ์•Š์ง€๋งŒ(์ ์–ด๋„ ์ €์žฅ์†Œ ํ˜•์‹์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋Š” ์•„๋‹˜) ์ €์žฅ์†Œ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฒฐ๋ก ์ ์œผ๋กœ ๋ฐฑ์—…์„ ์œ„ํ•ด restic์„ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์ธ์ˆ˜ํ•˜๋Š” ๊ณต๊ฒฉ์ž๋กœ๋ถ€ํ„ฐ ๊ฐ€์žฅ ์ž˜ ๋ฐฉ์–ดํ•˜๋ ค๋ฉด ๋‘ ๊ฐ€์ง€(๋น„๋ค ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”)๋ฅผ ๋ชจ๋‘ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ธฐ์ ์ธ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค :)

์ฐพ๊ธฐ ์‰ฝ๋„๋ก ์ด ํ…์ŠคํŠธ๋ฅผ ์ด ํ˜ธ์˜ ์ฒซ ๋ฒˆ์งธ ๋Œ“๊ธ€์— ๋ณต์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์ด์— ๋Œ€ํ•ด ๋” ์ƒ๊ฐํ•ด ๋ณด๋ฉด ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๊ฐ€ ์ธ์ˆ˜๋ฅผ ๋ฐฉ์–ดํ•˜๋Š” ๋ฐ ๊ทธ๋‹ค์ง€ ์œ ์šฉํ•˜์ง€ ์•Š๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์ธ ๋ฐฑ์—…(#533)์— ๋” ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ˜„์žฌ REST ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ "๋…์ "(์—์„œ์™€ ๊ฐ™์ด, ๋ณด ์ „์šฉ) ํ”„๋กœํ† ์ฝœ์ด์žˆ๋‹ค ๊ทธ๋ฆฌ๊ณ  ๊ณ ๊ฐ์„์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ œํ•œ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ : ๋‹ค๋ฝ๋ฐฉ / ๋ณด๊ทธ ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๊ฐ”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ˆ, ์ด๊ฒƒ์€ ForceCommand ๋ฐ "borg serve" ์ œํ•œ ํ”Œ๋ž˜๊ทธ์— ์˜์กด ํ•ฉ๋‹ˆ๋‹ค. borg ๋ฌธ์„œ์—๋Š” ์ด์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€

๋ฌผ๋ก  ์†์ƒ๋œ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐฑ์—…์„ ๋ณดํ˜ธํ•˜๋Š” ๊ฐ€์žฅ ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ฐฉ๋ฒ•์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ๋ฐฑ์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ์„œ๋ฒ„๊ฐ€ ๋ฐฑ์—…์—์„œ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐค์— ๋‹น์‹ ์˜ ์ปดํ“จํ„ฐ์—์„œ ๋ณธ์งˆ์„ ๋นจ์•„๋“ค์ž…๋‹ˆ๋‹ค", ๊ทธ ์œ ๋ช…ํ•œ ๋ฌธ๊ตฌ๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด). borg์—์„œ๋„ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž˜ ๋ฌธ์„œํ™”๋˜๊ฑฐ๋‚˜ ์šฐ์•„ํ•œ ๋ฐฉ๋ฒ•์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. FAQ ๋Š” ์ฃผ์ œ์— ๋Œ€ํ•œ ํ† ๋ก ์œผ๋กœ https://github.com/borgbackup/borg/issues/900 ์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ด๊ฒƒ์€ #299์—์„œ ์ถ”์ ๋˜๋ฉฐ ์•„์ง ์—ฌ๊ธฐ์— ์–ธ๊ธ‰๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

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

  1. ๋ฐฑ์—… ์„œ๋ฒ„๋Š” ๋ชจ๋“  ๋จธ์‹ ์— ๋Œ€ํ•œ ๋ฃจํŠธ ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐฑ์—…์„ ์—‰๋ง์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ๋จธ์‹ ์˜ ์†์ƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์‹ค์ œ๋กœ ์ด ๋ฌธ์ œ๊ฐ€ "ํด๋ผ์ด์–ธํŠธ ์ธ์ˆ˜๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค"๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค๋Š” ๊ฒƒ์ด ์ด์ƒํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ์™€ ์†”๋ฃจ์…˜์„ ํ˜ผ๋™ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. :)

์•ˆ๋…•ํ•˜์„ธ์š”,

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

์ฃผ์ œ์— ๋Œ€ํ•œ ๋‚˜์˜ ์ดํ•ด๋Š” ํ˜„์žฌ ๋ชจ๋“  blob์ด ๋™์ผํ•œ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋˜๊ณ  ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
OpenPGP๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋งŒ๋“ค์–ด์ง„ ๊ฐ ์Šค๋ƒ…์ƒท์€ ๊ณต๊ฐœ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๋Œ€์นญ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ €์žฅ์†Œ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ์ค‘๋ณต ์ œ๊ฑฐ ๋Œ€์ƒ๊ณผ ๋ฐฑ์—… ๋Œ€์ƒ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ๋จผ์ € ์ •๋ณด๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๊ฐœ์ธ ํ‚ค๋„ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งž๋‚˜์š”?
๊ทธ๋ ‡๋‹ค๋ฉด ์ง€์‹์ด ์ „ํ˜€ ์—†๋Š” ์ฆ๊ฑฐ๊ฐ€ ๊ทธ๋Ÿฌํ•œ ๋งฅ๋ฝ์—์„œ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@dolanor ์ด ๋ฌธ์ œ์— ์ƒˆ๋กœ์šด ์‚ฌ์šฉ ์‚ฌ๋ก€๋‚˜ ์งˆ๋ฌธ์„ ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์„ธ์š”. ์งˆ๋ฌธ์€ ํฌ๋Ÿผ ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋˜ํ•œ ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ์ด๋ฅด๋‹ค.

์ฒซ ๋ฒˆ์งธ ๊ฒŒ์‹œ๋ฌผ์˜ ์š”์•ฝ์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ rclone ๋ฐฑ์—”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์ด๋Š” ์œ„์—์„œ ์„ค๋ช…ํ•œ "์–ด๋Œ‘ํ„ฐ"๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ SSH๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ ์€ ๊ณต๊ฒฉ์ž๊ฐ€ ์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•˜๋ฉด ๋ฐฑ์—”๋“œ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ ์ž๊ฒฉ ์ฆ๋ช…๊ณผ ๋‚˜๋จธ์ง€ ์•”ํ˜ธ๋ฅผ ์‰ฝ๊ฒŒ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์˜คํƒ€์ด๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์•”ํ˜ธํ™”๋œ ํ‚ค ํŒŒ์ผ ์ž๋ฃŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์•”ํ˜ธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์•…์€ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ๋งˆ์Šคํ„ฐ ์•”ํ˜ธํ™” ๋ฐ ์ธ์ฆ ํ‚ค๋ฅผ ํ•ด๋…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” "์‚ฌ์šฉ์ž ์•”ํ˜ธ"๋ฅผ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž…ํ•˜๊ฑฐ๋‚˜ ์ถ”์ธกํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๋งž๋‹ค๋ฉด ์š”์•ฝ์„ ๋‹ค์‹œ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ช…ํ™•ํžˆ ํ•  ๊ฒƒ์„ ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์–ธ๊ธ‰ํ•˜๋ฉด โ€‹โ€‹ํ™•์‹คํžˆ ๋‚˜๋น  ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. :)

์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์•”ํ˜ธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์•…์€ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ๋งˆ์Šคํ„ฐ ์•”ํ˜ธํ™” ๋ฐ ์ธ์ฆ ํ‚ค๋ฅผ ํ•ด๋…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” "์‚ฌ์šฉ์ž ์•”ํ˜ธ"๋ฅผ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž…ํ•˜๊ฑฐ๋‚˜ ์ถ”์ธกํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

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

"์‚ฌ์šฉ์ž ์•”ํ˜ธ"๋Š” ์„œ๋ฒ„์˜ ์–ด๋”˜๊ฐ€์— ์ €์žฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"์„œ๋ฒ„"๋ž€ "๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰ ์ค‘์ธ ์‹œ์Šคํ…œ" ๋˜๋Š” "๋ฐฑ์—…์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ /์ €์žฅํ•˜๋Š” ์‹œ์Šคํ…œ"์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

๋‹ค์†Œ ๋ชจํ˜ธํ•˜๊ณ  ๋‚ด ์šฐ๋ ค์˜ ์›์ธ: ๋ฐฑ์—… ํด๋ผ์ด์–ธํŠธ (์šฐ๋ฆฌ๊ฐ€ ๋ฐฑ์—… ์ค‘์ธ ์‹œ์Šคํ…œ ์ค‘ ์ผ๋ฐ˜ ์‹คํ–‰ ์ค‘์ž„)๊ฐ€ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ๋œ ์•”ํ˜ธ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ๊ฐœ์˜์น˜ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ์ „์ฒด ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์†์ƒ๋˜๋ฉด ๋ฐ์ดํ„ฐ๋Š” ์–ด์จŒ๋“  ํƒ€ํ˜‘. ํ•˜์ง€๋งŒ ๋ฐฑ์—… ์„œ๋ฒ„ ๊ฐ€ ์ผ๋ฐ˜ ํ…์ŠคํŠธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

"์„œ๋ฒ„"๋ž€ "๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰ ์ค‘์ธ ์‹œ์Šคํ…œ" ๋˜๋Š” "๋ฐฑ์—…์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ /์ €์žฅํ•˜๋Š” ์‹œ์Šคํ…œ"์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

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

๋‚˜๋Š” ๋‹น์‹ ์˜ ์š”์ ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๋‹น์‹  ๋ง์ด ๋งž์•„์š”, ๊ทธ๊ฒƒ์€ ๋ชจํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ Restic์˜ ๋ชจ๋ธ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์—์„œ ์–ป์€ ๋‚˜์˜ ์ดํ•ด๋Š” ๋‹น์‹ ์˜ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ํ™•์‹ ํ•˜์ง€๋งŒ ๋‹น์‹ ์ด ์›ํ•˜๋Š” ํ™•์‹คํ•œ ํ™•์ธ์„ ๋“œ๋ฆด ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์š”์•ฝ์—๋Š” REST ์„œ๋ฒ„์— ๋Œ€ํ•œ --append-only ์˜ต์…˜์ด ์–ธ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ์ด ์œ ์ผํ•˜๊ฒŒ ๊ณต์‹์ ์œผ๋กœ ๊ถŒ์žฅ๋˜๋Š” ์ถ”๊ฐ€ ์ „์šฉ ๋ฐฑ์—… ๋ฐฉ๋ฒ•์œผ๋กœ ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋„๋ก ์ผ๋ฐ˜ ์ž‘์—…์„ ์œ„ํ•ด ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜๋Š” ๋‚˜๋จธ์ง€ ํŒŒ์ผ์„ ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฏฟ์Šต๋‹ˆ๋‹ค restic backup ์ผํ•˜๋Š” ๊ฒƒ์ด ๊ดœ์ฐฎ ๊ฒฝ์šฐ data , index , keys ๋ฐ snapshots ํ—ˆ์šฉ ํŒŒ์ผ ์ƒ์„ฑํ•˜์ง€๋งŒ ์ˆ˜์ • ๋˜๋Š” ์‚ญ์ œ ( config ๋„ ๋ณดํ˜ธ๋จ). ๊ทธ๋Ÿฌ๋‚˜ locks ์ €์žฅ์†Œ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์ž ๊ธฐ์ง€ ์•Š๋„๋ก ์‚ญ์ œ๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ผ๋ถ€ ์ถ”๊ฐ€ ์ „์šฉ ๊ตฌํ˜„(ext4 ๋ฐ xfs ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์†์„ฑ๊ณผ ๊ฐ™์€)์€ ์žฌ๊ท€์ ์ด์ง€ ์•Š์œผ๋ฏ€๋กœ data ์˜ 256์ž ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋จผ์ € ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•œ ๋‹ค์Œ ์†์„ฑ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์— ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

S3์™€ ๊ฐ™์€ ์ผ๋ถ€ ๋ฐฑ์—”๋“œ๋Š” ์ถ”๊ฐ€ ์ „์šฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ ๋™์ผํ•œ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์•ก์„ธ์Šค ์ œ์–ด ๋ชจ๋ธ์„ ์ฃผ์˜ ๊นŠ๊ฒŒ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด B2์—๋Š” ๊ฐ์ฒด ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ์ˆ˜๋ช… ์ฃผ๊ธฐ ๊ทœ์น™์ด ์žˆ์ง€๋งŒ B2์— ๋ฐฑ์—…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ API ํ‚ค๋Š” ์ˆ˜๋ช… ์ฃผ๊ธฐ ๊ทœ์น™์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค(B2์—๋Š” ์•„์ง ๋งŽ์€ ๊ถŒํ•œ ์‹œ์Šคํ…œ์ด ์—†์Šต๋‹ˆ๋‹ค).

์ œ์ณ๋‘๊ณ : ๋‚ด๊ฐ€ ๋†“์นœ ๊ฒƒ์ด ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์†์ƒ์‹œํ‚จ ๊ณต๊ฒฉ์ž๋กœ๋ถ€ํ„ฐ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํ˜„์žฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด์ „ ๋ฒ„์ „๋ณด๋‹ค ๋” ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(๊ฐ€๋” ์ค‘์š”ํ•œ ๊ฒƒ์ด ์‹ค์ˆ˜๋กœ ๋ฐฑ์—…, ์‚ญ์ œ๋˜์ง€๋งŒ ์ œ๊ฑฐ๋˜์ง€๋Š” ์•Š์ง€๋งŒ).

@willsALMANJ ์ข‹์€ ๊ด€์ฐฐ์ž…๋‹ˆ๋‹ค. S3์˜ ๊ฒฝ์šฐ ์ฃผ์–ด์ง„ ์Šค๋ƒ…์ƒท์„ ๋ณต์›ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ Blob์˜ ์ผ๊ด€๋œ ๋ณด๊ธฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ์ด์˜์ œ๊ธฐ ๋ฒ„์ „์„ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

Re: ๋งˆ์ง€๋ง‰ ๋‹จ๋ฝ:

  • ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”์˜ ์ฃผ์š” ์ด์ ์€ ์–ธ๊ธ‰ํ•œ "์ด๋ ฅ ๋‚ด์šฉ ์•”ํ˜ธ ํ•ด๋…" ์‹œ๋‚˜๋ฆฌ์˜ค ์™ธ์— ๊ฐœ๋ณ„ ํ‚ค๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•  ํ•„์š” ์—†์ด ๋™์ผํ•œ ๋ฐฑ์—… ์ €์žฅ์†Œ์— ์—ฌ๋Ÿฌ ๋…๋ฆฝ ๋จธ์‹ ์˜ ๋ฐฑ์—…์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋งค๋ฒˆ ๋ฐฑ์—… ํ‚ค๋ฅผ ์–ด๋”˜๊ฐ€์— ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค). ์ƒˆ ํด๋ผ์ด์–ธํŠธ ์‹œ์Šคํ…œ์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค). ๊ณต์œ  ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด client1์ด client2์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์„ฑ๊ฐ€์‹  ์œ„ํ˜‘ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ด์ƒ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ fd0 ํŒŒ์ƒ๋œ ๊ณต์œ  ๋น„๋ฐ€๋กœ HMAC ์ฃผ์†Œ ์ง€์ •์„ ์‚ฌ์šฉํ•˜๋Š” ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ์ฒด๊ณ„๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ ๋ˆ„์ถœ์ด ์—†๋Š” ์„œ๋ฒ„ ์ธก ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ์ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

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

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::kvasir"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::backup/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::backup/locks/*"
    }
  ]
}

๊ทธ๋Ÿฐ ๋‹ค์Œ prune/forget ๋ช…๋ น์€ ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์น˜์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  restic ์ €์žฅ์†Œ์— ๋‘ ๊ฐœ์˜ ํ‚ค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ์„œ๋ฒ„์šฉ์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์น˜์šฉ์ด๋ฏ€๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์น˜๊ฐ€ ๊ณต๊ฒฉ์ž๋ฅผ ์ž ๊ธ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ๊ณต๊ฒฉ์ž๋Š” ํ‚ค/*์—์„œ ์‚ญ์ œํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ž ๊ธ€ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค).

ํŽธ์ง‘: ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ์ด๋ฏธ ๋…ผ์˜๋˜์—ˆ์Œ์„ ๊ฐ„๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€๋กœ์ฑ„๊ณ  ์‹ถ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
PutObject๋Š” ์‹ค์ œ๋กœ ๊ฐœ์ฒด๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฐฑ์—…์„ ๋ณดํ˜ธํ•˜๋Š” ์†”๋ฃจ์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค .

@freswa ์ €๋Š” S3 ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ด๊ฒƒ์ด ์ •ํ™•ํ•˜๋‹ค๊ณ  ํ™•์‹ ํ•  ์ˆ˜ ์—†์ง€๋งŒ ์ด ํ† ๋ก ์—์„œ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์š”์ ์€ PutObject ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ญ์ œํ•˜๋ฉด์„œ. ์œ„์˜ ๋‚ด ๊ฒŒ์‹œ๋ฌผ์—์„œ ๊ฐœ์ฒด ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค(๋ฐฑ์—… ์‹œ์Šคํ…œ์— ๋ฒ„์ „ ์‚ญ์ œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š์Œ).

@andrewchambers ์ €๋Š” ๋‹ค๋ฅธ ๊ฒƒ๋“ค๋กœ ์ธํ•ด ์•ฝ๊ฐ„ ํœฉ์“ธ๋ ธ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ์ด๊ฒƒ์„ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜๋ฉด ์—ฌ๋Ÿฌ๋ถ„์˜ ์•„์ด๋””์–ด์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ด…์‹œ๋‹ค! ์˜ˆ, ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค ;)

๋”ฐ๋ผ์„œ ์ด ๋ฌธ์ œ๋Š” ๋ฐฑ์—”๋“œ ์Šคํ† ๋ฆฌ์ง€์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ตฌ์„ฑ์ด ์•„๋‹ˆ๋ผ (๊ฒฐ๊ตญ) ๋น„๋Œ€์นญ ๋ฐฑ์—…์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”! :)

@fd0 ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. https://packnback.github.io/blog/dedup_and_encryption/

@andrewchambers : ์•„์ง ์“ฐ๊ธฐ ์ „์šฉ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ(์‚ฌ์ดํŠธ์—์„œ ์–ธ๊ธ‰) https://github.com/ncw/rclone/issues/2499์ž…๋‹ˆ๋‹ค.

@andrewchambers ์ ์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ๊ตฌํ˜„์ด ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€ ๋งค์šฐ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์—์„œ ํฅ๋ฏธ๋กœ์šด ๋ถ€๋ถ„์ด ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. :)

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

๋”ฐ๋ผ์„œ ๋‘ ๊ฐ€์ง€ git ์ €์žฅ์†Œ ์•”ํ˜ธํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํฅ๋ฏธ๋กœ์šด ๋ณ‘๋ ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ์ชฝ์—๋Š” git-crypt๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค . ์ด๊ฒƒ์€ git smudge/clean ํ•„ํ„ฐ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ blob ์ €์žฅ์†Œ์™€ ์ฒดํฌ์•„์›ƒ๋œ ๋ณต์‚ฌ๋ณธ ์‚ฌ์ด์˜ ํŒŒ์ผ์„ (๊ฐ๊ฐ) ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ž˜ ์ž‘๋™ํ•˜๊ณ  ์ƒ๋‹นํžˆ ์ตœ์ ์ด์ง€๋งŒ ํ•œ ๊ฐ€์ง€ ๋ˆˆ์— ๋„๋Š” ๊ตฌ๋ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. git ์ปค๋ฐ‹ ์ž์ฒด๋Š” ์•”ํ˜ธํ™”๋˜์ง€ ์•Š๊ณ  Blob์˜ ๋‚ด์šฉ๋งŒ ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํŒŒ์ผ ์ด๋ฆ„, ์ปค๋ฐ‹ ๋กœ๊ทธ, ์ž‘์„ฑ์ž, ๋‚ ์งœ ๋ฐ ๊ธฐํƒ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์ผ๋ฐ˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋งŽ์€ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ผ๋ถ€ ๋น„ํŠธ(์ „๋ถ€๋Š” ์•„๋‹˜)๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋ ค๋Š” ๊ณต์šฉ ์ €์žฅ์†Œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ชฝ์—๋Š” git-remote-gcrypt๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค . git ์›๊ฒฉ ๋„์šฐ๋ฏธ ํ”„๋กœํ† ์ฝœ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์—์„œ ์ „์†ก๋˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŠน์ˆ˜ ์›๊ฒฉ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ธํ•ด ์ „์ฒด ์ €์žฅ์†Œ๊ฐ€ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค์‹œ ์•”ํ˜ธํ™”๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

์ž, ์ด๊ฒƒ๋“ค์€ git ํŠน์ • ๊ตฌํ˜„ ๋ฌธ์ œ์ด์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์— ์ž˜ ๋งคํ•‘๋˜์–ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ๋‚ด ๊นŠ์ด๋ฅผ ์™„์ „ํžˆ ๋ฒ—์–ด ๋‚ฌ๊ณ ์ด ํ‰ํ–‰์„ ์€ ๊ด€๋ จ์ด ์—†์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ๊ด€์‹ฌ์ด์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค ...

์ œ์ณ๋‘๊ณ , ํ˜„์žฌ (์•„๋งˆ๋„) ๋‹ค์†Œ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘๊ฐ„ ์ง€์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ‚ค๊ฐ€ ์ €์žฅ์†Œ ์™ธ๋ถ€์— ์ €์žฅ๋˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ๋˜๋Š” ๊ณต๊ฒฉ ๋ฒกํ„ฐ ์ค‘ ํ•˜๋‚˜๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ํ‚ค ์•”ํ˜ธ๋ฅผ ์†์— ๋„ฃ์€ ๋‹ค์Œ(ํ‚ค๊ฐ€ ์ €์žฅ์†Œ์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์—) ํ‚ค๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๋…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ‚ค ํŒŒ์ผ์ด ์ €์žฅ๋˜๋Š” ๋ณ„๋„์˜ ํ‚ค ๋””๋ ‰ํ† ๋ฆฌ ์ง€์ •์„ ํ—ˆ์šฉํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ์ด ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋ฐฑ์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฐ ์‹œ์Šคํ…œ์— ๋กœ์ปฌ๋กœ ์ €์žฅ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ž์ฒด์ ์œผ๋กœ ๋‹ค๋ฅธ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž ๋˜๋Š” ์ฝœ๋“œ ์˜คํ”„๋ผ์ธ ์ €์žฅ์„ ์œ„ํ•œ QR ์ฝ”๋“œ(~500๋ฐ”์ดํŠธ๋Š” QR ์ธ์ฝ”๋”ฉํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ์ž‘์Œ)์— ๋ฐฑ์—…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•ˆ์ „ ๊ธˆ๊ณ ์—์„œ.

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

์ด๊ฒƒ์€ _Restic์—์„œ ์ด๋ฏธ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค_ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋กœ์ปฌ ๋ณต์‚ฌ๋ณธ์ด ์œ ์ง€๋˜๋Š” ๊ฒฝ์šฐ -- rclone์„ ์‹คํ–‰ํ•  ๋•Œ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์›๊ฒฉ์œผ๋กœ ๋™๊ธฐํ™”๋˜๋Š” ํ‚ค ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ์™ธํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋กœ์ปฌ ๋ณต์‚ฌ๋ณธ์ด ์—†๊ณ  restic์ด ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์›๊ฒฉ ์žฅ์น˜์™€ ์ง์ ‘ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ˆ˜ํ–‰ํ•  ์ˆ˜ _์—†์Šต๋‹ˆ๋‹ค.

๋‹จ์ผ ์ฑ…์ž„ ์›์น™์„ ์ ์šฉํ•˜๊ณ  2๊ฐ€์ง€ ์ž‘์—…์œผ๋กœ ๋ถ„๋ฅ˜ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  1. ์•”ํ˜ธ ํ•ด๋…์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜์‹ญ์‹œ์˜ค.
  2. ๋ฌด๋‹จ ์‚ญ์ œ ์ž‘์—…์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์•ˆ์ „์˜ ๋‘ ๊ฐ€์ง€ ์ธก๋ฉด์ž…๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ทธ๋“ค์€ ์„œ๋กœ ์˜์กดํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

(1)์˜ ๊ฒฝ์šฐ "๋‹จ์ˆœํžˆ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™” ์ง€์›์„ ์ถ”๊ฐ€"ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (2)์˜ ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์ด ๋งŽ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ถ”๊ฐ€ ์ „์šฉ S3 ์„ค์ •).

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰