์ด ๊ฐ์ด๋์์๋ ์์๋ฅผ ์ฌ์ฉํด์ ๋ฐฑ์๋ ์๋น์ค๊ฐ ์๋ ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํด ์ฅ์ ์กฐ์น๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ฅผ ์งํํ๊ธฐ ์ ์ ๋ค์ ์ฌํญ์ ์์งํ์ธ์.
- ๋ฐฑ์๋ ์๋น์ค๊ฐ ์๋ ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ฐ์
- ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ฅ์ ์กฐ์น ๊ฐ๋
- ๋ฐฉํ๋ฒฝ ๊ท์น ๊ฐ์
- ์ํ ์ ๊ฒ ๊ฐ๋
๊ถํ
์ด ๊ฐ์ด๋๋ฅผ ์ํํ๋ ค๋ฉด ํ๋ก์ ํธ์์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ๋คํธ์ํฌ๋ฅผ ์์ ํด์ผํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ํ๋ก์ ํธ ์์ ์ ๋๋ ํธ์ง์์ด๊ฑฐ๋ ๋ค์ Compute Engine IAM ์ญํ ์ ๋ชจ๋ ๋ณด์ ํด์ผ ํฉ๋๋ค.
์์ | ํ์ํ ์ญํ |
---|---|
๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์์ ๋ง๋ค๊ธฐ | ๋คํธ์ํฌ ๊ด๋ฆฌ์ |
๋ฐฉํ๋ฒฝ ๊ท์น ์ถ๊ฐ ๋ฐ ์ญ์ | ๋ณด์ ๊ด๋ฆฌ์ |
์ธ์คํด์ค ๋ง๋ค๊ธฐ | Compute ์ธ์คํด์ค ๊ด๋ฆฌ์ |
์์ธํ ๋ด์ฉ์ ๋ค์ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
์ค์
์ด ๊ฐ์ด๋์์๋ ์ฅ์ ์กฐ์น๋ฅผ ์ฌ์ฉํ๋ ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ตฌ์ฑํ๊ณ ํ ์คํธํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ด ์น์ ์ ๋จ๊ณ์์๋ ๋ค์์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
- ๋ฐฑ์๋ VM:
us-west1-a
์์ญ์ ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์๋ ํ๋์ ๊ธฐ๋ณธ ๋ฐฑ์๋us-west1-c
์์ญ์ ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์๋ ํ๋์ ์ฅ์ ์กฐ์น ๋ฐฑ์๋
- ๋ฐฑ์๋ VM์ ๋ํ ์์ ์ฐ๊ฒฐ์ ํ์ฉํ๋ ๋ฐฉํ๋ฒฝ ๊ท์น
- ์ฐ๊ฒฐ์ ํ ์คํธํ๊ณ ์ฅ์ ์กฐ์น ๋์์ ๊ด์ฐฐํ๊ธฐ ์ํ ํ๋์ ํด๋ผ์ด์ธํธ VM
- ๋ค์ ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์์:
- ๋ฐฑ์๋ ์๋น์ค์ ์ํ ์ ๊ฒ
- ๋ฐฑ์๋ VM ๊ฐ์ ์ฐ๊ฒฐ ๋ถ์ฐ์ ๊ด๋ฆฌํ๊ธฐ ์ํ
us-west1
๋ฆฌ์ ์ ๋ฐฑ์๋ ์๋น์ค - ๋ถํ ๋ถ์ฐ๊ธฐ์ ํ๋ฐํธ์๋์ ๋ํ ์ ๋ฌ ๊ท์น ๋ฐ IP ์ฃผ์
์ด ์์์ ์ํคํ ์ฒ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฐฑ์๋ VM ๋ฐ ์ธ์คํด์ค ๊ทธ๋ฃน ๋ง๋ค๊ธฐ
์ด ๋จ๊ณ์์๋ ๋ฐฑ์๋ VM ๋ฐ ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค.
us-west1-a
์ ์ธ์คํด์ค ๊ทธ๋ฃนig-a
๋ 2๊ฐ์ VM์ด ์๋ ๊ธฐ๋ณธ ๋ฐฑ์๋์ ๋๋ค.vm-a1
vm-a2
us-west1-c
์ ์ธ์คํด์ค ๊ทธ๋ฃนig-c
๋ 2๊ฐ์ VM์ด ์๋ ์ฅ์ ์กฐ์น ๋ฐฑ์๋์ ๋๋ค.vm-c1
vm-c2
๋ช ํํ ์ค๋ช ํ๊ณ ํ ์์ญ์ด ๋ค์ด๋ ๊ฒฝ์ฐ ์ฅ์ ์กฐ์น๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๊ธฐ๋ณธ ๋ฐ ์ฅ์ ์กฐ์น ๋ฐฑ์๋๋ ๋ณ๋์ ์์ญ์ ๋ฐฐ์น๋ฉ๋๋ค.
๊ฐ ๊ธฐ๋ณธ ๋ฐ ๋ฐฑ์ VM์ TCP ํฌํธ 80์์ Apache ์น ์๋ฒ๋ฅผ ์คํํ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Apache๋ ์์์ IP ์ฃผ์์ ๋ฐ์ธ๋ฉ๋๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๋์ IP๋ฅผ ๋ณด์กดํ์ฌ ํจํท์ ์ ๋ฌํฉ๋๋ค.
๊ธฐ๋ณธ VM๊ณผ ๋ฐฑ์ VM์์ ์คํ ์ค์ธ ์๋ฒ ์ํํธ์จ์ด๊ฐ ๋ถํ ๋ถ์ฐ๊ธฐ ์ ๋ฌ ๊ท์น์ IP ์ฃผ์์์ ๋ฆฌ์จํ๋์ง ํ์ธํฉ๋๋ค. ์ธ๋ถ ํจ์ค์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ๋ฐฑ์๋ VM์ ์ ๋ฌํ๋ ํจํท์ ๋์ IP ์ฃผ์๋ ์ ๋ฌ ๊ท์น์ IP ์ฃผ์์ ๋๋ค.
์ค๋ช ์ ํธ์๋ฅผ ์ํด ๋ชจ๋ ๊ธฐ๋ณธ ๋ฐ ๋ฐฑ์ VM์ Debian GNU/Linux 9๋ฅผ ์คํํฉ๋๋ค.
์ฝ์
๋ฐฑ์๋ VM ๋ง๋ค๊ธฐ
- Google Cloud ์ฝ์์์ VM ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค. VM ์ธ์คํด์ค๋ก ์ด๋
- ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ์ฌ ๋ค์ ์ด๋ฆ ๋ฐ ์์ญ ์กฐํฉ์ผ๋ก 4๊ฐ์ VM์ ๋ง๋ญ๋๋ค.
- ์ด๋ฆ:
vm-a1
, ์์ญ:us-west1-a
- ์ด๋ฆ:
vm-a2
, ์์ญ:us-west1-a
- ์ด๋ฆ:
vm-c1
, ์์ญ:us-west1-c
- ์ด๋ฆ:
vm-c2
, ์์ญ:us-west1-c
- ์ด๋ฆ:
- ์ธ์คํด์ค ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์ 2๋จ๊ณ์ ํ์๋ ๋๋ก ์ค์ ํฉ๋๋ค.
- ๋ฆฌ์ ์ ๊ฒฝ์ฐ
us-west1
์ ์ ํํ๊ณ 2๋จ๊ณ์ ํ์๋ ๋๋ก ์์ญ์ ์ ํํฉ๋๋ค. - ๋ถํ ๋์คํฌ ์น์ ์์ ์ ํํ ์ด๋ฏธ์ง๊ฐ Debian GNU/Linux 12(bookworm)์ธ์ง ํ์ธํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์ ํ์ ํด๋ฆญํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
- ๊ณ ๊ธ ์ต์ ์ ํด๋ฆญํฉ๋๋ค.
- ๋คํธ์ํน์ ํด๋ฆญํ๊ณ ๋ค์ ํ๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ๋คํธ์ํฌ ํ๊ทธ์
network-lb
๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ๋คํธ์ํฌ ํ๊ทธ์
๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค. ์์ ์คํฌ๋ฆฝํธ ํ๋์ ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์คํฌ๋ฆฝํธ ์ฝํ ์ธ ๋ 4๊ฐ์ ๋ชจ๋ VM์์ ๋์ผํฉ๋๋ค.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค ๊ทธ๋ฃน ์์ฑ
Google Cloud ์ฝ์์์ ์ธ์คํด์ค ๊ทธ๋ฃน ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ค์ ์กฐํฉ์ ์ฌ์ฉํด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ์ฌ ๊ฐ๊ฐ VM์ด 2๊ฐ ์๋ ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน 2๊ฐ๋ฅผ ๋ง๋ญ๋๋ค.
- ์ธ์คํด์ค ๊ทธ๋ฃน:
ig-a
, ์์ญ:us-west1-a
, VM:vm-a1
๋ฐvm-a2
- ์ธ์คํด์ค ๊ทธ๋ฃน:
ig-c
, ์์ญ:us-west1-c
, VM:vm-c1
๋ฐvm-c2
- ์ธ์คํด์ค ๊ทธ๋ฃน:
์ธ์คํด์ค ๊ทธ๋ฃน ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ํด๋ฆญํฉ๋๋ค.
์ด๋ฆ์ 2๋จ๊ณ์ ํ์๋ ๋๋ก ์ค์ ํฉ๋๋ค.
์์น ์น์ ์์ ๋ฆฌ์ ์ผ๋ก
us-west1
์ ์ ํํ ๋ค์ 2๋จ๊ณ์ ์ค๋ช ๋ ๋๋ก ์์ญ์ ์ ํํฉ๋๋ค.๋คํธ์ํฌ์
default
๋ฅผ ์ ๋ ฅํฉ๋๋ค.VM ์ธ์คํด์ค ์น์ ์์ 2๋จ๊ณ์ ํ์๋ ๋๋ก VM์ ์ถ๊ฐํฉ๋๋ค.
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
VM-NAME
๋ฐZONE
์ ์ด๋ฌํ 4๊ฐ์ ์กฐํฉ์ ์ฌ์ฉํ์ฌ ๋ค์ ๋ช ๋ น์ด๋ฅผ 4๋ฒ ์คํํ๊ณ 4๊ฐ์ VM์ ๋ง๋ญ๋๋ค. ์คํฌ๋ฆฝํธ ์ฝํ ์ธ ๋ 4๊ฐ์ ๋ชจ๋ VM์์ ๋์ผํฉ๋๋ค.vm-a1
์คVM-NAME
๋ฐus-west1-a
์คZONE
vm-a2
์คVM-NAME
๋ฐus-west1-a
์คZONE
vm-c1
์คVM-NAME
๋ฐus-west1-c
์คZONE
vm-c2
์คVM-NAME
๋ฐus-west1-c
์คZONE
gcloud compute instances create VM-NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=network-lb \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
๊ฐ ์์ญ์์ ๋ค์๊ณผ ๊ฐ์ด ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน 2๊ฐ๋ฅผ ๋ง๋ญ๋๋ค.
gcloud compute instance-groups unmanaged create ig-a \ --zone us-west1-a gcloud compute instance-groups unmanaged create ig-c \ --zone us-west1-c
VM์ ์ ์ ํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐํฉ๋๋ค.
gcloud compute instance-groups unmanaged add-instances ig-a \ --zone us-west1-a \ --instances vm-a1,vm-a2 gcloud compute instance-groups unmanaged add-instances ig-c \ --zone us-west1-c \ --instances vm-c1,vm-c2
๋ฐฉํ๋ฒฝ ๊ท์น ๊ตฌ์ฑ
์ธ๋ถ ํธ๋ํฝ์ด ๋ฐฑ์๋ ์ธ์คํด์ค์ ๋๋ฌํ๋๋ก ํ์ฉํ๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ๋ฐฉํ๋ฒฝ ์ ์ฑ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ๋ชจ๋ ์์ค์ ํธ๋ํฝ์ ํ์ฉํ๋ ๊ท์น์ ๋ง๋ญ๋๋ค. ๋ค์ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
- ์ด๋ฆ:
allow-network-lb
. - ๋คํธ์ํฌ:
default
- ์ฐ์ ์์:
1000
- ํธ๋ํฝ ๋ฐฉํฅ: ์ธ๊ทธ๋ ์ค
- ์ผ์น ์ ์์ : ํ์ฉ
- ๋์: ์ง์ ๋ ๋์ ํ๊ทธ
- ๋์ ํ๊ทธ:
network-lb
- ์์ค ํํฐ: IPv4 ๋ฒ์
- ์์ค IPv4 ๋ฒ์:
0.0.0.0/0
. ๋ชจ๋ ์์ค์ ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ธ๋ถ ํธ๋ํฝ ๋ฐ ์ํ ์ ๊ฒ ํ๋ก๋ธ๊ฐ ๋ฐฑ์๋ ์ธ์คํด์ค์ ๋๋ฌํ ์ ์์ต๋๋ค. - ํ๋กํ ์ฝ ๋ฐ ํฌํธ: ์ง์ ๋ ํ๋กํ ์ฝ ๋ฐ ํฌํธ๋ฅผ ์ ํํฉ๋๋ค.
TCP ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๊ณ
80
์ ์ ๋ ฅํฉ๋๋ค.
- ์ด๋ฆ:
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น ๋ง๋ค๊ธฐ๋ฅผ ๋ค์ ํด๋ฆญํ์ฌ ์ธ์คํด์ค๋ก ๋ค์ด์ค๋ SSH ์ฐ๊ฒฐ์ ํ์ฉํ๋ ๊ท์น์ ๋ง๋ญ๋๋ค. ๋ค์ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
- ์ด๋ฆ:
allow-ssh
- ๋คํธ์ํฌ:
default
- ์ฐ์ ์์:
1000
- ํธ๋ํฝ ๋ฐฉํฅ: ์ธ๊ทธ๋ ์ค
- ์ผ์น ์ ์์ : ํ์ฉ
- ๋์: ์ง์ ๋ ๋์ ํ๊ทธ
- ๋์ ํ๊ทธ:
network-lb
- ์์ค ํํฐ: IPv4 ๋ฒ์
- ์์ค IPv4 ๋ฒ์:
0.0.0.0/0
- ํ๋กํ ์ฝ ๋ฐ ํฌํธ: ์ง์ ๋ ํ๋กํ ์ฝ ๋ฐ ํฌํธ๋ฅผ ์ ํํฉ๋๋ค.
TCP ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๊ณ
22
์ ์ ๋ ฅํฉ๋๋ค.
- ์ด๋ฆ:
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
gcloud compute firewall-rules create allow-network-lb \ --target-tags network-lb \ --allow tcp:80
gcloud compute firewall-rules create allow-ssh \ --target-tags network-lb \ --allow tcp:22
๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์์ ๊ตฌ์ฑ
์ด ๋จ๊ณ์์๋ ๋ค์๊ณผ ๊ฐ์ ์ธ๋ถ ํจ์ค์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์์๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์ํ ์ ๊ฒ: ์ด ์์์์๋ HTTP
200
(OK) ์๋ต๋ง ํ์ธํ๋ HTTP ์ํ ์ ๊ฒ์ ์ฌ์ฉํฉ๋๋ค.๋ฐฑ์๋ ์๋น์ค: ์์์์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํตํด HTTP ํธ๋ํฝ์ ์ ๋ฌํ๋ฏ๋ก ๊ตฌ์ฑ์ UDP๊ฐ ์๋ TCP๋ฅผ ์ง์ ํฉ๋๋ค. ์ฅ์ ์กฐ์น๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด ์ด ๋ฐฑ์๋ ์๋น์ค์ ์ฅ์ ์กฐ์น์จ์
0.75
์ ๋๋ค.์ ๋ฌ ๊ท์น: ์ด ์์์์๋ ํ๋์ ์ ๋ฌ ๊ท์น์ ๋ง๋ญ๋๋ค.
์ฝ์
๊ตฌ์ฑ ์์
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ์ ํ์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ(TCP/UDP/SSL)๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ํ๋ก์ ๋๋ ํจ์ค ์ค๋ฃจ์ ํจ์ค ์ค๋ฃจ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๊ณต๊ฐ ๋๋ ๋ด๋ถ์ ๊ณต๊ฐ(์ธ๋ถ)๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
๋ฐฑ์๋ ๊ตฌ์ฑ
- ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ ๋ง๋ค๊ธฐ ํ์ด์ง์์ ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํด ์ด๋ฆ์
tcp-network-lb
๋ก ์ ๋ ฅํฉ๋๋ค. - ๋ฐฑ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค. ์ด์ ์ ์ ๋ ฅํ ๋ถํ ๋ถ์ฐ๊ธฐ ์ด๋ฆ์ด ๋ํ๋์ง๋ง ์์ ํ ์ ์์ต๋๋ค.
- ๋ฐฑ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํฉ๋๋ค.
- ๋ฆฌ์ ์ us-west1์ ์ ํํฉ๋๋ค.
- ๋ฐฑ์๋์์ ์ธ์คํด์ค ๊ทธ๋ฃน ๋๋กญ๋ค์ด ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ์ฌ
ig-a
์ ์ ํํฉ๋๋ค. ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค. - ๋ฐฑ์๋ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ์ด ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ์ฌ
ig-c
๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด ์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ฐฑ์ ์ฉ ์ฅ์ ์กฐ์น ๊ทธ๋ฃน์ผ๋ก ์ฌ์ฉ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค. - ์ํ ์ ๊ฒ์์ ๋ค๋ฅธ ์ํ ์ ๊ฒ ๋ง๋ค๊ธฐ ๋๋ ๋ค๋ฅธ ์ํ ์ ๊ฒ ๋ง๋ค๊ธฐ๋ฅผ ์ ํํ๊ณ ๋ค์ ์ ๋ณด๋ฅผ ์
๋ ฅํฉ๋๋ค.
- ์ด๋ฆ:
hc-http-80
- ํ๋กํ ์ฝ:
TCP
- ํฌํธ:
80
- ์ด๋ฆ:
- ์ ์ฅ ํ ๊ณ์์ ํด๋ฆญํฉ๋๋ค.
- ๊ณ ๊ธ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
- ์ฅ์ ์กฐ์น์จ์
0.75
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๊ณ์ํ๊ธฐ ์ ์ ๋ฐฑ์๋ ๊ตฌ์ฑ ์์ ํ๋์ ์ฒดํฌํ์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
ํ๋ฐํธ์๋ ๊ตฌ์ฑ
- ํ๋ฐํธ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
network-lb-forwarding-rule
์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.- IP์์ ๋๋กญ๋ค์ด ๋ฉ๋ด๋ฅผ ํด๋ฆญํ๊ณ IP ์ฃผ์ ๋ง๋ค๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
- ์ ๊ณ ์ IP ์ฃผ์ ์์ฝ ํ๋ฉด์์ ์ด๋ฆ์
network-lb-ip
์ ํ ๋นํฉ๋๋ค. - ์์ฝ์ ํด๋ฆญํฉ๋๋ค.
- ์ ๊ณ ์ IP ์ฃผ์ ์์ฝ ํ๋ฉด์์ ์ด๋ฆ์
- ๋จ์ผ์ ์ ํํ๊ณ ํฌํธ ๋ฒํธ์
80
์ ์ ๋ ฅํฉ๋๋ค. ์๋ฃ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
ํ๋ฐํธ์๋ ๊ตฌ์ฑ ์ผ์ชฝ์ ์ฒดํฌ ํ์๊ฐ ์๋ ํ๋์ ์์ ์ค์ ์ด ์๋ฃ๋์์์ ๋ํ๋ ๋๋ค.
๊ตฌ์ฑ ๊ฒํ
- ๊ฒํ ๋ฐ ์๋ฃ ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ชจ๋ ๊ตฌ์ฑ ์ค์ ์ ํ์ธํฉ๋๋ค.
์ค์ ์ด ์ฌ๋ฐ๋ฅด๋ฉด ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ช ๋ถ ์ ๋ ๊ฑธ๋ฆฝ๋๋ค.
๋ถํ ๋ถ์ฐ ํ๋ฉด์ ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํ ๋ฐฑ์๋ ์ด์ ์ ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ์ ์์์ ๋ํ๋ด๋ ๋ น์ ํ์ธ ํ์๊ฐ ๋ํ๋ฉ๋๋ค.
gcloud
๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ณ ์ ์ธ๋ถ IP ์ฃผ์ ๋ง๋ค๊ธฐ
gcloud compute addresses create network-lb-ip \ --region us-west1
์ HTTP ์ํ ์ ๊ฒ์ ๋ง๋ค์ด 80์์ VM์ ๋ํ TCP ์ฐ๊ฒฐ์ ํ ์คํธํฉ๋๋ค.
gcloud compute health-checks create http hc-http-80 \ --region us-west1 \ --port 80
HTTP ํธ๋ํฝ์ ๋ํ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ง๋ญ๋๋ค.
gcloud compute backend-services create network-lb-backend-service \ --protocol tcp \ --region us-west1 \ --health-checks hc-http-80 \ --health-checks-region us-west1 \ --failover-ratio 0.75
๊ธฐ๋ณธ ๋ฐฑ์๋๋ฅผ ๋ฐฑ์๋ ์๋น์ค์ ์ถ๊ฐํฉ๋๋ค.
gcloud compute backend-services add-backend network-lb-backend-service \ --region us-west1 \ --instance-group ig-a \ --instance-group-zone us-west1-a
๋ฐฑ์๋ ์๋น์ค์ ์ฅ์ ์กฐ์น ๋ฐฑ์๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
gcloud compute backend-services add-backend network-lb-backend-service \ --region us-west1 \ --instance-group ig-c \ --instance-group-zone us-west1-c \ --failover
๋ฐฑ์๋ ์๋น์ค์ ๋ํ ์ ๋ฌ ๊ท์น์ ๋ง๋ญ๋๋ค. 1๋จ๊ณ์์ ์์ฝ๋ IP ์ฃผ์๋ฅผ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ณ ์ ์ธ๋ถ IP ์ฃผ์๋ก ์ฌ์ฉํฉ๋๋ค.
gcloud compute forwarding-rules create network-lb-forwarding-rule \ --region us-west1 \ --load-balancing-scheme external \ --address network-lb-ip\ --ports 80 \ --backend-service network-lb-backend-service
ํ ์คํธ
์ด ํ ์คํธ๋ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์ ํ์ธํ๊ณ ์์๋๋ ๋์์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ๋ก ํธ๋ํฝ ์ ์ก
์ด ์ ์ฐจ๋ ์ธ๋ถ ํธ๋ํฝ์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ก ์ ์กํฉ๋๋ค. ์ด ์ ์ฐจ์ ๋ฐ๋ผ ๋ค๋ฅธ ํ ์คํธ๋ฅผ ์๋ฃํฉ๋๋ค.
ํด๋ผ์ด์ธํธ VM ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
gcloud compute forwarding-rules describe network-lb-forwarding-rule \ --region us-west1
curl
์ ์ฌ์ฉํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํ ์น ์์ฒญ์ ๋ง๋ค์ด IP ์ฃผ์์ ์ฐ๊ฒฐํฉ๋๋ค.curl http://IP_ADDRESS
curl
๋ช ๋ น์ด์์ ๋ฐํ๋ ํ ์คํธ๋ฅผ ํ์ธํฉ๋๋ค. ์๋ต์ ์์ฑํ๋ ๋ฐฑ์๋ VM์ ์ด๋ฆ์ ํด๋น ํ ์คํธ์ ํ์๋ฉ๋๋ค(์:Page served from: vm-a1
).
์ด๊ธฐ ์ํ ํ ์คํธ
์์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ตฌ์ฑํ ํ์๋ 4๊ฐ์ ๋ฐฑ์๋ VM ๋ชจ๋ ์ ์ ์ํ์ฌ์ผ ํฉ๋๋ค.
- 2๊ฐ์ ๊ธฐ๋ณธ VM,
vm-a1
๋ฐvm-a2
- 2๊ฐ์ ๋ฐฑ์
VM,
vm-c1
๋ฐvm-c2
ํ
์คํธ ์ ์ฐจ์ ๋ฐ๋ผ ํธ๋ํฝ์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ก ์ ์กํฉ๋๋ค.
๋ ๋ฒ์งธ ๋จ๊ณ๋ฅผ ๋ช ๋ฒ ๋ฐ๋ณตํฉ๋๋ค. 2๊ฐ์ ๊ธฐ๋ณธ VM์ธ vm-a1
๋ฐ vm-a2
๋ ๋ชจ๋ ์ ์ ์ํ์ด๋ฏ๋ก ์์๋๋ ๋์์ ๋ ๊ธฐ๋ณธ VM์ด ํธ๋ํฝ์ ์ ๊ณตํ๋ ๊ฒ์
๋๋ค. ์ด ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ตฌ์ฑ๋ ์ธ์
์ดํผ๋ํฐ๊ฐ ์์ผ๋ฏ๋ก ๊ฐ ๊ธฐ๋ณธ VM์ด ์๋ต์ ์ฝ ์ ๋ฐ์ ์ ๊ณตํฉ๋๋ค.
์ฅ์ ์กฐ์น ํ ์คํธ
์ด ํ
์คํธ์์๋ ์ฅ์ ์กฐ์น ๋์์ ๊ด์ฐฐํ ์ ์๋๋ก vm-a1
์ ์ฅ์ ๋ฅผ ์๋ฎฌ๋ ์ด์
ํฉ๋๋ค.
vm-a1
VM์ ์ฐ๊ฒฐํฉ๋๋ค.gcloud compute ssh vm-a1 --zone us-west1-a
Apache ์น ์๋ฒ๋ฅผ ์ค์งํฉ๋๋ค. 10์ด ํ Google Cloud๋ ์ด VM์ ๋น์ ์์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค. (์ค์ ์์ ๋ง๋
hc-http-80
์ํ ํ์ธ์ ๊ธฐ๋ณธ ํ์ธ ๊ฐ๊ฒฉ์ 5์ด์ด๋ฉฐ ๋น์ ์ ๊ธฐ์ค์ ์ 2ํ ์ฐ์ ํ๋ก๋ธ ์คํจ์ ๋๋ค.)sudo apachectl stop
ํ ์คํธ ์ ์ฐจ์ ๋ฐ๋ผ ํธ๋ํฝ์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ก ์ ์กํฉ๋๋ค. ๋ ๋ฒ์งธ ๋จ๊ณ๋ฅผ ๋ช ๋ฒ ๋ฐ๋ณตํฉ๋๋ค. ์์๋๋ ๋์์ 2๊ฐ์ ๋ฐฑ์ VM
vm-c1
๋ฐvm-c2
์์ ํธ๋ํฝ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ๊ธฐ๋ณธ VM์vm-a2
๋ง ์ ์์ด๋ฏ๋ก ์ด ๊ธฐ๋ณธ VM ๋๋น ์ ์ ๊ธฐ๋ณธ VM์ ๋น์จ์0.5
์ ๋๋ค. ์ด ๊ฐ์ ์ฅ์ ์กฐ์น ๊ธฐ์ค์ 0.75
๋ณด๋ค ์์ผ๋ฏ๋กGoogle Cloud ๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ ํ์ฑ ํ์ ์ฌ๊ตฌ์ฑํ์ฌ ๋ฐฑ์ VM์ ์ฌ์ฉํ์ต๋๋ค. ์ด ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํด ์ธ์ ์ดํผ๋ํฐ๊ฐ ๊ตฌ์ฑ๋์ง ์์ ํ ๊ฐ ๋ฐฑ์ VM์ด ์ฝ ์ ๋ฐ์ ์๋ต์ ์ ๊ณตํฉ๋๋ค.
์ฅ์ ๋ณต๊ตฌ ํ ์คํธ
์ด ํ
์คํธ๋ vm-a1
์์ Apache ์๋ฒ๋ฅผ ๋ค์ ์์ํ์ฌ ์ฅ์ ๋ณต๊ตฌ๋ฅผ ์๋ฎฌ๋ ์ด์
ํฉ๋๋ค.
vm-a1
VM์ ์ฐ๊ฒฐํฉ๋๋ค.gcloud compute ssh vm-a1 --zone us-west1-a
Apache ์น ์๋ฒ๋ฅผ ์์ํ๊ณ 10์ด ๋์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
sudo apachectl start
ํด๋ผ์ด์ธํธ ํ ์คํธ ์ ์ฐจ๋ฅผ ๋ฐ๋ฆ ๋๋ค. ๋ ๋ฒ์งธ ๋จ๊ณ๋ฅผ ๋ช ๋ฒ ๋ฐ๋ณตํฉ๋๋ค. ์์๋๋ ๋์์ 2๊ฐ์ ๊ธฐ๋ณธ VM
vm-a1
๋ฐvm-a2
์์ ํธ๋ํฝ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ๋ ๊ธฐ๋ณธ VM ๋ชจ๋ ์ ์ ์ํ์ด๋ฏ๋ก ์ด ๊ธฐ๋ณธ VM ๋๋น ์ ์ ๊ธฐ๋ณธ VM์ ๋น์จ์ด1.0
์ด๊ณ ์ด๋ ์ฅ์ ์กฐ์น ๊ธฐ์ค์ ์ธ0.75
๋ณด๋ค ํฌ๋ฏ๋ก Google Cloud ๋ ๋ค์ ๊ธฐ๋ณธ VM์ ์ฌ์ฉํ๋๋ก ํ์ฑ ํ์ ๊ตฌ์ฑํ์ต๋๋ค.
๋ฐฑ์๋ VM ์ถ๊ฐ
์ด ์น์ ์์๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ธฐ๋ณธ ๋ฐ ๋ฐฑ์ VM์ ๋ ์ถ๊ฐํ์ฌ ๊ตฌ์ฑ ์์๋ฅผ ํ์ฅํฉ๋๋ค. ๊ฐ์ ๋ฆฌ์ ์ ์ฌ๋ฌ ์์ญ์ ๊ธฐ๋ณธ ๋ฐ ๋ฐฑ์ VM์ ๋ฐฐํฌํ ์ ์์์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด 2๊ฐ์ ๋ฐฑ์๋ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐ๋ก ๋ง๋ญ๋๋ค.
us-west1-c
์ ์ธ ๋ฒ์งธ ์ธ์คํด์ค ๊ทธ๋ฃนig-d
๋ 2๊ฐ์ VM์ด ์๋ ๊ธฐ๋ณธ ๋ฐฑ์๋ ์ญํ ์ ํฉ๋๋ค.vm-d1
vm-d2
us-west1-a
์ ๋ค ๋ฒ์งธ ์ธ์คํด์ค ๊ทธ๋ฃนig-b
๋ 2๊ฐ์ VM์ด ์๋ ์ฅ์ ์กฐ์น ๋ฐฑ์๋ ์ญํ ์ ํฉ๋๋ค.vm-b1
vm-b2
์ด ์์์ ์์ ๋ ์ํคํ ์ฒ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ถ๊ฐ VM ๋ฐ ์ธ์คํด์ค ๊ทธ๋ฃน ๋ง๋ค๊ธฐ
๋ค์ ๋จ๊ณ์ ๋ฐ๋ผ ๊ธฐ๋ณธ ๋ฐ ๋ฐฑ์ VM๊ณผ ํด๋น ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐ๋ก ๋ง๋ญ๋๋ค.
์ฝ์
๋ฐฑ์๋ VM ๋ง๋ค๊ธฐ
Google Cloud ์ฝ์์์ VM ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ์ฌ ๋ค์ ์ด๋ฆ ๋ฐ ์์ญ ์กฐํฉ์ผ๋ก 4๊ฐ์ VM์ ๋ง๋ญ๋๋ค.
- ์ด๋ฆ:
vm-b1
, ์์ญ:us-west1-a
- ์ด๋ฆ:
vm-b2
, ์์ญ:us-west1-a
- ์ด๋ฆ:
vm-d1
, ์์ญ:us-west1-c
- ์ด๋ฆ:
vm-d2
, ์์ญ:us-west1-c
- ์ด๋ฆ:
์ธ์คํด์ค ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ด๋ฆ์ 2๋จ๊ณ์ ํ์๋ ๋๋ก ์ค์ ํฉ๋๋ค.
๋ฆฌ์ ์ ๊ฒฝ์ฐ
us-west1
์ ์ ํํ๊ณ 2๋จ๊ณ์ ํ์๋ ๋๋ก ์์ญ์ ์ ํํฉ๋๋ค.๋ถํ ๋์คํฌ ์น์ ์์ ์ ํํ ์ด๋ฏธ์ง๊ฐ Debian GNU/Linux 9 Stretch์ธ์ง ํ์ธํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์ ํ์ ํด๋ฆญํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
๊ณ ๊ธ ์ต์ ์ ํด๋ฆญํฉ๋๋ค.
๋คํธ์ํน์ ํด๋ฆญํ๊ณ ๋ค์ ํ๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ๋คํธ์ํฌ ํ๊ทธ์
network-lb
๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ๋คํธ์ํฌ ํ๊ทธ์
๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค. ์์ ์คํฌ๋ฆฝํธ ํ๋์ ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์คํฌ๋ฆฝํธ ์ฝํ ์ธ ๋ 4๊ฐ์ ๋ชจ๋ VM์์ ๋์ผํฉ๋๋ค.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค ๊ทธ๋ฃน ์์ฑ
Google Cloud ์ฝ์์์ ์ธ์คํด์ค ๊ทธ๋ฃน ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ด๋ฌํ ์กฐํฉ์ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ VM์ด 2๊ฐ ์๋ ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน 2๊ฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
- ์ธ์คํด์ค ๊ทธ๋ฃน:
ig-b
, ์์ญ:us-west1-a
, VM:vm-b1
๋ฐvm-b2
- ์ธ์คํด์ค ๊ทธ๋ฃน:
ig-d
, ์์ญ:us-west1-c
, VM:vm-d1
๋ฐvm-d2
- ์ธ์คํด์ค ๊ทธ๋ฃน:
์ธ์คํด์ค ๊ทธ๋ฃน ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ํด๋ฆญํฉ๋๋ค.
์ด๋ฆ์ 2๋จ๊ณ์ ํ์๋ ๋๋ก ์ค์ ํฉ๋๋ค.
์์น ์น์ ์์ ๋ฆฌ์ ์ผ๋ก
us-west1
์ ์ ํํ ๋ค์ 2๋จ๊ณ์ ์ค๋ช ๋ ๋๋ก ์์ญ์ ์ ํํฉ๋๋ค.๋คํธ์ํฌ์
default
๋ฅผ ์ ๋ ฅํฉ๋๋ค.VM ์ธ์คํด์ค ์น์ ์์ 2๋จ๊ณ์ ํ์๋ ๋๋ก VM์ ์ถ๊ฐํฉ๋๋ค.
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
VM-NAME
๋ฐZONE
์ ์ด๋ฌํ 4๊ฐ์ ์กฐํฉ์ ์ฌ์ฉํ์ฌ ๋ค์ ๋ช ๋ น์ด๋ฅผ 4๋ฒ ์คํํ๊ณ 4๊ฐ์ VM์ ๋ง๋ญ๋๋ค. ์คํฌ๋ฆฝํธ ์ฝํ ์ธ ๋ 4๊ฐ์ ๋ชจ๋ VM์์ ๋์ผํฉ๋๋ค.vm-b1
์คVM-NAME
๋ฐus-west1-a
์คZONE
vm-b2
์คVM-NAME
๋ฐus-west1-a
์คZONE
vm-d1
์คVM-NAME
๋ฐus-west1-c
์คZONE
vm-d2
์คVM-NAME
๋ฐus-west1-c
์คZONE
gcloud compute instances create VM-NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=network-lb \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
๊ฐ ์์ญ์์ ๋ค์๊ณผ ๊ฐ์ด ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน 2๊ฐ๋ฅผ ๋ง๋ญ๋๋ค.
gcloud compute instance-groups unmanaged create ig-b \ --zone us-west1-a gcloud compute instance-groups unmanaged create ig-d \ --zone us-west1-c
VM์ ์ ์ ํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐํฉ๋๋ค.
gcloud compute instance-groups unmanaged add-instances ig-b \ --zone us-west1-a \ --instances vm-b1,vm-b2 gcloud compute instance-groups unmanaged add-instances ig-d \ --zone us-west1-c \ --instances vm-d1,vm-d2
๊ธฐ๋ณธ ๋ฐฑ์๋ ์ถ๊ฐ
์ด ์ ์ฐจ๋ฅผ ๊ธฐ์กด ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค์ ๊ธฐ๋ณธ ๋ฐฑ์๋๋ก ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐํ๊ธฐ ์ํ ํ
ํ๋ฆฟ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ ๊ตฌ์ฑ์์ ์ด ์ ์ฐจ๋ ์ธ์คํด์ค ๊ทธ๋ฃน ig-d
๋ฅผ ๊ธฐ๋ณธ ๋ฐฑ์๋๋ก network-lb
๋ถํ ๋ถ์ฐ๊ธฐ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์ฝ์
๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์ ์์ ํ์ฌ ๊ธฐ๋ณธ ๋ฐฑ์๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์์ ํ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์์ ์ ํด๋ฆญํฉ๋๋ค.
๋ฐฑ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํฉ๋๋ค.
- ๋ฐฑ์๋์์ ๋ฐฑ์๋ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋๋กญ๋ค์ด์์ ๊ธฐ๋ณธ ๋ฐฑ์๋๋ก ์ถ๊ฐํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ ํํฉ๋๋ค. ์ด ๊ฒฝ์ฐ
ig-d
์ ๋๋ค. - ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๊ณ์ํ๊ธฐ ์ ์ ๋ฐฑ์๋ ๊ตฌ์ฑ ์์ ํ๋์ ์ฒดํฌํ์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
๊ตฌ์ฑ ๊ฒํ
- ๊ฒํ ๋ฐ ์๋ฃ ๋ฒํผ์ ํด๋ฆญํ๊ณ ๋ฐฑ์๋ ์๋์ ์ ๊ธฐ๋ณธ ๋ฐฑ์๋๊ฐ ํ์๋๋์ง ํ์ธํฉ๋๋ค.
์ค์ ์ด ์ฌ๋ฐ๋ฅด๋ฉด ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ช ๋ถ ์ ๋ ๊ฑธ๋ฆฝ๋๋ค.
๋ถํ ๋ถ์ฐ ํ๋ฉด์ ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํ ๋ฐฑ์๋ ์ด์ ์ ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ์ ์์์ ๋ํ๋ด๋ ๋ น์ ํ์ธ ํ์๊ฐ ๋ํ๋ฉ๋๋ค.
gcloud
๋ค์ gcloud
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค์ ๊ธฐ๋ณธ ๋ฐฑ์๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
BACKEND_SERVICE_NAME
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค ์ด๋ฆ์ ๋๋ค. ์๋ฅผ ๋ค์ดnetwork-lb-backend-service
๋ฅผ ์ฌ์ฉํฉ๋๋ค.INSTANCE_GROUP_NAME
์ ๊ธฐ๋ณธ ๋ฐฑ์๋๋ก ์ถ๊ฐํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ด๋ฆ์ ๋๋ค. ์๋ฅผ ๋ค์ดig-d
๋ฅผ ์ฌ์ฉํฉ๋๋ค.INSTANCE_GROUP_ZONE
์ ์ธ์คํด์ค ๊ทธ๋ฃน์ด ์ ์๋ ์์ญ์ ๋๋ค. ์๋ฅผ ๋ค์ดus-west1-c
๋ฅผ ์ฌ์ฉํฉ๋๋ค.REGION
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฆฌ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ดus-west1
์ ์ฌ์ฉํฉ๋๋ค.
์ฅ์ ์กฐ์น ๋ฐฑ์๋ ์ถ๊ฐ
์ด ์ ์ฐจ๋ฅผ ๊ธฐ์กด ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค์ ์ฅ์ ์กฐ์น ๋ฐฑ์๋๋ก ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐํ๊ธฐ ์ํ ํ
ํ๋ฆฟ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ ๊ตฌ์ฑ์์ ์ด ์ ์ฐจ๋ ์ธ์คํด์ค ๊ทธ๋ฃน ig-b
๋ฅผ ์ฅ์ ์กฐ์น ๋ฐฑ์๋๋ก network-lb
๋ถํ ๋ถ์ฐ๊ธฐ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์ฝ์
๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์ ์์ ํ์ฌ ๊ธฐ๋ณธ ๋ฐฑ์๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์์ ํ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์์ ์ ํด๋ฆญํฉ๋๋ค.
๋ฐฑ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํฉ๋๋ค.
- ๋ฐฑ์๋์์ ๋ฐฑ์๋ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋๋กญ๋ค์ด์์ ์ฅ์ ์กฐ์น ๋ฐฑ์๋๋ก ์ถ๊ฐํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ ํํฉ๋๋ค. ์ด ๊ฒฝ์ฐ
ig-b
์ ๋๋ค. - ์ด ์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ฐฑ์ ์ฉ ์ฅ์ ์กฐ์น ๊ทธ๋ฃน์ผ๋ก ์ฌ์ฉ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
- ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๊ณ์ํ๊ธฐ ์ ์ ๋ฐฑ์๋ ๊ตฌ์ฑ ์์ ํ๋์ ์ฒดํฌํ์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
๊ตฌ์ฑ ๊ฒํ
- ๊ฒํ ๋ฐ ์๋ฃ ๋ฒํผ์ ํด๋ฆญํ๊ณ ๋ฐฑ์๋ ์๋์ ์ ๊ธฐ๋ณธ ๋ฐฑ์๋๊ฐ ํ์๋๋์ง ํ์ธํฉ๋๋ค.
์ค์ ์ด ์ฌ๋ฐ๋ฅด๋ฉด ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ช ๋ถ ์ ๋ ๊ฑธ๋ฆฝ๋๋ค.
๋ถํ ๋ถ์ฐ ํ๋ฉด์ ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํ ๋ฐฑ์๋ ์ด์ ์ ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ์ ์์์ ๋ํ๋ด๋ ๋ น์ ํ์ธ ํ์๊ฐ ๋ํ๋ฉ๋๋ค.
gcloud
๋ค์ gcloud
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค์ ์ฅ์ ์กฐ์น ๋ฐฑ์๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --failover
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
BACKEND_SERVICE_NAME
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค ์ด๋ฆ์ ๋๋ค. ์๋ฅผ ๋ค์ดnetwork-lb-backend-service
๋ฅผ ์ฌ์ฉํฉ๋๋ค.INSTANCE_GROUP_NAME
์ ์ฅ์ ์กฐ์น ๋ฐฑ์๋๋ก ์ถ๊ฐํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ด๋ฆ์ ๋๋ค. ์๋ฅผ ๋ค์ดig-b
๋ฅผ ์ฌ์ฉํฉ๋๋ค.INSTANCE_GROUP_ZONE
์ ์ธ์คํด์ค ๊ทธ๋ฃน์ด ์ ์๋ ์์ญ์ ๋๋ค. ์๋ฅผ ๋ค์ดus-west1-a
๋ฅผ ์ฌ์ฉํฉ๋๋ค.REGION
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฆฌ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ดus-west1
์ ์ฌ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ ๋๋ ์ฅ์ ์กฐ์น ๋ฐฑ์๋ ๋ณํ
์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค์์ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ญ์ ํ์ง ์๊ณ ๋ ๊ธฐ๋ณธ ๋ฐฑ์๋๋ฅผ ์ฅ์ ์กฐ์น ๋ฐฑ์๋๋ก ๋๋ ๊ทธ ๋ฐ๋๋ก ๋ณํํ ์ ์์ต๋๋ค.
gcloud
๋ค์ gcloud
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ๊ธฐ๋ณธ ๋ฐฑ์๋๋ฅผ ์ฅ์ ์กฐ์น ๋ฐฑ์๋๋ก ๋ณํํฉ๋๋ค.
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --failover
๋ค์ gcloud
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ์ฅ์ ์กฐ์น ๋ฐฑ์๋๋ฅผ ๊ธฐ๋ณธ ๋ฐฑ์๋๋ก ๋ณํํฉ๋๋ค.
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --no-failover
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
BACKEND_SERVICE_NAME
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค ์ด๋ฆ์ ๋๋ค.INSTANCE_GROUP_NAME
์ ์ธ์คํด์ค ๊ทธ๋ฃน ์ด๋ฆ์ ๋๋ค.INSTANCE_GROUP_ZONE
์ ์ธ์คํด์ค ๊ทธ๋ฃน์ด ์ ์๋ ์์ญ์ ๋๋ค.REGION
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฆฌ์ ์ ๋๋ค.
์ฅ์ ์กฐ์น ์ ์ฑ ๊ตฌ์ฑ
์ด ์น์ ์์๋ ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค์ ๋ํด ์ฅ์ ์กฐ์น ์ ์ฑ ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ์ฅ์ ์กฐ์น ์ ์ฑ ์ ๋ค์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ์ฅ์ ์กฐ์น์จ
- ๋ชจ๋ ๋ฐฑ์๋ VM์ด ๋น์ ์์ ์ธ ๊ฒฝ์ฐ ํธ๋ํฝ ์ฐจ๋จ
- ์ฅ์ ์กฐ์น ์ ์ฐ๊ฒฐ ๋๋ ์ด๋
์ฅ์ ์กฐ์น ์ ์ฑ ์ ๋งค๊ฐ ๋ณ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์.
- ์ฅ์ ์กฐ์น์จ ์ค์
- ์ ์ VM์ด ์๋ ๊ฒฝ์ฐ ํธ๋ํฝ ์ฐจ๋จ
- ์ฅ์ ์กฐ์น ๋ฐ ์ฅ์ ๋ณต๊ตฌ ์ ์ฐ๊ฒฐ ๋๋ ์ด๋
์ฅ์ ์กฐ์น ์ ์ฑ ์ ์
๋ค์ ์๋ด์์๋ ๊ธฐ์กด ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ฅ์ ์กฐ์น ์ ์ฑ ์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
gcloud
gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ์ ์กฐ์น ์ ์ฑ ์ ์ ์ํ๋ ค๋ฉด ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION \ --failover-ratio FAILOVER_RATIO \ --connection-drain-on-failover \ --connection-draining-timeout=CONNECTION_DRAINING_TIMEOUT \ --drop-traffic-if-unhealthy
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
BACKEND_SERVICE_NAME
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค ์ด๋ฆ์ ๋๋ค. ์๋ฅผ ๋ค์ดnetwork-lb
๋ฅผ ์ฌ์ฉํฉ๋๋ค.REGION
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฆฌ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ดus-west1
์ ์ฌ์ฉํฉ๋๋ค.FAILOVER_RATIO
๋ ์ฅ์ ์กฐ์น์จ์ ๋๋ค. ๊ฐ๋ฅํ ๊ฐ์0.0
์ด์1.0
์ดํ์ ๋๋ค. ์๋ฅผ ๋ค์ด0.75
๋ฅผ ์ฌ์ฉํฉ๋๋ค.CONNECTION_DRAINING_TIMEOUT
์ ์ฌ์ฉํ๋ฉด ์ฐ๊ฒฐ ๋๋ ์ด๋ ์ ํ ์๊ฐ ๋์ ๋ ์ด์ ํ์ฑ ํ์ ์๋ VM์์๋ TCP ์ฐ๊ฒฐ์ ์ ์งํ ์ ์์ต๋๋ค.
์ฅ์ ์กฐ์น ์ ์ฑ ๋ณด๊ธฐ
๋ค์ ์๋ด์์๋ ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ธฐ์กด ์ฅ์ ์กฐ์น ์ ์ฑ ์ ๋ณด๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
gcloud
gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ์ ์กฐ์น ์ ์ฑ ์ค์ ์ ๋์ดํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฅ์ ์กฐ์น ์ ์ฑ ์ ์ ์๋์ง ์์ ์ค์ ์ ๊ธฐ๋ณธ ์ฅ์ ์กฐ์น ์ ์ฑ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION \ --format="get(failoverPolicy)"
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
BACKEND_SERVICE_NAME
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค ์ด๋ฆ์ ๋๋ค. ์๋ฅผ ๋ค์ดnetwork-lb-backend-service
๋ฅผ ์ฌ์ฉํฉ๋๋ค.REGION
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฆฌ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ดus-west1
์ ์ฌ์ฉํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- ์ค์ํ ๊ธฐ๋ณธ ์ฌํญ์ ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ฅ์ ์กฐ์น์ ๋ํ ์ค์ํ ์ ๋ณด๋ ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ฅ์ ์กฐ์น ๊ฐ๋ ์ ์ฐธ์กฐํ์ธ์.
- ๊ตฌ์ฑ ์์๋ ์ธ๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ ์ค์ ์ ์ฐธ์กฐํ์ธ์.