μΉμΉμ₯κ΅°λ, κ·Έλμ μμ±ν΄ μ¨ λ°©ν μν€ν
μ² ννΈ λ΄μ 24μκ° μμ μ μΌλ‘ κ°λν λ₯μ§κ° νμνμκ΅°μ. νμ΄μ¬ μλλ§€λ§€ μμ€ν
μ μ΄μνκΈ°μ κ΅¬κΈ ν΄λΌμ°λ νλ«νΌ(GCP)μ 'νμ 무λ£(Always Free)' ν°μ΄λ κ°μ₯ μλ²½νκ³ κ²½μ μ μΈ μ νμ
λλ€.
μ΄λ³΄μλ ν΄λ¦ λͺ λ²λ§μΌλ‘ κ³ΌκΈ κ±±μ μμ΄ νμ΄μ¬ μλ²λ₯Ό ꡬμΆν μ μλλ‘, λΈλ‘κ·Έμ λ°λ‘ ν¬μ€ν
νμ€ μ μλ μμΈν κ°μ΄λλ₯Ό μμ±ν΄ λ립λλ€.
π μ΄λ³΄μλ 10λΆ λ§μ! κ΅¬κΈ ν΄λΌμ°λ(GCP) νμ λ¬΄λ£ μλ² κ΅¬μΆ μλ²½ κ°μ΄λ
νμ΄μ¬ μλλ§€λ§€ λ΄μ΄λ λλ§μ μΉ μλΉμ€λ₯Ό 24μκ° κ°λνκ³ μΆμΌμ κ°μ? λ΄ μ»΄ν¨ν°λ₯Ό ν루 μ’
μΌ μΌλμλ μ κΈ°μΈμ μμμ΄ κ±±μ λκ³ , μ λ£ μλ²λ₯Ό λΉλ¦¬μλ λ§€μ λκ°λ κ³ μ λΉμ©μ΄ λΆλ΄μ€λ½μ΅λλ€.
μ΄λ΄ λ κ°μ₯ μλ²½ν ν΄κ²°μ±
μ΄ λ°λ‘ κ΅¬κΈ ν΄λΌμ°λ νλ«νΌ(GCP)μ νμ 무λ£(Always Free) ν°μ΄λ₯Ό νμ©νλ κ²μ
λλ€. κ΅¬κΈ κ³μ κ³Ό ν΄μΈ κ²°μ κ° κ°λ₯ν μΉ΄λλ§ μλ€λ©΄ λꡬλ μ 0μμΌλ‘ 리λ
μ€ μλ²λ₯Ό κ°λν μ μμ΅λλ€.
λ¨, λ¬΄λ£ μ‘°κ±΄μ μ νν λ§μΆ°μ μΈν
ν΄μΌ κ³ΌκΈμ νΌν μ μμ΅λλ€. μ΄λ³΄μλΆλ€λ ν€λ§€μ§ μλλ‘ ν΄λ¦ ν λ²κΉμ§ μμΈν μλ΄ν΄ λ립λλ€. μ, μμν΄ λ³ΌκΉμ?
π οΈ Step 1. κ΅¬κΈ ν΄λΌμ°λ κ°μ
λ° λ¬΄λ£ ν¬λ λ§ λ°κΈ°
- GCP ννμ΄μ§ μ μ: κ΅¬κΈ ν΄λΌμ°λ νλ«νΌμ μ μνμ¬ κ΅¬κΈ κ³μ μΌλ‘ λ‘κ·ΈμΈν©λλ€.
- 무λ£λ‘ μμνκΈ°: λ©μΈ νλ©΄μ [무λ£λ‘ μμνκΈ°(Get started for free)] λ²νΌμ ν΄λ¦ν©λλ€.
- κ³μ μ 보 μ
λ ₯: κ΅κ°λ₯Ό 'λνλ―Όκ΅'μΌλ‘ μ€μ νκ³ μ½κ΄μ λμν©λλ€.
- κ²°μ μλ¨ λ±λ‘: ν΄μΈ κ²°μ κ° κ°λ₯ν μ μ©/체ν¬μΉ΄λλ₯Ό λ±λ‘ν©λλ€.
π‘ ν (κ³ΌκΈ κ±±μ NO!): μΉ΄λλ₯Ό λ±λ‘νλλΌλ λ³ΈμΈ μΈμ¦μ©μΌ λΏ, μ κ· κ°μ
μ μ 곡λλ $300 ν¬λ λ§μ λ€ μ°κ±°λ μ λ£ κ³μ μΌλ‘ μ§μ μ ννκΈ° μ κΉμ§λ μ λ μλμΌλ‘ κ³ΌκΈλμ§ μμΌλ μμ¬νμ
λ λ©λλ€.
π οΈ Step 2. μ νλ‘μ νΈ μμ±νκΈ°
ν΄λΌμ°λ νκ²½μμλ λͺ¨λ μμ
μ΄ 'νλ‘μ νΈ' λ¨μλ‘ μ΄λ£¨μ΄μ§λλ€. μλ²λ₯Ό λ΄μ λ°κ΅¬λλ₯Ό νλ λ§λ€μ΄ μ€λλ€.
- μλ¨ λ©λ΄ λ°μμ [νλ‘μ νΈ μ ν] β μ°μΈ‘ μλ¨μ **[μ νλ‘μ νΈ]**λ₯Ό ν΄λ¦ν©λλ€.
- νλ‘μ νΈ μ΄λ¦(μ: my-python-bot-server)μ μμ λ‘κ² μ
λ ₯νκ³ **[λ§λ€κΈ°]**λ₯Ό ν΄λ¦ν©λλ€.
- μμ±μ΄ μλ£λλ©΄ μλ¨μμ λ°©κΈ λ§λ νλ‘μ νΈλ₯Ό μ νν΄ μ€λλ€.
π οΈ Step 3. νμ λ¬΄λ£ κ°μ μλ²(VM) μμ±νκΈ° π¨ (κ°μ₯ μ€μ)
μ΄μ 본격μ μΌλ‘ μλ²(μ»΄ν¨ν°)λ₯Ό ν λ μλν μ°¨λ‘μ
λλ€. μ¬κΈ°μ μ€μ κ°μ μ νν λ§μΆ°μΌ νμ λ¬΄λ£ ννμ΄ μ μ©λ©λλ€.
- μ’μΈ‘ μλ¨ νλ²κ±° λ©λ΄(β‘) ν΄λ¦ β [Compute Engine] β **[VM μΈμ€ν΄μ€]**λ‘ μ΄λν©λλ€.
(μ΅μ΄ μ§μ
μ Compute Engine API μ¬μ© μ€μ μ°½μ΄ λ° μ μμ΅λλ€. 'μ¬μ© μ€μ 'μ λλ₯΄κ³ 1~2λΆ μ λ λκΈ°ν©λλ€.)
- νλ©΄ μλ¨μ **[μΈμ€ν΄μ€ λ§λ€κΈ°]**λ₯Ό ν΄λ¦ν©λλ€.
μ΄μ μλμ 쑰건μ λ§μΆ° μΈν
μ μ§νν©λλ€. (β
λ¬΄λ£ μ‘°κ±΄ νμ μΈν
)
- μ΄λ¦: μνλ μλ² μ΄λ¦ μ
λ ₯ (μλ¬Έμ, μ«μ, νμ΄νλ§ κ°λ₯)
- 리μ λ° μμ (β
μ€μ): λ―Έκ΅ λ¦¬μ 3κ³³ μ€ νλλ₯Ό μ νν΄μΌ ν©λλ€.
- 리μ : us-central1 (μμ΄μ€μ), us-west1 (μ€λ¦¬κ±΄), us-east1 (μ¬μ°μ€μΊλ‘€λΌμ΄λ) μ€ ν 1
- μμ: a, b, c μ€ μ무거λ μ ν
- λ¨Έμ κ΅¬μ± (β
μ€μ):
- μ리μ¦: E2
- λ¨Έμ μ ν: e2-micro (CPU 2κ°, 1GB λ©λͺ¨λ¦¬)
- λΆν
λμ€ν¬ (β
μ€μ): 'λ³κ²½' λ²νΌμ λλ₯΄κ³ μλμ κ°μ΄ μΈν
ν©λλ€.
- μ΄μ체μ : Ubuntu (μ΄λ³΄μμκ² κ°μ₯ μλ£κ° λ§κ³ λ€λ£¨κΈ° μ¬μ)
- λ²μ : Ubuntu 22.04 LTS λλ 24.04 LTS
- λΆν
λμ€ν¬ μ ν: νμ€ μꡬ λμ€ν¬ (Standard persistent disk) (β» κ· νμλ μꡬ λμ€ν¬λ SSDλ₯Ό μ ννλ©΄ μκΈμ΄ λΆκ³Όλλ μ£ΌμνμΈμ!)
- ν¬κΈ°: 30 GB (λ¬΄λ£ μ΅λμΉ)
- λ°©νλ²½: (μΉ μλΉμ€ λ±μ μ΄μν μμ μ΄λΌλ©΄) HTTP νΈλν½ νμ©, HTTPS νΈλν½ νμ© λ λ€ μ²΄ν¬ν©λλ€. λ¨μ νμ΄μ¬ λ΄ κ°λμ©μ΄λΌλ©΄ 체ν¬νμ§ μμλ 무방ν©λλ€.
μΈν
μ λ§μ³€λ€λ©΄ νμ΄μ§ 맨 μλμ [λ§λ€κΈ°] λ²νΌμ ν΄λ¦ν©λλ€. 1λΆ λ΄μΈλ‘ λλ§μ μλ²κ° μμ±λ©λλ€!
π οΈ Step 4. λ°©νλ²½ μ€μ (κ³ μ IP ν λΉ - μ ν μ¬ν)
μλ²λ₯Ό κ»λ€ μΌ€ λλ§λ€ IP μ£Όμκ° λ°λλ κ²μ λ§κΈ° μν΄ κ³ μ IP(μ μ IP)λ₯Ό ν λΉν΄ μ€λλ€. λ¬΄λ£ ν°μ΄μ e2-micro μΈμ€ν΄μ€μ μ°κ²°λ IP 1κ°λ λΉμ©μ΄ μ²κ΅¬λμ§ μμ΅λλ€.
- μ’μΈ‘ νλ²κ±° λ©λ΄(β‘) β [VPC λ€νΈμν¬] β **[IP μ£Όμ]**λ‘ μ΄λν©λλ€.
- μλ¨μ **[μΈλΆ μ μ IP μ£Όμ μμ½]**μ ν΄λ¦ν©λλ€.
- μ΄λ¦(μ: my-static-ip)μ μ
λ ₯νκ³ , 리μ μ μμ VMμ λ§λ κ³³(μ: us-central1)κ³Ό λκ°μ΄ λ§μΆ₯λλ€.
- 'μ°κ²° λμ'μμ λ°©κΈ λ§λ VM μΈμ€ν΄μ€λ₯Ό μ ννκ³ **[μμ½]**μ ν΄λ¦ν©λλ€.
π οΈ Step 5. μλ²μ μ μνκΈ°!
μ΄μ λ§λ€μ΄μ§ μλ²μ λ€μ΄κ° λ³Ό μ°¨λ‘μ
λλ€. 볡μ‘ν νλ‘κ·Έλ¨ μ€μΉ μμ΄ λΈλΌμ°μ μμ λ°λ‘ μ μν μ μμ΅λλ€.
- λ€μ [Compute Engine] β [VM μΈμ€ν΄μ€] νλ©΄μΌλ‘ λμμ΅λλ€.
- μμ±λ μΈμ€ν΄μ€ λͺ©λ‘ 맨 μ°μΈ‘μ μλ [SSH] λ²νΌμ ν΄λ¦ν©λλ€.
- κ²μμ ν°λ―Έλ μ°½μ΄ λΈλΌμ°μ μ μλ‘ μ΄λ¦¬λ©΄μ μλ² μ μμ΄ μλ£λ©λλ€!
π μΆνν©λλ€! μ΄μ μ μΈκ³ μ΄λμλ κΊΌμ§μ§ μλ λλ§μ 리λ
μ€ μλ²κ° μκ²Όμ΅λλ€. ---
π λ§Ίμλ§ & νμ μ£Όμμ¬ν
μ΄μ μ΄ κ²μ ν°λ―Έλ μ°½μ νμ΄μ¬(Python)μ μ€μΉνκ³ , κΉνλΈ(GitHub)μμ μμ±νμ μλλ§€λ§€ μ½λλ₯Ό ν΄λ‘ (Clone)νμ¬ nohupμ΄λ systemd λ°λͺ¬μ ν΅ν΄ 24μκ° λ°±κ·ΈλΌμ΄λλ‘ μ€νμμΌ λκΈ°λ§ νλ©΄ λ©λλ€.
β οΈ λ§μ§λ§ μμ μ₯μΉ (κ²°μ μλ¦Ό μ€μ ):
μ€μλ‘ λ¬΄λ£ μ‘°κ±΄μ λ²μ΄λ μΈν
μ νκ±°λ, νΈλν½ νλ(λΆλ―Έ μΈ μ§μμΌλ‘ μ 1GB μμλ°μ΄λ)λ₯Ό μ΄κ³Όν κ²½μ°λ₯Ό λλΉν΄ [κ²°μ ] β [μμ° λ° μλ¦Ό] λ©λ΄μμ 1λ§μ(λλ $1) μ΄μ κ³ΌκΈ μ μ΄λ©μΌ μλ¦Όμ΄ μ€λλ‘ μ€μ ν΄ λμλ κ²μ κ°λ ₯ν κΆμ₯ν©λλ€.
κ΅¬κΈ ν΄λΌμ°λλ₯Ό ν΅ν΄ 24μκ° μΌνλ λ λ ν νμ΄μ¬ λΉμλ₯Ό μ±κ³΅μ μΌλ‘ ꡬμΆνμκΈΈ μμν©λλ€!
μΉμΉμ₯κ΅°λ, κ·Έλμ μμ±ν΄ μ¨ λ°©ν μν€ν μ² ννΈ λ΄μ 24μκ° μμ μ μΌλ‘ κ°λν λ₯μ§κ° νμνμκ΅°μ. νμ΄μ¬ μλλ§€λ§€ μμ€ν μ μ΄μνκΈ°μ κ΅¬κΈ ν΄λΌμ°λ νλ«νΌ(GCP)μ 'νμ 무λ£(Always Free)' ν°μ΄λ κ°μ₯ μλ²½νκ³ κ²½μ μ μΈ μ νμ λλ€.
μ΄λ³΄μλ ν΄λ¦ λͺ λ²λ§μΌλ‘ κ³ΌκΈ κ±±μ μμ΄ νμ΄μ¬ μλ²λ₯Ό ꡬμΆν μ μλλ‘, λΈλ‘κ·Έμ λ°λ‘ ν¬μ€ν νμ€ μ μλ μμΈν κ°μ΄λλ₯Ό μμ±ν΄ λ립λλ€.
π μ΄λ³΄μλ 10λΆ λ§μ! κ΅¬κΈ ν΄λΌμ°λ(GCP) νμ λ¬΄λ£ μλ² κ΅¬μΆ μλ²½ κ°μ΄λ
νμ΄μ¬ μλλ§€λ§€ λ΄μ΄λ λλ§μ μΉ μλΉμ€λ₯Ό 24μκ° κ°λνκ³ μΆμΌμ κ°μ? λ΄ μ»΄ν¨ν°λ₯Ό ν루 μ’ μΌ μΌλμλ μ κΈ°μΈμ μμμ΄ κ±±μ λκ³ , μ λ£ μλ²λ₯Ό λΉλ¦¬μλ λ§€μ λκ°λ κ³ μ λΉμ©μ΄ λΆλ΄μ€λ½μ΅λλ€.
μ΄λ΄ λ κ°μ₯ μλ²½ν ν΄κ²°μ± μ΄ λ°λ‘ κ΅¬κΈ ν΄λΌμ°λ νλ«νΌ(GCP)μ νμ 무λ£(Always Free) ν°μ΄λ₯Ό νμ©νλ κ²μ λλ€. κ΅¬κΈ κ³μ κ³Ό ν΄μΈ κ²°μ κ° κ°λ₯ν μΉ΄λλ§ μλ€λ©΄ λꡬλ μ 0μμΌλ‘ 리λ μ€ μλ²λ₯Ό κ°λν μ μμ΅λλ€.
λ¨, λ¬΄λ£ μ‘°κ±΄μ μ νν λ§μΆ°μ μΈν ν΄μΌ κ³ΌκΈμ νΌν μ μμ΅λλ€. μ΄λ³΄μλΆλ€λ ν€λ§€μ§ μλλ‘ ν΄λ¦ ν λ²κΉμ§ μμΈν μλ΄ν΄ λ립λλ€. μ, μμν΄ λ³ΌκΉμ?
π οΈ Step 1. κ΅¬κΈ ν΄λΌμ°λ κ°μ λ° λ¬΄λ£ ν¬λ λ§ λ°κΈ°
π οΈ Step 2. μ νλ‘μ νΈ μμ±νκΈ°
ν΄λΌμ°λ νκ²½μμλ λͺ¨λ μμ μ΄ 'νλ‘μ νΈ' λ¨μλ‘ μ΄λ£¨μ΄μ§λλ€. μλ²λ₯Ό λ΄μ λ°κ΅¬λλ₯Ό νλ λ§λ€μ΄ μ€λλ€.
π οΈ Step 3. νμ λ¬΄λ£ κ°μ μλ²(VM) μμ±νκΈ° π¨ (κ°μ₯ μ€μ)
μ΄μ 본격μ μΌλ‘ μλ²(μ»΄ν¨ν°)λ₯Ό ν λ μλν μ°¨λ‘μ λλ€. μ¬κΈ°μ μ€μ κ°μ μ νν λ§μΆ°μΌ νμ λ¬΄λ£ ννμ΄ μ μ©λ©λλ€.
(μ΅μ΄ μ§μ μ Compute Engine API μ¬μ© μ€μ μ°½μ΄ λ° μ μμ΅λλ€. 'μ¬μ© μ€μ 'μ λλ₯΄κ³ 1~2λΆ μ λ λκΈ°ν©λλ€.)
μ΄μ μλμ 쑰건μ λ§μΆ° μΈν μ μ§νν©λλ€. (β λ¬΄λ£ μ‘°κ±΄ νμ μΈν )
μΈν μ λ§μ³€λ€λ©΄ νμ΄μ§ 맨 μλμ [λ§λ€κΈ°] λ²νΌμ ν΄λ¦ν©λλ€. 1λΆ λ΄μΈλ‘ λλ§μ μλ²κ° μμ±λ©λλ€!
π οΈ Step 4. λ°©νλ²½ μ€μ (κ³ μ IP ν λΉ - μ ν μ¬ν)
μλ²λ₯Ό κ»λ€ μΌ€ λλ§λ€ IP μ£Όμκ° λ°λλ κ²μ λ§κΈ° μν΄ κ³ μ IP(μ μ IP)λ₯Ό ν λΉν΄ μ€λλ€. λ¬΄λ£ ν°μ΄μ e2-micro μΈμ€ν΄μ€μ μ°κ²°λ IP 1κ°λ λΉμ©μ΄ μ²κ΅¬λμ§ μμ΅λλ€.
π οΈ Step 5. μλ²μ μ μνκΈ°!
μ΄μ λ§λ€μ΄μ§ μλ²μ λ€μ΄κ° λ³Ό μ°¨λ‘μ λλ€. 볡μ‘ν νλ‘κ·Έλ¨ μ€μΉ μμ΄ λΈλΌμ°μ μμ λ°λ‘ μ μν μ μμ΅λλ€.
π μΆνν©λλ€! μ΄μ μ μΈκ³ μ΄λμλ κΊΌμ§μ§ μλ λλ§μ 리λ μ€ μλ²κ° μκ²Όμ΅λλ€. ---
π λ§Ίμλ§ & νμ μ£Όμμ¬ν
μ΄μ μ΄ κ²μ ν°λ―Έλ μ°½μ νμ΄μ¬(Python)μ μ€μΉνκ³ , κΉνλΈ(GitHub)μμ μμ±νμ μλλ§€λ§€ μ½λλ₯Ό ν΄λ‘ (Clone)νμ¬ nohupμ΄λ systemd λ°λͺ¬μ ν΅ν΄ 24μκ° λ°±κ·ΈλΌμ΄λλ‘ μ€νμμΌ λκΈ°λ§ νλ©΄ λ©λλ€.
β οΈ λ§μ§λ§ μμ μ₯μΉ (κ²°μ μλ¦Ό μ€μ ):
μ€μλ‘ λ¬΄λ£ μ‘°κ±΄μ λ²μ΄λ μΈν μ νκ±°λ, νΈλν½ νλ(λΆλ―Έ μΈ μ§μμΌλ‘ μ 1GB μμλ°μ΄λ)λ₯Ό μ΄κ³Όν κ²½μ°λ₯Ό λλΉν΄ [κ²°μ ] β [μμ° λ° μλ¦Ό] λ©λ΄μμ 1λ§μ(λλ $1) μ΄μ κ³ΌκΈ μ μ΄λ©μΌ μλ¦Όμ΄ μ€λλ‘ μ€μ ν΄ λμλ κ²μ κ°λ ₯ν κΆμ₯ν©λλ€.
κ΅¬κΈ ν΄λΌμ°λλ₯Ό ν΅ν΄ 24μκ° μΌνλ λ λ ν νμ΄μ¬ λΉμλ₯Ό μ±κ³΅μ μΌλ‘ ꡬμΆνμκΈΈ μμν©λλ€!