π― λͺ©ν (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κ° μλ μ κ±°λ¨
λ°λ³΅ μ€νν΄λ μμ ν¨
π― λͺ©ν (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κ° μλ μ κ±°λ¨
λ°λ³΅ μ€νν΄λ μμ ν¨