Skip to content

[Feat] Auto Sync Local IP to RDS for Backup/RestoreΒ #1

@bamjun

Description

@bamjun

🎯 λͺ©ν‘œ (Goal)
둜컬 PCμ—μ„œ PostgreSQL λ°±μ—…/볡원 μž‘μ—…μ„ AWS RDS에 μˆ˜ν–‰ν•  λ•Œ, λ‹€μŒ 과정을 μžλ™ν™”ν•©λ‹ˆλ‹€:

ν˜„μž¬ 둜컬 곡인 IP 감지

ν•΄λ‹Ή IPλ₯Ό RDS Security Group μΈλ°”μš΄λ“œ 룰에 μžλ™ 등둝

λ°±μ—…/볡원 μ‹€ν–‰

(μ˜΅μ…˜) μž‘μ—… μ™„λ£Œ ν›„ IP μžλ™ 제거

맀번 AWS Consoleμ—μ„œ μˆ˜λ™μœΌλ‘œ λ³΄μ•ˆ 그룹을 μˆ˜μ •ν•˜μ§€ μ•Šλ„λ‘ μžλ™ν™”κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

🧾 배경 (Background)
ν˜„μž¬ RDS ν™˜κ²½μ—μ„œ 둜컬 PCκ°€ μ ‘κ·Όν•˜λ €λ©΄:

곡인 IPκ°€ 자주 변경됨

AWS Console β†’ Security Group β†’ μΈλ°”μš΄λ“œ λ£° μΆ”κ°€λ₯Ό 맀번 μˆ˜λ™μœΌλ‘œ μˆ˜ν–‰

번거둭고 μ‹€μˆ˜ μœ„ν—˜μ΄ 큼

β†’ λ°±μ—…/볡원 슀크립트 μ‹€ν–‰λ§ŒμœΌλ‘œ 이 과정이 μžλ™ν™”λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

βœ… μ›ν•˜λŠ” λ™μž‘ (Expected Behavior)
./pg_backup.sh

or

./pg_restore.sh
μ‹€ν–‰ μ‹œ λ‹€μŒ λ™μž‘μ΄ μˆœμ„œλŒ€λ‘œ μˆ˜ν–‰λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€:

ν˜„μž¬ 곡인 IP 감지 (예: ifconfig.me λ“±)

AWS API (λ˜λŠ” AWS CLI) 호좜둜

RDS Security Group에 <my_ip>/32 μΈλ°”μš΄λ“œ λ£° μΆ”κ°€ (TCP 5432)

pg_dump λ˜λŠ” pg_restore μ‹€ν–‰

(μ˜΅μ…˜) μž‘μ—… μ’…λ£Œ ν›„ ν•΄λ‹Ή IP 제거

πŸ› οΈ κ΅¬ν˜„ λ°©ν–₯ (Implementation Ideas)
도ꡬ: AWS CLI λ˜λŠ” boto3

Security Group IDλŠ” env/config둜 관리

흐름 μ˜ˆμ‹œ:

get_my_ip()
authorize_security_group_ingress()
run_pg_dump or pg_restore
revoke_security_group_ingress() # optional
μ•ˆμ „μž₯치:

IPκ°€ 이미 λ“±λ‘λœ κ²½μš°μ—λ„ 문제 없이 μ‹€ν–‰

μž‘μ—… 쀑 μ‹€νŒ¨ν•΄λ„ IPκ°€ 영ꡬ적으둜 남지 μ•Šλ„λ‘ 처리 κ°€λŠ₯

πŸ” λ³΄μ•ˆ 고렀사항 (Security)
ν—ˆμš© λ²”μœ„:

TCP 5432

/32 단일 IP만

0.0.0.0/0 같은 전체 μ˜€ν”ˆ κΈˆμ§€

ν•„μš”μ‹œ β€œμžλ™ 제거 여뢀” μ˜΅μ…˜ 제곡

βœ… Acceptance Criteria
λ°±μ—…/볡원 슀크립트 μ‹€ν–‰ μ‹œ AWS μ½˜μ†” 없이 λ™μž‘

ν˜„μž¬ IPκ°€ μžλ™μœΌλ‘œ RDS SG에 등둝됨

λ°±μ—…/볡원이 μ •μƒμ μœΌλ‘œ μˆ˜ν–‰λ¨

(μ˜΅μ…˜) μž‘μ—… μ™„λ£Œ ν›„ IPκ°€ μžλ™ 제거됨

반볡 싀행해도 μ•ˆμ „ν•¨

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions