๋ฆฌ์ ๋ณ ๋ด๋ถ ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๊ฐ์ VPC ๋คํธ์ํฌ์ ํด๋ผ์ด์ธํธ๋ VPC ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ํด๋ผ์ด์ธํธ์๋ง ์ก์ธ์คํ ์ ์๋ ๋ด๋ถ IP ์ฃผ์ ๋ค์์ TCP ์๋น์ค ํธ๋ํฝ์ ์คํํ๊ณ ํ์ฅํ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ก์ ๊ธฐ๋ฐ ๋ฆฌ์ ๋ณ Layer 4 ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋๋ค.
์ด ๊ฐ์ด๋์์๋ ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน(MIG) ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์ ๋ด๋ถ ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์์ํ๊ธฐ ์ ์ ๋ฆฌ์ ๋ด๋ถ ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ฐ์๋ฅผ ์ฝ์ด๋ณด์ธ์.
๊ฐ์
์ด ์์์์๋ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ REGION_A
๋ฆฌ์ ์ ๋ ์์ญ ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์๋ ๋ฐฑ์๋ VM์ TCP ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค. ์ด ์์์์ ์๋น์ค๋ ํฌํธ 110
์์ ์๋ตํ๋๋ก ๊ตฌ์ฑ๋ Apache ์๋ฒ ์ธํธ์
๋๋ค.
๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ๋ ํฌํธ 110
์ ํ์ฉํ์ง ์์ผ๋ฏ๋ก ํ
์คํธ ์น์
์์๋ curl
์ ์ฌ์ฉํฉ๋๋ค.
์ด ์์์์๋ ๋ค์ ๋ฐฐํฌ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
๋ฆฌ์ ๋ด๋ถ ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๋ฆฌ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋๋ค. ๋ชจ๋ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์์(๋ฐฑ์๋ ์ธ์คํด์ค ๊ทธ๋ฃน, ๋ฐฑ์๋ ์๋น์ค, ๋์ ํ๋ก์, ์ ๋ฌ ๊ท์น)๋ ๊ฐ์ ๋ฆฌ์ ์ ์์ด์ผ ํฉ๋๋ค.
๊ถํ
์ด ๊ฐ์ด๋๋ฅผ ์งํํ๋ ค๋ฉด ํ๋ก์ ํธ์์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ๋คํธ์ํฌ๋ฅผ ์์ ํ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ํ๋ก์ ํธ ์์ ์ ๋๋ ํธ์ง์์ด๊ฑฐ๋, ๋ค์ Compute Engine IAM ์ญํ ์ ๋ชจ๋ ๋ณด์ ํด์ผ ํฉ๋๋ค.
์์ | ํ์ํ ์ญํ |
---|---|
๋คํธ์ํฌ, ์๋ธ๋ท, ๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์์ ๋ง๋ค๊ธฐ | ๋คํธ์ํฌ ๊ด๋ฆฌ์ |
๋ฐฉํ๋ฒฝ ๊ท์น ์ถ๊ฐ ๋ฐ ์ญ์ | ๋ณด์ ๊ด๋ฆฌ์ |
์ธ์คํด์ค ๋ง๋ค๊ธฐ | Compute ์ธ์คํด์ค ๊ด๋ฆฌ์ |
์์ธํ ๋ด์ฉ์ ๋ค์ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
๋คํธ์ํฌ ๋ฐ ์๋ธ๋ท ๊ตฌ์ฑ
๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋๋ฅผ ์ํ ์๋ธ๋ท ํ ๊ฐ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ํ๋ก์๋ฅผ ์ํ ์๋ธ๋ท ํ ๊ฐ, ์ด ๋ ๊ฐ ์๋ธ๋ท์ด ์๋ VPC ๋คํธ์ํฌ๊ฐ ํ์ํฉ๋๋ค. ๋ฆฌ์ ๋ด๋ถ ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๋ฆฌ์ ๊ธฐ์ค์ ๋๋ค. ํธ๋ํฝ ์์ค๊ฐ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋์ผํ ๋ฆฌ์ ์ ์๋ธ๋ท์ ์๋ ๊ฒฝ์ฐ VPC ๋คํธ์ํฌ ๋ด์ ํธ๋ํฝ์ด ๋ถํ ๋ถ์ฐ๊ธฐ๋ก ๋ผ์ฐํ ๋ฉ๋๋ค.
์ด ์์์์๋ ๋ค์ VPC ๋คํธ์ํฌ, ๋ฆฌ์ ๋ฐ ์๋ธ๋ท์ ์ฌ์ฉํฉ๋๋ค.
๋คํธ์ํฌ. ๋คํธ์ํฌ๋ ์ปค์คํ ๋ชจ๋ VPC ๋คํธ์ํฌ์ด๋ฉฐ ์ด๋ฆ์
lb-network
์ ๋๋ค.๋ฐฑ์๋ ์๋ธ๋ท.
REGION_A
๋ฆฌ์ ์ ์๋backend-subnet
์ด๋ผ๋ ์ด๋ฆ์ ์๋ธ๋ท์ ๊ธฐ๋ณธ IP ๋ฒ์๋ก10.1.2.0/24
๋ฅผ ์ฌ์ฉํฉ๋๋ค.ํ๋ก์ ์๋ธ๋ท:
REGION_A
๋ฆฌ์ ์ ์๋proxy-only-subnet
์ด๋ผ๋ ์ด๋ฆ์ ์๋ธ๋ท์ ๊ธฐ๋ณธ IP ๋ฒ์๋ก10.129.0.0/23
์ ์ฌ์ฉํฉ๋๋ค.
์ ์ญ ์ก์ธ์ค๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ด ์์์์๋ ๋ค๋ฅธ ๋ฆฌ์ (REGION_B)๊ณผ ๊ธฐ๋ณธ IP ์ฃผ์๊ฐ 10.3.4.0/24
์ธ ์๋ธ๋ท์ ๋ ๋ฒ์งธ ํ
์คํธ ํด๋ผ์ด์ธํธ VM์ ๋ง๋ญ๋๋ค.
๋คํธ์ํฌ ๋ฐ ์๋ธ๋ท ๋ง๋ค๊ธฐ
์ฝ์
Google Cloud ์ฝ์์์ VPC ๋คํธ์ํฌ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
VPC ๋คํธ์ํฌ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ด๋ฆ์
lb-network
๋ฅผ ์ ๋ ฅํฉ๋๋ค.์๋ธ๋ท ์น์ ์์ ์๋ธ๋ท ์์ฑ ๋ชจ๋๋ฅผ ์ปค์คํ ์ผ๋ก ์ค์ ํฉ๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋์ ๋ํ ์๋ธ๋ท์ ๋ง๋ญ๋๋ค. ์ ์๋ธ๋ท ์น์ ์ ๋ค์ ์ ๋ณด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ์ด๋ฆ:
backend-subnet
- ๋ฆฌ์ :
REGION_A
- IP ์ฃผ์ ๋ฒ์:
10.1.2.0/24
- ์ด๋ฆ:
์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์๋ธ๋ท ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ์ญ ์ก์ธ์ค๋ฅผ ๋ณด์ฌ์ฃผ๋ ์๋ธ๋ท์ ๋ง๋ญ๋๋ค. ์ ์๋ธ๋ท ์น์ ์ ๋ค์ ์ ๋ณด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ์ด๋ฆ:
test-global-access-subnet
- ๋ฆฌ์ :
REGION_B
- IP ์ฃผ์ ๋ฒ์:
10.3.4.0/24
- ์ด๋ฆ:
์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
gcloud compute networks create
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ปค์คํ VPC ๋คํธ์ํฌ๋ฅผ ๋ง๋ญ๋๋ค.gcloud compute networks create lb-network --subnet-mode=custom
gcloud compute networks subnets create
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌREGION_A
๋ฆฌ์ ์lb-network
๋คํธ์ํฌ์ ์๋ธ๋ท์ ๋ง๋ญ๋๋ค.gcloud compute networks subnets create backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=REGION_A
REGION_A์ ๋์ Google Cloud ๋ฆฌ์ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
gcloud compute networks subnets create
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌREGION_B
๋ฆฌ์ ์lb-network
๋คํธ์ํฌ์ ์๋ธ๋ท์ ๋ง๋ญ๋๋ค.gcloud compute networks subnets create test-global-access-subnet \ --network=lb-network \ --range=10.3.4.0/24 \ --region=REGION_B
REGION_B๋ฅผ ์ ์ญ ์ก์ธ์ค๋ฅผ ํ ์คํธํ๊ธฐ ์ํด ๋ ๋ฒ์งธ ์๋ธ๋ท์ ๋ง๋ค๋ ค๋ Google Cloud ๋ฆฌ์ ์ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
ํ๋ก์ ์ ์ฉ ์๋ธ๋ท ๋ง๋ค๊ธฐ
ํ๋ก์ ์ ์ฉ ์๋ธ๋ท์ Google์ด ์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ Envoy ํ๋ก์๋ฅผ ์คํํ๋ ๋ฐ ์ฌ์ฉํ๋ IP ์ฃผ์ ์งํฉ์ ์ ๊ณตํฉ๋๋ค. ํ๋ก์๋ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ณ ๋ฐฑ์๋์ ์ ์ฐ๊ฒฐ์ ๋ง๋ญ๋๋ค.
์ด ํ๋ก์ ์ ์ฉ ์๋ธ๋ท์ lb-network
VPC ๋คํธ์ํฌ์ REGION_A
๋ฆฌ์ ์ ์๋ ๋ชจ๋ Envoy ๊ธฐ๋ฐ ๋ถํ ๋ถ์ฐ๊ธฐ์์ ์ฌ์ฉ๋ฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋์ค์ ๋ถํ ๋ถ์ฐ ํ์ด์ง์์ ํ๋ก์ ์ ์ฉ ์๋ธ๋ท์ ๋ง๋ค ์ ์์ต๋๋ค.
์ง๊ธ ํ๋ก์ ์ ์ฉ ์๋ธ๋ท์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- Google Cloud ์ฝ์์์ VPC ๋คํธ์ํฌ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
VPC ๋คํธ์ํฌ๋ก ์ด๋ - ๊ณต์ VPC ๋คํธ์ํฌ์ ์ด๋ฆ์ธ
lb-network
๋ฅผ ํด๋ฆญํฉ๋๋ค. - ์๋ธ๋ท ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์
proxy-only-subnet
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๋ฆฌ์ ์์
REGION_A
์ ์ ํํฉ๋๋ค. - ์ฉ๋๋ฅผ ๋ฆฌ์ ๋ณ ๊ด๋ฆฌํ ํ๋ก์๋ก ์ค์ ํฉ๋๋ค.
- IP ์ฃผ์ ๋ฒ์์
10.129.0.0/23
์ ์ ๋ ฅํฉ๋๋ค. - ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
gcloud compute networks subnets
create
๋ช
๋ น์ด๋ก ํ๋ก์ ์ ์ฉ ์๋ธ๋ท์ ๋ง๋ญ๋๋ค.
gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION_A \ --network=lb-network \ --range=10.129.0.0/23
๋ฐฉํ๋ฒฝ ๊ท์น ๋ง๋ค๊ธฐ
์ด ์์์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ํ์ํฉ๋๋ค.
fw-allow-ssh
. ๋ถํ ๋ถ์ฐ๋๋ ์ธ์คํด์ค์ ์ ์ฉ๋๋ ์ธ๊ทธ๋ ์ค ๊ท์น์ผ๋ก TCP ํฌํธ22
์ ์์์ ์ฃผ์๋ก๋ถํฐ ์์ ๋๋ SSH ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค. ์ด ๊ท์น์ ๋ ์ ํ์ ์ธ ์์ค IP ๋ฒ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด SSH ์ธ์ ์ ์์ํ ์์คํ ์ IP ๋ฒ์๋ง ์ง์ ํ ์๋ ์์ต๋๋ค. ์ด ์์์์๋ ๋์ ํ๊ทธallow-ssh
๋ฅผ ์ฌ์ฉํฉ๋๋ค.fw-allow-health-check
. ๋ถํ ๋ถ์ฐ๋๋ ์ธ์คํด์ค์ ์ ์ฉ๋๋ ์ธ๊ทธ๋ ์ค ๊ท์น์ผ๋ก,130.211.0.0/22
๋ฐ35.191.0.0/16
์์ Google Cloud์ํ ํ์ธ ์์คํ ์ ๋ชจ๋ TCP ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค. ์ด ์์์์๋ ๋์ ํ๊ทธallow-health-check
๋ฅผ ์ฌ์ฉํฉ๋๋ค.fw-allow-proxy-only-subnet
. ํ๋ก์ ์ ์ฉ ์๋ธ๋ท์ ์ฐ๊ฒฐ์ด ๋ฐฑ์๋์ ๋๋ฌํ๋๋ก ํ์ฉํ๋ ์ธ๊ทธ๋ ์ค ๊ท์น์ ๋๋ค.
์ด๋ฌํ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์์ผ๋ฉด ๊ธฐ๋ณธ ๊ฑฐ๋ถ ์ธ๊ทธ๋ ์ค ๊ท์น์ ๋ฐฑ์๋ ์ธ์คํด์ค๋ก ๋ค์ด์ค๋ ํธ๋ํฝ์ ์ฐจ๋จํฉ๋๋ค.
๋์ ํ๊ทธ๋ ๋ฐฑ์๋ ์ธ์คํด์ค๋ฅผ ์ ์ํฉ๋๋ค. ๋์ ํ๊ทธ๊ฐ ์์ผ๋ฉด VPC ๋คํธ์ํฌ์ ๋ชจ๋ ๋ฐฑ์๋ ์ธ์คํด์ค์ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋ฉ๋๋ค. ๋ฐฑ์๋ VM์ ๋ง๋ค ๋๋ ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน ๋ง๋ค๊ธฐ์ ๋์จ ๋๋ก ์ง์ ๋ ๋์ ํ๊ทธ๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
์ฝ์
- Google Cloud ์ฝ์์์ ๋ฐฉํ๋ฒฝ ์ ์ฑ
ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ์ ์ฑ ์ผ๋ก ์ด๋ - ๋ฐฉํ๋ฒฝ ๊ท์น ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ์์ SSH ์ฐ๊ฒฐ์ ํ์ฉํ๋ ๊ท์น์ ๋ง๋ญ๋๋ค.
- ์ด๋ฆ:
fw-allow-ssh
- ๋คํธ์ํฌ:
lb-network
- ํธ๋ํฝ ๋ฐฉํฅ: ์ธ๊ทธ๋ ์ค
- ์ผ์น ์ ์์ : ํ์ฉ
- ๋์: ์ง์ ๋ ๋์ ํ๊ทธ
- ๋์ ํ๊ทธ:
allow-ssh
- ์์ค ํํฐ: IPv4 ๋ฒ์
- ์์ค IPv4 ๋ฒ์:
0.0.0.0/0
- ํ๋กํ ์ฝ ๋ฐ ํฌํธ:
- ์ง์ ๋ ํ๋กํ ์ฝ ๋ฐ ํฌํธ๋ฅผ ์ ํํฉ๋๋ค.
- TCP ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ ํ ํฌํธ ๋ฒํธ์
22
์ ์ ๋ ฅํฉ๋๋ค.
- ์ด๋ฆ:
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฉํ๋ฒฝ ๊ท์น ๋ง๋ค๊ธฐ๋ฅผ ๋ค์ ํ ๋ฒ ํด๋ฆญํ์ฌGoogle Cloud ์ํ ํ์ธ์ ํ์ฉํ๋ ๊ท์น์ ๋ง๋ญ๋๋ค.
- ์ด๋ฆ:
fw-allow-health-check
- ๋คํธ์ํฌ:
lb-network
- ํธ๋ํฝ ๋ฐฉํฅ: ์ธ๊ทธ๋ ์ค
- ์ผ์น ์ ์์ : ํ์ฉ
- ๋์: ์ง์ ๋ ๋์ ํ๊ทธ
- ๋์ ํ๊ทธ:
allow-health-check
- ์์ค ํํฐ: IPv4 ๋ฒ์
- ์์ค IPv4 ๋ฒ์:
130.211.0.0/22
๋ฐ35.191.0.0/16
- ํ๋กํ ์ฝ ๋ฐ ํฌํธ:
- ์ง์ ๋ ํ๋กํ ์ฝ ๋ฐ ํฌํธ๋ฅผ ์ ํํฉ๋๋ค.
- TCP ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ ํ ํฌํธ ๋ฒํธ์
80
์ ์ ๋ ฅํฉ๋๋ค.
๊ถ์ฅ์ฌํญ์ ๋ฐ๋ผ์ ์ํ ํ์ธ์ ์ฌ์ฉ๋๋ ๊ฒ๊ณผ ์ผ์นํ๋ ํ๋กํ ์ฝ ๋ฐ ํฌํธ๋ก ์ด๋ฌํ ๊ท์น์ ์ ํํฉ๋๋ค. ํ๋กํ ์ฝ ๋ฐ ํฌํธ์tcp:80
์ ์ฌ์ฉํ๋ฉด Google Cloud ๊ฐ ํฌํธ80
์์ HTTP๋ฅผ ์ฌ์ฉํ์ฌ VM์ ์ฐ๊ฒฐํ ์ ์์ง๋ง ํฌํธ443
์์ HTTPS๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ ์๋ ์์ต๋๋ค.
- ์ด๋ฆ:
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฉํ๋ฒฝ ๊ท์น ๋ง๋ค๊ธฐ๋ฅผ ์ธ ๋ฒ์งธ๋ก ํด๋ฆญํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ํ๋ก์ ์๋ฒ๋ฅผ ๋ฐฑ์๋์ ์ฐ๊ฒฐํ๋๋ก ํ์ฉํ๋ ๊ท์น์ ๋ง๋ญ๋๋ค.
- ์ด๋ฆ:
fw-allow-proxy-only-subnet
- ๋คํธ์ํฌ:
lb-network
- ํธ๋ํฝ ๋ฐฉํฅ: ์ธ๊ทธ๋ ์ค
- ์ผ์น ์ ์์ : ํ์ฉ
- ๋์: ์ง์ ๋ ๋์ ํ๊ทธ
- ๋์ ํ๊ทธ:
allow-proxy-only-subnet
- ์์ค ํํฐ: IPv4 ๋ฒ์
- ์์ค IPv4 ๋ฒ์:
10.129.0.0/23
- ํ๋กํ ์ฝ ๋ฐ ํฌํธ:
- ์ง์ ๋ ํ๋กํ ์ฝ ๋ฐ ํฌํธ๋ฅผ ์ ํํฉ๋๋ค.
- TCP ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ ๋ค์ ํฌํธ ๋ฒํธ๋ก
80
์ ์ ๋ ฅํฉ๋๋ค.
- ์ด๋ฆ:
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
allow-ssh
๋คํธ์ํฌ ํ๊ทธ๋ฅผ ์ฌ์ฉํด VM์ผ๋ก ๊ฐ๋ SSH ์ฐ๊ฒฐ์ ํ์ฉํ๋fw-allow-ssh
๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค.source-ranges
๋ฅผ ์๋ตํ๋ฉดGoogle Cloud ๊ฐ ๋ชจ๋ ์์ค๋ฅผ ์๋ฏธํ๋ ๊ฒ์ผ๋ก ๊ท์น์ ํด์ํฉ๋๋ค.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Google Cloud์ํ ํ์ธ์ ํ์ฉํ๋
fw-allow-health-check
๊ท์น์ ๋ง๋ญ๋๋ค. ์ด ์์์์๋ ์ํ ํ์ธ ํ๋ก๋ฒ์ ๋ชจ๋ TCP ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ์์ ๋ฐ๋ผ ๋ ์ข์ ํฌํธ ์งํฉ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80
๋ฆฌ์ ์ Envoy ํ๋ก์๊ฐ ๋ฐฑ์๋์ ์ฐ๊ฒฐํ๋๋ก ํ์ฉํ๋
fw-allow-proxy-only-subnet
๊ท์น์ ๋ง๋ญ๋๋ค.--source-ranges
๋ฅผ ํ๋ก์ ์ ์ฉ ์๋ธ๋ท์ ํ ๋น๋ ๋ฒ์๋ก ์ค์ ํฉ๋๋ค(์:10.129.0.0/23
).gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=allow-proxy-only-subnet \ --rules=tcp:80
๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์ ์์ฝ
๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ณ ์ ๋ด๋ถ IP ์ฃผ์๋ฅผ ์์ฝํ๋ ค๋ฉด ์ ๊ณ ์ ๋ด๋ถ IPv4 ๋๋ IPv6 ์ฃผ์ ์์ฝ์ ์ฐธ์กฐํ์ธ์.
๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน ๋ง๋ค๊ธฐ
์ด ์น์
์์๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ REGION_A
๋ฆฌ์ ์ 2๊ฐ์ ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน(MIG) ๋ฐฑ์๋๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. MIG๋ ์ด ์์ ๋ฆฌ์ ๋ด๋ถ ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ Apache ์๋ฒ๋ฅผ ์คํํ๋ VM ์ธ์คํด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฆฌ์ ๋ด๋ถ ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ HTTP ํธ๋ํฝ์ ์ฌ์ฉ๋์ง ์์ง๋ง Apache ์ํํธ์จ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ํ
์คํธ์ฉ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์ฝ์
์ธ์คํด์ค ํ ํ๋ฆฟ์ ๋ง๋ญ๋๋ค. Google Cloud ์ฝ์์์ ์ธ์คํด์ค ํ ํ๋ฆฟ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ธ์คํด์ค ํ ํ๋ฆฟ์ผ๋ก ์ด๋
- ์ธ์คํด์ค ํ ํ๋ฆฟ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์
int-tcp-proxy-backend-template
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๋ถํ
๋์คํฌ๊ฐ Debian GNU/Linux 12(bookworm)์ ๊ฐ์ Debian ์ด๋ฏธ์ง๋ก ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค. ์ด ์๋ด์์๋
apt-get
์ฒ๋ผ Debian์์๋ง ์ฌ์ฉํ ์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. - ๊ณ ๊ธ ์ต์ ์ ํด๋ฆญํฉ๋๋ค.
- ๋คํธ์ํน์ ํด๋ฆญํ๊ณ ๋ค์ ํ๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ๋คํธ์ํฌ ํ๊ทธ์
allow-ssh
,allow-health-check
,allow-proxy-only-subnet
์ ์ ๋ ฅํฉ๋๋ค. - ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ค์์ ์ ํํฉ๋๋ค.
- ๋คํธ์ํฌ:
lb-network
- ์๋ธ๋ท:
backend-subnet
- ๋คํธ์ํฌ:
- ๋คํธ์ํฌ ํ๊ทธ์
๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค. ์์ ์คํฌ๋ฆฝํธ ํ๋์ ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
#! /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 ์ฝ์์์ ์ธ์คํด์ค ๊ทธ๋ฃน ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ธ์คํด์ค ๊ทธ๋ฃน์ผ๋ก ์ด๋
- ์ธ์คํด์ค ๊ทธ๋ฃน ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน(์คํ ์ดํธ๋ฆฌ์ค(Stateless))์ ์ ํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์คํ ์ดํธ๋ฆฌ์ค(Stateless) ๋๋ ์คํ ์ดํธํ(Stateful) MIG๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ด๋ฆ์
mig-a
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ์์น์์ ๋จ์ผ ์์ญ์ ์ ํํฉ๋๋ค.
- ๋ฆฌ์ ์์
REGION_A
์ ์ ํํฉ๋๋ค. - ์์ญ์์
ZONE_A1
๋ฅผ ์ ํํฉ๋๋ค. - ์ธ์คํด์ค ํ
ํ๋ฆฟ์์
int-tcp-proxy-backend-template
์ ์ ํํฉ๋๋ค. ๊ทธ๋ฃน์ ๋ง๋ค ์ธ์คํด์ค์ ์๋ฅผ ์ง์ ํฉ๋๋ค.
์ด ์์์์๋ ์๋ ํ์ฅ์์ ๋ค์ ์ต์ ์ ์ง์ ํฉ๋๋ค.
- ์๋ ํ์ฅ ๋ชจ๋์์
Off:do not autoscale
์ ์ ํํฉ๋๋ค. - ์ต๋ ์ธ์คํด์ค ์์
2
๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ์๋ ํ์ฅ ๋ชจ๋์์
ํฌํธ ๋งคํ์์ ํฌํธ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ํฌํธ ์ด๋ฆ์
tcp80
์ ์ ๋ ฅํฉ๋๋ค. - ํฌํธ ๋ฒํธ์
80
์ ์ ๋ ฅํฉ๋๋ค.
- ํฌํธ ์ด๋ฆ์
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
2๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ์ฌ ๋ค์ ์ค์ ์ผ๋ก ๋ ๋ฒ์งธ ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค.
- ์ด๋ฆ:
mig-c
- ์์ญ:
ZONE_A2
๋ค๋ฅธ ๋ชจ๋ ์ค์ ์ ๋์ผํ๊ฒ ์ ์งํฉ๋๋ค.
- ์ด๋ฆ:
gcloud
์ด ๊ฐ์ด๋์ gcloud
์๋ด์์๋ Cloud Shell ๋๋ bash๊ฐ ์ค์น๋ ๋ค๋ฅธ ํ๊ฒฝ์ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
gcloud compute instance-templates create
๋ช ๋ น์ด๋ก HTTP ์๋ฒ๊ฐ ํฌํจ๋ VM ์ธ์คํด์ค ํ ํ๋ฆฟ์ ๋ง๋ญ๋๋ค.gcloud compute instance-templates create int-tcp-proxy-backend-template \ --region=REGION_A \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --image-family=debian-12 \ --image-project=debian-cloud \ --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'
ZONE_A1
์์ญ์ ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค.gcloud compute instance-groups managed create mig-a \ --zone=ZONE_A1 \ --size=2 \ --template=int-tcp-proxy-backend-template
ZONE_A1์ ๋์ Google Cloud ๋ฆฌ์ ์ ์์ญ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
ZONE_A2
์์ญ์ ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค.gcloud compute instance-groups managed create mig-c \ --zone=ZONE_A2 \ --size=2 \ --template=int-tcp-proxy-backend-template
ZONE_A2๋ฅผ ๋์ Google Cloud ๋ฆฌ์ ์ ๋ค๋ฅธ ์์ญ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ
์ฝ์
๊ตฌ์ฑ ์์
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ์ ํ์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ(TCP/UDP/SSL)๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ํ๋ก์ ๋๋ ํจ์ค ์ค๋ฃจ์ ํ๋ก์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๊ณต๊ฐ ๋๋ ๋ด๋ถ์ ๋ด๋ถ๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๋ฆฌ์ ๊ฐ ๋๋ ๋จ์ผ ๋ฆฌ์ ๋ฐฐํฌ์ ๋ฆฌ์ ์ํฌ๋ก๋์ ์ ํฉ์ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
๊ธฐ๋ณธ ๊ตฌ์ฑ
- ์ด๋ฆ์
my-int-tcp-lb
์ ์ ๋ ฅํฉ๋๋ค. - ๋ฆฌ์ ์์
REGION_A
์ ์ ํํฉ๋๋ค. - ๋คํธ์ํฌ์์
lb-network
๋ฅผ ์ ํํฉ๋๋ค.
ํ๋ก์ ์ ์ฉ ์๋ธ๋ท ์์ฝ
ํ๋ก์ ์ ์ฉ ์๋ธ๋ท์ ์์ฝํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์๋ธ๋ท ์์ฝ์ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์
proxy-only-subnet
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - IP ์ฃผ์ ๋ฒ์์
10.129.0.0/23
์ ์ ๋ ฅํฉ๋๋ค. - ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ฐฑ์๋ ๊ตฌ์ฑ
- ๋ฐฑ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฑ์๋ ์ ํ์์ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ ํํฉ๋๋ค.
- ํ๋กํ ์ฝ์์ TCP๋ฅผ ์ ํํฉ๋๋ค.
- ์ด๋ฆ์ด ์ง์ ๋ ํฌํธ์
tcp80
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ์ฒซ ๋ฒ์งธ ๋ฐฑ์๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ์ ๋ฐฑ์๋์์ ์ธ์คํด์ค ๊ทธ๋ฃน
mig-a
์ ์ ํํฉ๋๋ค. - ํฌํธ ๋ฒํธ์
80
์ ์ ๋ ฅํฉ๋๋ค. - ๋จ์ ๊ธฐ๋ณธ๊ฐ์ ๊ทธ๋๋ก ๋๊ณ ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ๋ฐฑ์๋์์ ์ธ์คํด์ค ๊ทธ๋ฃน
- ๋ ๋ฒ์งธ ๋ฐฑ์๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ๋ฐฑ์๋ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ๋ฐฑ์๋์์ ์ธ์คํด์ค ๊ทธ๋ฃน
mig-c
์ ์ ํํฉ๋๋ค. - ํฌํธ ๋ฒํธ์
80
์ ์ ๋ ฅํฉ๋๋ค. - ๋จ์ ๊ธฐ๋ณธ๊ฐ์ ๊ทธ๋๋ก ๋๊ณ ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ํ ํ์ธ์ ๊ตฌ์ฑํฉ๋๋ค.
- ์ํ ํ์ธ์์ ์ํ ํ์ธ ๋ง๋ค๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
- ์ํ ํ์ธ ์ด๋ฆ์
tcp-health-check
๋ก ์ค์ ํฉ๋๋ค. - ํ๋กํ ์ฝ์์ TCP๋ฅผ ์ ํํฉ๋๋ค.
- ํฌํธ๋ฅผ
80
์ผ๋ก ์ค์ ํฉ๋๋ค.
- ๋จ์ ๊ธฐ๋ณธ๊ฐ์ ๊ทธ๋๋ก ๋๊ณ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
- Google Cloud ์ฝ์์์ ๋ฐฑ์๋ ๊ตฌ์ฑ ์์ ์ฒดํฌํ์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์์ผ๋ฉด ๋ชจ๋ ๋จ๊ณ๋ฅผ ์๋ฃํ๋์ง ๋ค์ ํ์ธํฉ๋๋ค.
ํ๋ฐํธ์๋ ๊ตฌ์ฑ
- ํ๋ฐํธ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์
int-tcp-forwarding-rule
์ ์ ๋ ฅํฉ๋๋ค. - ์๋ธ๋คํธ์ํฌ์์ backend-subnet์ ์ ํํฉ๋๋ค.
- IP ์ฃผ์์์ ์ด์ ์ ์์ฝํ IP ์ฃผ์๋ฅผ ์ ํํฉ๋๋ค. LB_IP_ADDRESS
- ํฌํธ ๋ฒํธ์
110
์ ์ ๋ ฅํฉ๋๋ค. ์ ๋ฌ ๊ท์น์ ๋์ ํฌํธ๊ฐ ์ผ์นํ๋ ํจํท๋ง ์ ๋ฌํฉ๋๋ค. - ์ด ์์์์๋ ํ๋ก์ ํ๋กํ ์ฝ์ด Apache HTTP ์๋ฒ ์ํํธ์จ์ด์์ ์๋ํ์ง ์์ผ๋ฏ๋ก ํ๋ก์ ํ๋กํ ์ฝ์ ์ฌ์ฉ ์ค์ ํ์ง ๋ง์ธ์. ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํ๋กํ ์ฝ์ ์ฐธ์กฐํ์ธ์.
- ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- Google Cloud ์ฝ์์์ ํ๋ฐํธ์๋ ๊ตฌ์ฑ ์์ ์ฒดํฌํ์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์์ผ๋ฉด ์ด์ ๋จ๊ณ๋ฅผ ๋ชจ๋ ์๋ฃํ๋์ง ๋ค์ ํ์ธํฉ๋๋ค.
๊ฒํ ๋ฐ ์๋ฃ
- ๊ฒํ ๋ฐ ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ ์ค์ ์ ๊ฒํ ํฉ๋๋ค.
- ์ ํ์ฌํญ: ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋๋ REST API ์์ฒญ์ ๋ณด๋ ค๋ฉด ์์ํ๋ ์ฝ๋๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
๋ฆฌ์ ์ํ ํ์ธ์ ๋ง๋ญ๋๋ค.
gcloud compute health-checks create tcp tcp-health-check \ --region=REGION_A \ --use-serving-port
๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ง๋ญ๋๋ค.
gcloud compute backend-services create internal-tcp-proxy-bs \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --region=REGION_A \ --health-checks=tcp-health-check \ --health-checks-region=REGION_A
๋ฐฑ์๋ ์๋น์ค์ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐํฉ๋๋ค.
gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-a \ --instance-group-zone=ZONE_A1 \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-c \ --instance-group-zone=ZONE_A2 \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
๋ด๋ถ ๋์ TCP ํ๋ก์๋ฅผ ๋ง๋ญ๋๋ค.
gcloud compute target-tcp-proxies create int-tcp-target-proxy \ --backend-service=internal-tcp-proxy-bs \ --proxy-header=NONE \ --region=REGION_A
ํ๋ก์ ํค๋๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด
NONE
๋์PROXY_V1
๋ก ์ค์ ํฉ๋๋ค. ์ด ์์์์๋ ํ๋ก์ ํ๋กํ ์ฝ์ด Apache HTTP ์๋ฒ ์ํํธ์จ์ด์์ ์๋ํ์ง ์์ผ๋ฏ๋ก ํ๋ก์ ํ๋กํ ์ฝ์ ์ฌ์ฉ ์ค์ ํ์ง ๋ง์ธ์. ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํ๋กํ ์ฝ์ ์ฐธ์กฐํ์ธ์.์ ๋ฌ ๊ท์น์ ๋ง๋ญ๋๋ค.
--ports
์ ๊ฒฝ์ฐ 1~65535์์ ๋จ์ผ ํฌํธ ๋ฒํธ๋ฅผ ์ง์ ํฉ๋๋ค. ์ด ์์์์๋ ํฌํธ110
์ ์ฌ์ฉํฉ๋๋ค. ์ ๋ฌ ๊ท์น์ ๋์ ํฌํธ๊ฐ ์ผ์นํ๋ ํจํท๋ง ์ ๋ฌํฉ๋๋ค.gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=int-tcp-ip-address \ --ports=110
๋ถํ ๋ถ์ฐ๊ธฐ ํ ์คํธ
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํ ์คํธํ๋ ค๋ฉด ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋์ผํ ๋ฆฌ์ ์ ํด๋ผ์ด์ธํธ VM์ ๋ง๋ญ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋ผ์ด์ธํธ์์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ก ํธ๋ํฝ์ ์ ์กํฉ๋๋ค.
ํด๋ผ์ด์ธํธ VM ๋ง๋ค๊ธฐ
๋ถํ ๋ถ์ฐ๊ธฐ์ ๋์ผํ ๋ฆฌ์ ์์ ํด๋ผ์ด์ธํธ VM(client-vm
)์ ๋ง๋ญ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ VM ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ธ์คํด์ค ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ด๋ฆ์
client-vm
์ผ๋ก ์ค์ ํฉ๋๋ค.์์ญ์
ZONE_A1
๋ก ์ค์ ํฉ๋๋ค.๊ณ ๊ธ ์ต์ ์ ํด๋ฆญํฉ๋๋ค.
๋คํธ์ํน์ ํด๋ฆญํ๊ณ ๋ค์ ํ๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ๋คํธ์ํฌ ํ๊ทธ์
allow-ssh
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ค์์ ์ ํํฉ๋๋ค.
- ๋คํธ์ํฌ:
lb-network
- ์๋ธ๋ท:
backend-subnet
- ๋คํธ์ํฌ:
- ๋คํธ์ํฌ ํ๊ทธ์
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
ํด๋ผ์ด์ธํธ VM์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋์ผํ VPC ๋คํธ์ํฌ ๋ฐ ๋ฆฌ์ ์ ์์ด์ผ ํฉ๋๋ค. ๋์ผํ ์๋ธ๋ท ๋๋ ์์ญ์๋ ์์ง ์์๋ ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ๋ฐฑ์๋ VM๊ณผ ๋์ผํ ์๋ธ๋ท์ ์ฌ์ฉํฉ๋๋ค.
gcloud compute instances create client-vm \ --zone=ZONE_A1 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=backend-subnet
๋ถํ ๋ถ์ฐ๊ธฐ๋ก ํธ๋ํฝ ์ ์ก
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ตฌ์ฑํ์ผ๋ฏ๋ก ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ก ํธ๋ํฝ ์ ์ก์ ํ ์คํธํ ์ ์์ต๋๋ค.
SSH๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
gcloud compute ssh client-vm \ --zone=ZONE_A1
๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ๋ฐฑ์๋ ํธ์คํธ ์ด๋ฆ์ ์ ์์ ์ผ๋ก ์ ๊ณตํ๊ณ ์๋์ง ํ์ธํฉ๋๋ค.
compute addresses describe
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ํ์ธํฉ๋๋ค.gcloud compute addresses describe int-tcp-ip-address \ --region=REGION_A
IP ์ฃผ์๋ฅผ ๊ธฐ๋กํด ๋ก๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ๋ก ํธ๋ํฝ ์ ์ก IP_ADDRESS๋ฅผ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ก ๋ฐ๊ฟ๋๋ค.
curl IP_ADDRESS:110
์ถ๊ฐ ๊ตฌ์ฑ ์ต์
์ด ์น์ ์์๋ ๋์ฒด ๋ฐ ์ถ๊ฐ ๊ตฌ์ฑ ์ต์ ์ ์ ๊ณตํ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ดํด๋ด ๋๋ค. ๋ชจ๋ ์์ ์ ์ ํ์ฌํญ์ ๋๋ค. ์ํ๋ ์์๋๋ก ์ํํ ์ ์์ต๋๋ค.
์ ์ญ ์ก์ธ์ค ์ฌ์ฉ ์ค์
๋ถํ ๋ถ์ฐ๊ธฐ์ ์ ์ญ ์ก์ธ์ค๋ฅผ ์ฌ์ฉ ์ค์ ํ์ฌ ๋ชจ๋ ๋ฆฌ์ ์ ํด๋ผ์ด์ธํธ๊ฐ ์ก์ธ์คํ ์ ์๊ฒ ํ ์ ์์ต๋๋ค. ์์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋๋ ๊ณ์ ๋ฆฌ์ ํ๋(REGION_A
)์ ์์ด์ผ ํฉ๋๋ค.
์ ์ญ ์ก์ธ์ค๋ฅผ ์ฌ์ฉ ์ค์ ํ๊ธฐ ์ํด ๊ธฐ์กด ๋ฆฌ์ ์ ๋ฌ ๊ท์น์ ์์ ํ ์ ์์ต๋๋ค. ์ด ์ฉ๋์ ์ ์ ๋ฌ ๊ท์น์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๋ํ ์ ์ญ ์ก์ธ์ค๊ฐ ์ฌ์ฉ ์ค์ ๋ ์ ๋ฌ ๊ท์น์ ๋ง๋ ํ์๋ ์ด ๊ท์น์ ์์ ํ ์ ์์ต๋๋ค. ์ ์ญ ์ก์ธ์ค๋ฅผ ์ค์งํ๋ ค๋ฉด ์ ๋ฆฌ์ ์ก์ธ์ค ์ ๋ฌ ๊ท์น์ ๋ง๋ค๊ณ ์ด์ ์ ์ญ ์ก์ธ์ค ์ ๋ฌ ๊ท์น์ ์ญ์ ํด์ผ ํฉ๋๋ค.
์ ์ญ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ์ ๋ณ๊ฒฝํฉ๋๋ค.
์ฝ์
๋ถํ ๋ถ์ฐ๊ธฐ์ ์๋ก์ด ์ ๋ฌ ๊ท์น์ ๋ง๋ญ๋๋ค.
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ด๋ฆ ์ด์์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ๋ฐํธ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
ํ๋ฐํธ์๋ IP ๋ฐ ํฌํธ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ์ ๋ฌ ๊ท์น์ ์ด๋ฆ๊ณผ ์๋ธ๋ท ์ธ๋ถ์ ๋ณด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
์๋ธ๋คํธ์ํฌ์์ backend-subnet์ ์ ํํฉ๋๋ค.
IP ์ฃผ์์์ ๊ธฐ์กด ์ ๋ฌ ๊ท์น๊ณผ ๋์ผํ IP ์ฃผ์๋ฅผ ์ ํํ๊ฑฐ๋ ์ IP ์ฃผ์๋ฅผ ์์ฝํ๊ฑฐ๋ ์์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. IP ์ฃผ์๋ฅผ ๋ง๋๋ ๋์ IP ์ฃผ์
--purpose
ํ๋๊ทธ๋ฅผSHARED_LOADBALANCER_VIP
๋ก ์ค์ ํ ๊ฒฝ์ฐ์๋ง ์ฌ๋ฌ ์ ๋ฌ ๊ท์น์์ ๋์ผํ IP ์ฃผ์๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.ํฌํธ ๋ฒํธ์
110
์ ์ ๋ ฅํฉ๋๋ค.์ ์ญ ์ก์ธ์ค์ ์ฌ์ฉ ์ค์ ์ ์ ํํฉ๋๋ค.
์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ๋ฐ์ดํธ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
--allow-global-access
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ ์ ๋ฌ ๊ท์น์ ๋ง๋ญ๋๋ค.gcloud compute forwarding-rules create int-tcp-forwarding-rule-global-access \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=int-tcp-ip-address \ --ports=110 \ --allow-global-access
gcloud compute forwarding-rules describe
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฌ ๊ท์น์ ์ ์ญ ์ก์ธ์ค๊ฐ ์ฌ์ฉ ์ค์ ๋์ด ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.gcloud compute forwarding-rules describe int-tcp-forwarding-rule-global-access \ --region=REGION_A \ --format="get(name,region,allowGlobalAccess)"
์ ์ญ ์ก์ธ์ค๊ฐ ์ฌ์ฉ ์ค์ ๋๋ฉด ์ถ๋ ฅ์์ ์ ๋ฌ ๊ท์น์ ์ด๋ฆ๊ณผ ๋ฆฌ์ ๋ค์
True
๋จ์ด๊ฐ ํ์๋ฉ๋๋ค.
์ ์ญ ์ก์ธ์ค๋ฅผ ํ ์คํธํ๋๋ก ํด๋ผ์ด์ธํธ VM ๋ง๋ค๊ธฐ
์ฝ์
Google Cloud ์ฝ์์์ VM ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ธ์คํด์ค ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ด๋ฆ์
test-global-access-vm
์ผ๋ก ์ค์ ํฉ๋๋ค.์์ญ์
ZONE_B1
๋ก ์ค์ ํฉ๋๋ค.๊ณ ๊ธ ์ต์ ์ ํด๋ฆญํฉ๋๋ค.
๋คํธ์ํน์ ํด๋ฆญํ๊ณ ๋ค์ ํ๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ๋คํธ์ํฌ ํ๊ทธ์
allow-ssh
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ค์์ ์ ํํฉ๋๋ค.
- ๋คํธ์ํฌ:
lb-network
- ์๋ธ๋ท:
test-global-access-subnet
- ๋คํธ์ํฌ:
- ๋คํธ์ํฌ ํ๊ทธ์
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
ZONE_B1
์์ญ์ ํด๋ผ์ด์ธํธ VM์ ๋ง๋ญ๋๋ค.
gcloud compute instances create test-global-access-vm \ --zone=ZONE_B1 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=test-global-access-subnet
ZONE_B1์ REGION_B ๋ฆฌ์ ์ ์์ญ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
ํด๋ผ์ด์ธํธ VM์ ์ฐ๊ฒฐ ๋ฐ ์ฐ๊ฒฐ ํ ์คํธ
ssh
๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.gcloud compute ssh test-global-access-vm \ --zone=ZONE_B1
gcloud compute addresses describe
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ฐ์ ธ์ต๋๋ค.gcloud compute addresses describe int-tcp-ip-address \ --region=REGION_A
IP ์ฃผ์๋ฅผ ๊ธฐ๋กํด ๋ก๋๋ค.
ํธ๋ํฝ์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ก ์ ์กํ๊ณ IP_ADDRESS๋ฅผ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ก ๋ฐ๊ฟ๋๋ค.
curl IP_ADDRESS:110
ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ์ํ ํ๋ก์ ํ๋กํ ์ฝ
ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ํด๋ผ์ด์ธํธ์ TCP ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ณ ์ธ์คํด์ค์ ์ ์ฐ๊ฒฐ์ ๋ง๋ญ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ํด๋ผ์ด์ธํธ IP์ ํฌํธ ์ ๋ณด๋ ์ ์ง๋์ง ์์ต๋๋ค.
์๋ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ์ ์งํ๊ณ ์ธ์คํด์ค๋ก ๋ณด๋ด๋ ค๋ฉด PROXY ํ๋กํ ์ฝ ๋ฒ์ 1์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ์ด ํ๋กํ ์ฝ์ ์์ฒญ์ ์ผ๋ถ๋ก ์์ค IP ์ฃผ์, ๋์ IP ์ฃผ์, ํฌํธ ๋ฒํธ๊ฐ ํฌํจ๋ ์ถ๊ฐ ํค๋๋ฅผ ์ธ์คํด์ค์ ๋ณด๋ ๋๋ค.
ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์ธ์คํด์ค์์ PROXY ํ๋กํ ์ฝ ํค๋๋ฅผ ์ง์ํ๋ ์๋ฒ๋ฅผ ์คํํ๊ณ ์๋์ง ํ์ธํฉ๋๋ค. ์๋ฒ๊ฐ PROXY ํ๋กํ ์ฝ ํค๋๋ฅผ ์ง์ํ๋๋ก ๊ตฌ์ฑ๋์ง ์์์ผ๋ฉด ๋ฐฑ์๋ ์ธ์คํด์ค์์ ๋น ์๋ต์ ๋ฐํํฉ๋๋ค.
์ฌ์ฉ์ ํธ๋ํฝ์ PROXY ํ๋กํ ์ฝ์ ์ค์ ํ ๊ฒฝ์ฐ ์ํ ํ์ธ์๋ ์ด ํ๋กํ ์ฝ์ ์ค์ ํ ์ ์์ต๋๋ค. ๋์ผํ ํฌํธ์์ ์ํ๋ฅผ ์ ๊ฒํ๊ณ ์ฝํ
์ธ ๋ฅผ ์ ๊ณตํ๋ ๊ฒฝ์ฐ ์ํ ํ์ธ์ --proxy-header
๋ฅผ ๋ถํ ๋ถ์ฐ๊ธฐ ์ค์ ์ ๋ง๊ฒ ์ค์ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก PROXY ํ๋กํ ์ฝ ํค๋๋ ๋ค์ ํ์์ ์ฌ์ฉ์๊ฐ ์ฝ์ ์ ์๋ ํ ์ค ํ ์คํธ์ ๋๋ค.
PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n
๋ค์ ์์์์๋ PROXY ํ๋กํ ์ฝ์ ๋ณด์ฌ์ค๋๋ค.
PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n
์์ ์์์์ ํด๋ผ์ด์ธํธ IP๋ 192.0.2.1
, ๋ถํ ๋ถ์ฐ IP๋ 198.51.100.1
, ํด๋ผ์ด์ธํธ ํฌํธ๋ 15221
, ๋ชฉ์ ์ง ํฌํธ๋ 110
์
๋๋ค.
ํด๋ผ์ด์ธํธ IP๋ฅผ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๋ค์ ํ์์ผ๋ก PROXY ํ๋กํ ์ฝ ํค๋๋ฅผ ์์ฑํฉ๋๋ค.
PROXY UNKNOWN\r\n
๋์ ํ๋ก์์ PROXY ํ๋กํ ์ฝ ํค๋ ์ ๋ฐ์ดํธ
๊ธฐ์กด ๋์ ํ๋ก์์์ PROXY ํ๋กํ ์ฝ ํค๋๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. PROXY ํ๋กํ ์ฝ ํค๋์ ํ์ํ ์ค์ ์ผ๋ก ์ ๋์ ํ๋ก์๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ผ ํ์ํ ์ค์ ์ผ๋ก ์ ํ๋ฐํธ์๋๋ฅผ ๋ง๋ญ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ์์ ํ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ์ ํธ์ง์ ํด๋ฆญํฉ๋๋ค.
- ํ๋ฐํธ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
- ์ด์ ํ๋ฐํธ์๋ IP ๋ฐ ํฌํธ๋ฅผ ์ญ์ ํฉ๋๋ค.
- ํ๋ฐํธ์๋ IP ๋ฐ ํฌํธ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์
int-tcp-forwarding-rule
์ ์ ๋ ฅํฉ๋๋ค. - ์๋ธ๋คํธ์ํฌ์์ backend-subnet์ ์ ํํฉ๋๋ค.
- IP ์ฃผ์์์ ์ด์ ์ ์์ฝํ IP ์ฃผ์๋ฅผ ์ ํํฉ๋๋ค. LB_IP_ADDRESS
- ํฌํธ ๋ฒํธ์
110
์ ์ ๋ ฅํฉ๋๋ค. ์ ๋ฌ ๊ท์น์ ๋ชฉ์ ์ง ํฌํธ๊ฐ ์ผ์นํ๋ ํจํท๋ง ์ ๋ฌํฉ๋๋ค. - ํ๋ก์ ํ๋กํ ์ฝ ํ๋ ๊ฐ์ ์ผ๊ธฐ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
- ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์
- ์ ๋ฐ์ดํธ๋ฅผ ํด๋ฆญํ์ฌ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅํฉ๋๋ค.
gcloud
๋ค์ ๋ช ๋ น์ด์์
--proxy-header
ํ๋๋ฅผ ์์ ํ๊ณ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผNONE
๋๋PROXY_V1
๋ก ์ค์ ํฉ๋๋ค.gcloud compute target-tcp-proxies create TARGET_PROXY_NAME \ --backend-service=BACKEND_SERVICE \ --proxy-header=[NONE | PROXY_V1] \ --region=REGION
๊ธฐ์กด ์ ๋ฌ ๊ท์น์ ์ญ์ ํฉ๋๋ค.
gcloud compute forwarding-rules delete int-tcp-forwarding-rule \ --region=REGION
์ ์ ๋ฌ ๊ท์น์ ๋ง๋ค์ด ๋์ ํ๋ก์์ ์ฐ๊ฒฐํฉ๋๋ค.
gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION \ --target-tcp-proxy=TARGET_PROXY_NAME \ --target-tcp-proxy-region=REGION \ --address=LB_IP_ADDRESS \ --ports=110
์ธ์ ์ดํผ๋ํฐ ์ฌ์ฉ ์ค์
๊ตฌ์ฑ ์์๋ ์ธ์ ์ดํผ๋ํฐ ์์ด ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ง๋ญ๋๋ค.
์ด ์ ์ฐจ์์๋ ๋ฐฑ์๋ ์๋น์ค๊ฐ ํด๋ผ์ด์ธํธ IP ์ดํผ๋ํฐ ๋๋ ์์ฑ๋ ์ฟ ํค ์ดํผ๋ํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ์์ ๋ฆฌ์ ๋ด๋ถ ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
ํด๋ผ์ด์ธํธ IP ์ดํผ๋ํฐ๊ฐ ์ฌ์ฉ ์ค์ ๋๋ฉด ๋ถํ ๋ถ์ฐ๊ธฐ๋ ํด๋ผ์ด์ธํธ์ IP ์ฃผ์ ๋ฐ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์(๋ด๋ถ ์ ๋ฌ ๊ท์น์ ๋ด๋ถ IP ์ฃผ์)์์ ์์ฑ๋ ํด์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํน์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋์ผํ ๋ฐฑ์๋ VM์ ์ ๋ฌํฉ๋๋ค.
์ฝ์
ํด๋ผ์ด์ธํธ IP ์ธ์ ์ดํผ๋ํฐ๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ถํ ๋ถ์ฐ์ผ๋ก ์ด๋ - ๋ฐฑ์๋๋ฅผ ํด๋ฆญํฉ๋๋ค.
- internal-tcp-proxy-bs(์ด ์์์์ ๋ง๋ ๋ฐฑ์๋ ์๋น์ค ์ด๋ฆ)๋ฅผ ํด๋ฆญํ๊ณ ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฑ์๋ ์๋น์ค ์ธ๋ถ์ ๋ณด ํ์ด์ง์์ ๊ณ ๊ธ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
- ์ธ์ ์ดํผ๋ํฐ์ ๋ฉ๋ด์์ ํด๋ผ์ด์ธํธ IP๋ฅผ ์ ํํฉ๋๋ค.
- ์ ๋ฐ์ดํธ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
๋ค์ Google Cloud CLI ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํด์ internal-tcp-proxy-bs
๋ฐฑ์๋ ์๋น์ค๋ฅผ ์
๋ฐ์ดํธํ๊ณ ํด๋ผ์ด์ธํธ IP ์ธ์
์ดํผ๋ํฐ๋ฅผ ์ง์ ํฉ๋๋ค.
gcloud compute backend-services update internal-tcp-proxy-bs \ --region=REGION_A \ --session-affinity=CLIENT_IP
์ฐ๊ฒฐ ๋๋ ์ด๋ ์ฌ์ฉ ์ค์
๋ฐฑ์๋ ์๋น์ค์์ ์ฐ๊ฒฐ ๋๋ ์ด๋์ ์ฌ์ฉ ์ค์ ํ๋ฉด ํธ๋ํฝ์ ์ ๊ณตํ๋ ์ธ์คํด์ค๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ ์๋์ผ๋ก ์ญ์ ๋๊ฑฐ๋ ์๋ ํ์ฅ ์ฒ๋ฆฌ๋ฅผ ํตํด ์ญ์ ๋๋ ๊ฒฝ์ฐ ์ฌ์ฉ์์ ๋ํ ๋ฐฉํด๋ฅผ ์ต์ํํ ์ ์์ต๋๋ค. ์ฐ๊ฒฐ ๋๋ ์ด๋์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฐ๊ฒฐ ๋๋ ์ด๋ ์ฌ์ฉ ์ค์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋จ๊ณ
- ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ IPv6๋ก ๋ณํ
- ๋ฆฌ์ ๋ด๋ถ ํ๋ก์ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ฐ์
- ๋ชจ๋ํฐ๋ง ์ฌ์ฉ
- ๋ถํ ๋ถ์ฐ๊ธฐ ์ค์ ์ญ์