VPC ๋คํธ์ํฌ์ ์ฐ๊ฒฐ
์ปค๋ฅํฐ๊ฐ ํ์ ์๋ Direct VPC ์ด๊ทธ๋ ์ค๋ฅผ ์ฌ์ฉํ์ฌ VPC ๋คํธ์ํฌ๋ก ํธ๋ํฝ์ ์ ์กํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํ์ง๋ง Direct VPC ์ด๊ทธ๋ ์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๋์ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ๋ฅผ ๊ตฌ์ฑํ๋ฉด ๋ฉ๋๋ค. ์ด ํ์ด์ง์์๋ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ์ฌ Cloud Run ์๋น์ค ๋๋ ์์ ์ VPC ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ์ฌ Cloud Run์์ Compute Engine VM ์ธ์คํด์ค, Memorystore ์ธ์คํด์ค, ๋ด๋ถ IP ์ฃผ์๊ฐ ์๋ ๊ธฐํ ๋ฆฌ์์ค์ ์ด๊ทธ๋ ์ค(์์๋ฐ์ด๋) ํธ๋ํฝ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์์ํ๊ธฐ ์ ์
ํ๋ก์ ํธ์ VPC ๋คํธ์ํฌ๊ฐ ์์ง ์๋ ๊ฒฝ์ฐ VPC ๋คํธ์ํฌ๋ฅผ ๋ง๋ญ๋๋ค.
๊ณต์ VPC๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ํ์ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ๊ตฌ์ฑ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ค๋ฃจ๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
- Cloud Run: ๊ณต์ VPC ๋คํธ์ํฌ์ ์ฐ๊ฒฐ
- Cloud Run Functions: ๊ณต์ VPC ๋คํธ์ํฌ์ ์ฐ๊ฒฐ
- App Engine: ๊ณต์ VPC ๋คํธ์ํฌ์ ์ฐ๊ฒฐ
Cloud Deployment Manager ์ฌ์ฉ์ ๊ธ์งํ๋ ์กฐ์ง ์ ์ฑ ์ ์ฝ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ญ์ ํ ์ ์์ต๋๋ค. ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ญ์ ํ๋ ค๋ฉด Deployment Manager ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค.
ํ๋ก์ ํธ์ ์ ๋ขฐํ ์ ์๋ ์ด๋ฏธ์ง ์ ์ฑ ์ด ์ค์ ๋์ด ์๋ ๊ฒฝ์ฐ
constraints/compute.trustedimageProjects
์กฐ์ง ์ ์ฑ ์์serverless-vpc-access-images
ํ๋ก์ ํธ๋ฅผ ํ์ฉํด์ผ ํฉ๋๋ค.์ปค๋ฅํฐ ์๋ธ๋ท ์๊ตฌ์ฌํญ
๊ฐ ์ปค๋ฅํฐ์๋
/28
๊ธฐ๋ณธ IPv4 ์ฃผ์ ๋ฒ์๊ฐ ์๋ ์์ฒดPRIVATE
์ฉ ์ ์ฉ ์๋ธ๋ท์ด ํ์ํฉ๋๋ค. ์๋ธ๋ท์ VM, Private Service Connect ๋๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฐ์ ๋ค๋ฅธ ๋ฆฌ์์ค์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ปค๋ฅํฐ๋ฅผ ๋ง๋ ํ์๋ ์๋ธ๋ท์ ํ์ฅํ ์ ์์ต๋๋ค./28
๋ก ์ ์ง๋์ด์ผ ํฉ๋๋ค.ํธ์คํธ ํ๋ก์ ํธ์์ ๊ณต์ VPC ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ ์๋น์ค ํ๋ก์ ํธ์์ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋จผ์ ๊ณต์ VPC ๋คํธ์ํฌ์ ๋คํธ์ํฌ ๊ด๋ฆฌ์๊ฐ ์ปค๋ฅํฐ์ ์๋ธ๋ท์ ์๋์ผ๋ก ๋ง๋ค์ด์ผ ํฉ๋๋ค.
์ปค๋ฅํฐ์์ ์๋์ผ๋ก ์์ฑ๋ ๊ธฐ์กด ์๋ธ๋ท์ ์ฌ์ฉํ ์ ์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์๋ธ๋ท์ ์ค๋ช ํฉ๋๋ค.
gcloud compute networks subnets describe SUBNET --region=REGION
SUBNET์ ์๋ธ๋ท ์ด๋ฆ์ผ๋ก ๋ฐ๊พธ๊ณ REGION์ ์๋ธ๋ท์ด ํฌํจ๋ ๋ฆฌ์ ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
์ถ๋ ฅ์์ ๋ค์์ ํ์ธํฉ๋๋ค.
- ์๋ธ๋ท์ ์ผ๋ฐ ์๋ธ๋ท์
๋๋ค. Google Cloud CLI์์ ์ด๋ ์ฉ๋์ ๊ฐ์ด
PRIVATE
์์ ์๋ฏธํฉ๋๋ค. - ์๋ธ๋ท์ ๊ธฐ๋ณธ IPv4 ์ฃผ์ ๋ฒ์
ipCidrRange
๋/28
์ ๋๋ค.
- ์๋ธ๋ท์ ์ผ๋ฐ ์๋ธ๋ท์
๋๋ค. Google Cloud CLI์์ ์ด๋ ์ฉ๋์ ๊ฐ์ด
์ปค๋ฅํฐ์์ ์ฌ์ฉ๋๋ VPC ๋คํธ์ํฌ๊ฐ ํฌํจ๋ ๋์ผํ ํ๋ก์ ํธ์ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ์ปค๋ฅํฐ์ ์๋ธ๋ท์ ์๋์ผ๋ก ๋ง๋ค๊ฑฐ๋ Google Cloud ์์ ์ปค๋ฅํฐ์ ์๋ธ๋ท์ ์๋์ผ๋ก ๋ง๋ค ์ ์์ต๋๋ค.
Google Cloud ์์ ์ปค๋ฅํฐ์ ์๋ธ๋ท์ ๋ง๋ค ๋ ๋ค์ ์ฌํญ์ ์ ์ํ์ธ์.
์ปค๋ฅํฐ๋ฅผ ์ํด ์๋์ผ๋ก ์์ฑ๋ ์๋ธ๋ท์ Google Cloud ์ฝ์, Google Cloud CLI ๋๋ Compute Engine API ์ฌ์ฉ ์ฌ๋ถ์ ๊ด๊ณ์์ด ์๋ธ๋ท์ ๋์ดํ ๋ ํ์๋์ง ์์ต๋๋ค.
์ปค๋ฅํฐ๋ฅผ ์ํด ์๋์ผ๋ก ์์ฑ๋ ์๋ธ๋ท์ ์ค๋ช ํ ์ ์์ต๋๋ค.
์๋์ผ๋ก ์์ฑ๋ ์๋ธ๋ท์ VPC ๋คํธ์ํฌ๋ฅผ ์ค๋ช ํ ๋ ํ์๋๋ ์๋ธ๋ท ๋ชฉ๋ก์ ํฌํจ๋ฉ๋๋ค.
์ด๋ฏธ ์ฌ์ฉ ์ค์ธ IP ์ฃผ์ ๋ฒ์๋ฅผ ํ์ธํ๊ธฐ ์ํด ๊ธฐ์กด ์๋ธ๋ท์ ๋์ดํ๋ ๋ฐฉ๋ฒ์ ๋น๋กฏํ์ฌ ์๋ธ๋ท์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋ธ๋ท ์์ ์ ์ฐธ์กฐํ์ธ์.
์ ํ์ฌํญ
IPv6 ํธ๋ํฝ์ ์ง์๋์ง ์์ต๋๋ค.
์ปค๋ฅํฐ ๋ง๋ค๊ธฐ
๊ณต๊ฐ ์ธํฐ๋ท์ ์ฌ์ฉํ์ง ์๊ณ VPC ๋คํธ์ํฌ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์ด์ ๋ํ ์๋ต์ ์์ ํ๋ ค๋ฉด ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ปค๋ฅํฐ๊ฐ VPC ๋คํธ์ํฌ์ ๋์ผํ ํ๋ก์ ํธ์ ์๋ ๊ฒฝ์ฐ ๊ธฐ์กด ์๋ธ๋ท์ ์ฌ์ฉํ์ฌ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ปค๋ฅํฐ์ ์ ์๋ธ๋ท์ ๋ง๋ค ์ ์์ต๋๋ค.
์ปค๋ฅํฐ๊ฐ ์๋น์ค ํ๋ก์ ํธ์ ์๊ณ ๊ณต์ VPC ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ปค๋ฅํฐ์ ์ฐ๊ฒฐ๋ VPC ๋คํธ์ํฌ๋ ์๋ก ๋ค๋ฅธ ํ๋ก์ ํธ์ ์์ต๋๋ค. ์ปค๋ฅํฐ์ ํด๋น VPC ๋คํธ์ํฌ๊ฐ ์๋ก ๋ค๋ฅธ ํ๋ก์ ํธ์ ์๋ ๊ฒฝ์ฐ ๊ณต์ VPC ๋คํธ์ํฌ ๊ด๋ฆฌ์๊ฐ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ๊ณต์ VPC ๋คํธ์ํฌ์์ ์ปค๋ฅํฐ์ ์๋ธ๋ท์ ๋ง๋ค์ด์ผ ํ๊ณ ์ฌ์ฉ์๋ ๊ธฐ์กด ์๋ธ๋ท์ ์ฌ์ฉํ์ฌ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
์๋ธ๋ท ์๊ตฌ์ฌํญ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ปค๋ฅํฐ ์๋ธ๋ท ์๊ตฌ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
๋จธ์ ์ ํ ๋ฐ ํ์ฅ์ ํฌํจํ ์ปค๋ฅํฐ ์ฒ๋ฆฌ๋์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฒ๋ฆฌ๋ ๋ฐ ํ์ฅ์ ์ฐธ์กฐํ์ธ์.
Google Cloud ์ฝ์, Google Cloud CLI ๋๋ Terraform์ ์ฌ์ฉํ์ฌ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ฝ์
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ๊ฐ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ปค๋ฅํฐ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ด๋ฆ ํ๋์ Compute Engine ์ด๋ฆ ์ง์ ๊ท์น๊ณผ ์ผ์นํ๋ ์ปค๋ฅํฐ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค. ์ด๋ ์ถ๊ฐ ์๊ตฌ์ฌํญ์ผ๋ก ์ด๋ฆ์ 21์ ๋ฏธ๋ง์ด์ด์ผ ํฉ๋๋ค. ํ์ดํ(-)์ 2์๋ก ๊ณ์ฐ๋ฉ๋๋ค.
๋ฆฌ์ ํ๋์์ ์ปค๋ฅํฐ์ ๋ฆฌ์ ์ ์ ํํฉ๋๋ค. ์ด ๋ฆฌ์ ์ ์๋ฒ๋ฆฌ์ค ์๋น์ค์ ๋ฆฌ์ ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค.
์๋น์ค ๋๋ ์์ ์ด
us-central
๋๋europe-west
๋ฆฌ์ ์ ์์ผ๋ฉดus-central1
๋๋europe-west1
์ ์ฌ์ฉํฉ๋๋ค.๋คํธ์ํฌ ํ๋์์ ์ปค๋ฅํฐ๋ฅผ ์ฐ๊ฒฐํ VPC ๋คํธ์ํฌ๋ฅผ ์ ํํฉ๋๋ค.
์๋ธ๋ท ํ๋์์ ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
๊ธฐ์กด ์๋ธ๋ท์ ์ฌ์ฉํ์ฌ ์ปค๋ฅํฐ ๋ง๋ค๊ธฐ: ์๋ธ๋ท ํ๋์์ ๊ธฐ์กด ์๋ธ๋ท์ ์ ํํฉ๋๋ค.
์ปค๋ฅํฐ ๋ฐ ์ ์๋ธ๋ท ๋ง๋ค๊ธฐ: ์๋ธ๋ท ํ๋์์ ์ปค์คํ IP ๋ฒ์๋ฅผ ์ ํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฌ์ฉ๋์ง ์๋
/28
CIDR(์:10.8.0.0/28
)์ ์ฒซ ๋ฒ์งธ ์ฃผ์๋ฅผ ์ ๋ ฅํ์ฌ Google Cloud ์์ ์ปค๋ฅํฐ์ VPC ๋คํธ์ํฌ์ ๋ง๋๋ ์ ์๋ธ๋ท์ ๊ธฐ๋ณธ IPv4 ์ฃผ์ ๋ฒ์๋ก ์ฌ์ฉํฉ๋๋ค. IP ๋ฒ์๊ฐ ์ปค๋ฅํฐ์ VPC ๋คํธ์ํฌ์ ์๋ ๊ธฐ์กด ๊ฒฝ๋ก์ ์ถฉ๋ํ์ง ์๋์ง ํ์ธํฉ๋๋ค. ์ ์๋ธ๋ท์ ์ด๋ฆ์ ํ๋ฆฌํฝ์ค 'aet-'๋ก ์์ํฉ๋๋ค.
(์ ํ์ฌํญ) ์ปค๋ฅํฐ๋ฅผ ์ถ๊ฐ๋ก ์ ์ดํ๊ธฐ ์ํด ํ์ฅ ์ต์ ์ ์ค์ ํ๋ ค๋ฉด ํ์ฅ ์ค์ ํ์๋ฅผ ํด๋ฆญํ์ฌ ํ์ฅ ์์์ ํ์ํฉ๋๋ค.
- ์ปค๋ฅํฐ์ ์ต์ ๋ฐ ์ต๋ ์ธ์คํด์ค ์๋ฅผ ์ค์ ํ๊ฑฐ๋ ๊ธฐ๋ณธ๊ฐ 2(์ต์)์ 10(์ต๋)์ ์ฌ์ฉํฉ๋๋ค. ์ปค๋ฅํฐ๋ ํธ๋ํฝ ์ฌ์ฉ๋์ด ํ์ํ๋ฉด ์ง์ ๋ ์ต๋ ์๋ก ํ์ฅ๋์ง๋ง ํธ๋ํฝ์ด ๊ฐ์ํ๋ฉด ์ปค๋ฅํฐ๊ฐ ์ถ์๋์ง ์์ต๋๋ค.
2
์10
์ฌ์ด์ ๊ฐ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. - ์ธ์คํด์ค ์ ํ ๋ฉ๋ด์์ ์ปค๋ฅํฐ์ ์ฌ์ฉํ ๋จธ์ ์ ํ์ ์ ํํ๊ฑฐ๋ ๊ธฐ๋ณธ
e2-micro
๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋์ญํญ๊ณผ ๋น์ฉ ์ถ์ ์ ํ์ํ๋ ์ธ์คํด์ค ์ ํ์ ์ ํํ๋ ๊ฒฝ์ฐ ์ค๋ฅธ์ชฝ์ ์๋ ๋น์ฉ ์ฌ์ด๋๋ฐ๋ฅผ ํ์ธํฉ๋๋ค.
- ์ปค๋ฅํฐ์ ์ต์ ๋ฐ ์ต๋ ์ธ์คํด์ค ์๋ฅผ ์ค์ ํ๊ฑฐ๋ ๊ธฐ๋ณธ๊ฐ 2(์ต์)์ 10(์ต๋)์ ์ฌ์ฉํฉ๋๋ค. ์ปค๋ฅํฐ๋ ํธ๋ํฝ ์ฌ์ฉ๋์ด ํ์ํ๋ฉด ์ง์ ๋ ์ต๋ ์๋ก ํ์ฅ๋์ง๋ง ํธ๋ํฝ์ด ๊ฐ์ํ๋ฉด ์ปค๋ฅํฐ๊ฐ ์ถ์๋์ง ์์ต๋๋ค.
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ฌ์ฉํ ์ค๋น๊ฐ ๋๋ฉด ์ปค๋ฅํฐ ์ด๋ฆ ์์ ๋ น์ ์ฒดํฌํ์๊ฐ ๋ํ๋ฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
gcloud
๊ตฌ์ฑ์์๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค.gcloud components update
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค API๊ฐ ํ๋ก์ ํธ์ ๋ํด ์ฌ์ฉ ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
gcloud services enable vpcaccess.googleapis.com
๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ญ๋๋ค.
์์ธํ ๋ด์ฉ๊ณผ ์ ํ์ ์ธ์๋
gcloud
์ฐธ์กฐ๋ฅผ ํ์ธํ์ธ์.๊ธฐ์กด ์๋ธ๋ท์ ์ฌ์ฉํ์ฌ ์ปค๋ฅํฐ ๋ง๋ค๊ธฐ:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --subnet SUBNET_NAME \ --subnet-project HOST_PROJECT_ID \ --min-instances MIN \ --max-instances MAX \ --machine-type MACHINE_TYPE
๋ค์์ ๋ฐ๊ฟ๋๋ค.
CONNECTOR_NAME
: Compute Engine ์ด๋ฆ ์ง์ ๊ท์น๊ณผ ์ผ์นํ๋ ์ปค๋ฅํฐ ์ด๋ฆ์ผ๋ก, ์ถ๊ฐ ์๊ตฌ์ฌํญ์ผ๋ก ์ด๋ฆ์ด 21์ ๋ฏธ๋ง์ด์ด์ผ ํฉ๋๋ค. ์ด๋ ํ์ดํ(-)์ 2์๋ก ๊ณ์ฐ๋ฉ๋๋ค.REGION
: ์ปค๋ฅํฐ์ ๋ฆฌ์ ์ผ๋ก, ์๋ฒ๋ฆฌ์ค ์๋น์ค ๋๋ ์์ ์ ๋ฆฌ์ ๊ณผ ์ผ์นํฉ๋๋ค. ์๋น์ค ๋๋ ์์ ์ดus-central
๋๋europe-west
์ ์์ผ๋ฉดus-central1
๋๋europe-west1
์ ์ฌ์ฉํฉ๋๋ค.SUBNET_NAME
: ๊ธฐ์กด ์๋ธ๋ท์ ์ด๋ฆHOST_PROJECT_ID
: ๊ณต์ VPC ํธ์คํธ ํ๋ก์ ํธ ID. ์ปค๋ฅํฐ์ ๊ธฐ์กด ์๋ธ๋ท์ด ๋์ผํ ํ๋ก์ ํธ์ ์๋ ๊ฒฝ์ฐ--subnet-project
ํ๋๊ทธ๋ฅผ ์๋ตํฉ๋๋ค.MIN
: ์ปค๋ฅํฐ์ ์ฌ์ฉํ ์ต์ ์ธ์คํด์ค ์๋ก,2
(๊ธฐ๋ณธ๊ฐ)์์9
์ฌ์ด์ ์ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.MAX
: ์ปค๋ฅํฐ์ ์ฌ์ฉํ ์ต๋ ์ธ์คํด์ค ์๋ก,3
์์10
(๊ธฐ๋ณธ๊ฐ) ์ฌ์ด์ ์ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ปค๋ฅํฐ๊ฐ ์ต๋ ์ธ์คํด์ค ์๊น์ง ํ์ฅ๋๋ฉด ์ถ์๋์ง ์์ต๋๋ค.MACHINE_TYPE
: ๋ค์f1-micro
,e2-micro
๋๋e2-standard-4
์ค ํ๋์ฌ์ผ ํฉ๋๋ค.
์ปค๋ฅํฐ ๋ฐ ์ ์๋ธ๋ท ๋ง๋ค๊ธฐ:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --network VPC_NETWORK \ --range IP_RANGE --min-instances MIN \ --max-instances MAX \ --machine-type MACHINE_TYPE
๋ค์์ ๋ฐ๊ฟ๋๋ค.
CONNECTOR_NAME
: Compute Engine ์ด๋ฆ ์ง์ ๊ท์น๊ณผ ์ผ์นํ๋ ์ปค๋ฅํฐ ์ด๋ฆ์ผ๋ก, ์ถ๊ฐ ์๊ตฌ์ฌํญ์ผ๋ก ์ด๋ฆ์ด 21์ ๋ฏธ๋ง์ด์ด์ผ ํฉ๋๋ค. ์ด๋ ํ์ดํ(-)์ 2์๋ก ๊ณ์ฐ๋ฉ๋๋ค.REGION
: ์ปค๋ฅํฐ์ ๋ฆฌ์ ์ผ๋ก, ์๋ฒ๋ฆฌ์ค ์๋น์ค ๋๋ ์์ ์ ๋ฆฌ์ ๊ณผ ์ผ์นํฉ๋๋ค. ์๋น์ค ๋๋ ์์ ์ดus-central
๋๋europe-west
์ ์์ผ๋ฉดus-central1
๋๋europe-west1
์ ์ฌ์ฉํฉ๋๋ค.VPC_NETWORK
: ์ปค๋ฅํฐ๋ฅผ ์ฐ๊ฒฐํ VPC ๋คํธ์ํฌ์ ์ด๋ฆ์ผ๋ก, ์ปค๋ฅํฐ์ VPC ๋คํธ์ํฌ๋ ๋์ผํ ํ๋ก์ ํธ์ ์์ด์ผ ํฉ๋๋ค.IP_RANGE
: Google Cloud ์์ ์ปค๋ฅํฐ์ VPC ๋คํธ์ํฌ์ ๋ง๋๋ ์ ์๋ธ๋ท์ ๊ธฐ๋ณธ IPv4 ์ฃผ์ ๋ฒ์๋ก ์ฌ์ฉํ ๋ฏธ์ฌ์ฉ/28
CIDR(์:10.8.0.0/28
)์ ์ ๊ณตํฉ๋๋ค. IP ๋ฒ์๊ฐ ์ปค๋ฅํฐ์ VPC ๋คํธ์ํฌ์ ์๋ ๊ธฐ์กด ๊ฒฝ๋ก์ ์ถฉ๋ํ์ง ์๋์ง ํ์ธํฉ๋๋ค. ์ ์๋ธ๋ท์ ์ด๋ฆ์ ํ๋ฆฌํฝ์ค 'aet-'๋ก ์์ํฉ๋๋ค.MIN
: ์ปค๋ฅํฐ์ ์ฌ์ฉํ ์ต์ ์ธ์คํด์ค ์๋ก,2
(๊ธฐ๋ณธ๊ฐ)์์9
์ฌ์ด์ ์ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.MAX
: ์ปค๋ฅํฐ์ ์ฌ์ฉํ ์ต๋ ์ธ์คํด์ค ์๋ก,3
์์10
(๊ธฐ๋ณธ๊ฐ) ์ฌ์ด์ ์ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ปค๋ฅํฐ๊ฐ ์ต๋ ์ธ์คํด์ค ์๊น์ง ํ์ฅ๋๋ฉด ์ถ์๋์ง ์์ต๋๋ค.MACHINE_TYPE
: ๋ค์f1-micro
,e2-micro
๋๋e2-standard-4
์ค ํ๋์ฌ์ผ ํฉ๋๋ค.
์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ์ปค๋ฅํฐ๊ฐ
READY
์ํ์ธ์ง ํ์ธํฉ๋๋ค.gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region REGION
๋ค์์ ๋ฐ๊ฟ๋๋ค.
CONNECTOR_NAME
: ์ปค๋ฅํฐ ์ด๋ฆ์ด๋ฉฐ, ์ด์ ๋จ๊ณ์์ ์ง์ ํ ์ด๋ฆREGION
: ์ปค๋ฅํฐ์ ๋ฆฌ์ ์ด๋ฉฐ, ์ด์ ๋จ๊ณ์์ ์ง์ ํ ๋ฆฌ์ .
์ถ๋ ฅ์๋
state: READY
์ค์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
Terraform
Terraform ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ vpcaccess.googleapis.com
API๋ฅผ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
Terraform ๋ชจ๋์ ์ฌ์ฉํ์ฌ VPC ๋คํธ์ํฌ์ ์๋ธ๋ท์ ๋ง๋ ํ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ์๋ฒ๋ฆฌ์ค ํ๊ฒฝ ๊ตฌ์ฑ
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ๋ฅผ ๋ง๋ ํ ์๋ฒ๋ฆฌ์ค ํ๊ฒฝ์ ์๋ด์ ๋ฐ๋ผ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ์๋ฒ๋ฆฌ์ค ํ๊ฒฝ์ ๊ตฌ์ฑํฉ๋๋ค.
์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋๋ก Cloud Run ๊ตฌ์ฑ
์ ์๋น์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ ๋ฒ์ ์ ๋ฐฐํฌํ ๋ ์๋น์ค์์ Google Cloud ์ฝ์, Google Cloud CLI, YAML ํ์ผ ๋๋ Terraform ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ Cloud Run์ผ๋ก ์ด๋ํฉ๋๋ค.
๋ฉ๋ด์์ ์๋น์ค๋ฅผ ์ ํํ๊ณ ์ปจํ ์ด๋ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํ์ฌ ์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ๊ธฐ์กด ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ ์๋น์ค๋ฅผ ํด๋ฆญํ ํ ์ ๋ฒ์ ์์ ๋ฐ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ ์ด๊ธฐ ์๋น์ค ์ค์ ํ์ด์ง๋ฅผ ์์ฑํ ํ ์ปจํ ์ด๋, ๋ณผ๋ฅจ, ๋คํธ์ํน, ๋ณด์์ ํด๋ฆญํ์ฌ ์๋น์ค ๊ตฌ์ฑ ํ์ด์ง๋ฅผ ํผ์นฉ๋๋ค.
์ฐ๊ฒฐ ํญ์ ํด๋ฆญํฉ๋๋ค.
- VPC ์ปค๋ฅํฐ ํ๋์์ ์ฌ์ฉํ ์ปค๋ฅํฐ๋ฅผ ์ ํํ๊ฑฐ๋ ์์์ ์ ํํ์ฌ VPC ๋คํธ์ํฌ์์ ์๋น์ค์ ์ฐ๊ฒฐ์ ํด์ ํฉ๋๋ค.
๋ง๋ค๊ธฐ ๋๋ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
๋ฐฐํฌ ์ค์ ์ปค๋ฅํฐ๋ฅผ ์ง์ ํ๋ ค๋ฉด
--vpc-connector
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
SERVICE
๋ฅผ ์๋น์ค ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.IMAGE_URL
์ ๋ฐ๊ฟ๋๋ค.CONNECTOR_NAME
์ ์ปค๋ฅํฐ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ปค๋ฅํฐ๊ฐ ๊ณต์ VPC์ ํธ์คํธ ํ๋ก์ ํธ์ ์๋ ๊ฒฝ์ฐ ์์ ํ ์ง์ ๋ ์ด๋ฆ์ด์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฌ๊ธฐ์ HOST_PROJECT_ID๋ ํธ์คํธ ํ๋ก์ ํธ์ ID์ด๊ณ , CONNECTOR_REGION์ ์ปค๋ฅํฐ ๋ฆฌ์ ์ด๋ฉฐ, CONNECTOR_NAME์ ์ปค๋ฅํฐ์ ์ง์ ํ ์ด๋ฆ์ ๋๋ค.projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
๊ธฐ์กด ์๋น์ค์ ์ปค๋ฅํฐ๋ฅผ ์ฐ๊ฒฐ, ์ ๋ฐ์ดํธ, ์ญ์ ํ๋ ค๋ฉด ํ์์ ๋ฐ๋ผ ๋ค์ ํ๋๊ทธ ์ค ํ๋์ ํจ๊ป
gcloud run services update
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์.์๋ฅผ ๋ค์ด ์ปค๋ฅํฐ๋ฅผ ์ฐ๊ฒฐํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.
gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME
SERVICE
๋ฅผ ์๋น์ค ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.CONNECTOR_NAME
์ ์ปค๋ฅํฐ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
์ ์๋น์ค๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ์๋ ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค. ๊ธฐ์กด ์๋น์ค๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ YAML ๊ตฌ์ฑ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
gcloud run services describe SERVICE --format export > service.yaml
์ต์์
spec
์์ฑ ์๋์annotations
์์ฑ์์run.googleapis.com/vpc-access-connector
์์ฑ์ ์ถ๊ฐํ๊ฑฐ๋ ์ ๋ฐ์ดํธํฉ๋๋ค.apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
SERVICE
๋ฅผ Cloud Run ์๋น์ค ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.CONNECTOR_NAME
์ ์ปค๋ฅํฐ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ปค๋ฅํฐ๊ฐ ๊ณต์ VPC์ ํธ์คํธ ํ๋ก์ ํธ์ ์๋ ๊ฒฝ์ฐ ์์ ํ ์ง์ ๋ ์ด๋ฆ์ด์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฌ๊ธฐ์ HOST_PROJECT_ID๋ ํธ์คํธ ํ๋ก์ ํธ์ ID์ด๊ณ , CONNECTOR_REGION์ ์ปค๋ฅํฐ ๋ฆฌ์ ์ด๋ฉฐ, CONNECTOR_NAME์ ์ปค๋ฅํฐ์ ์ง์ ํ ์ด๋ฆ์ ๋๋ค.projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค๋ฅผ ์ ๊ตฌ์ฑ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
gcloud beta run services replace service.yaml
YAML
Terraform
Terraform ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค๋ฅผ ๋ง๋ค๊ณ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
Cloud Run Functions์์ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
Google Cloud ์ฝ์ ๋๋ Google Cloud CLI์์ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ํจ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์ Cloud Run Functions ๊ฐ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํจ์ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ๋๋ ๊ธฐ์กด ํจ์๋ฅผ ํด๋ฆญํ์ฌ ์ธ๋ถ์ ๋ณด ํ์ด์ง๋ก ์ด๋ํ๊ณ ์์ ์ ํด๋ฆญํฉ๋๋ค.
์คํ ์๊ฐ, ๋น๋ ๋ฐ ์ฐ๊ฒฐ ์ค์ ์ ํด๋ฆญํ์ฌ ๊ณ ๊ธ ์ค์ ์ ํผ์นฉ๋๋ค.
์ด๊ทธ๋ ์ค ์ค์ ์ ์ฐ๊ฒฐ ํญ์์ VPC ์ปค๋ฅํฐ ํ๋์ ์ปค๋ฅํฐ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
gcloud functions deploy
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํจ์๋ฅผ ๋ฐฐํฌํ๊ณ--vpc-connector
ํ๋๊ทธ๋ฅผ ์ง์ ํฉ๋๋ค.gcloud functions deploy FUNCTION_NAME \ --vpc-connector CONNECTOR_NAME \ FLAGS...
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
FUNCTION_NAME
์ ํจ์์ ์ด๋ฆ์ ๋๋ค.CONNECTOR_NAME
์ ์ปค๋ฅํฐ์ ์ด๋ฆ์ ๋๋ค. ์ปค๋ฅํฐ๊ฐ ๊ณต์ VPC์ ํธ์คํธ ํ๋ก์ ํธ์ ์๋ ๊ฒฝ์ฐ ์์ ํ ์ง์ ๋ ์ด๋ฆ์ด์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฌ๊ธฐ์ HOST_PROJECT_ID๋ ํธ์คํธ ํ๋ก์ ํธ์ ID์ด๊ณ , CONNECTOR_REGION์ ์ปค๋ฅํฐ ๋ฆฌ์ ์ด๋ฉฐ, CONNECTOR_NAME์ ์ปค๋ฅํฐ์ ์ง์ ํ ์ด๋ฆ์ ๋๋ค.projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
FLAGS...
๋ ํจ์ ๋ฐฐํฌ ์ค์ ์ ๋ฌํ ๋ค๋ฅธ ํ๋๊ทธ๋ฅผ ๋ํ๋ ๋๋ค.
์ปค๋ฅํฐ๋ฅผ ํตํด ๋ผ์ฐํ ํ ์ ์๋ ์์ฒญ์ ์ถ๊ฐ๋ก ์ ์ดํ๋ ค๋ฉด ์ด๊ทธ๋ ์ค ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋๋ก App Engine ๊ตฌ์ฑ
Python 2
App Engine URL Fetch ์๋น์ค์ ์ฌ์ฉ์ ์ค๋จํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์์ฒญ์ URL Fetch ์๋น์ค๋ฅผ ํตํด ๋ผ์ฐํ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด VPC ๋คํธ์ํฌ์ ๋ํ ์์ฒญ์ด ์คํจํฉ๋๋ค. ์ด ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด URL Fetch๋ฅผ ์ฌ์ฉ ์ค์งํ์ฌ ๋ชจ๋ ์์๋ฐ์ด๋ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ์ํ ๊ฒฝ์ฐ ๊ฐ๋ณ ์์ฒญ์ ์ง์
urlfetch
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ ์ฌ์ฉํ ์ ์์ง๋ง ๊ถ์ฅํ์ง ์์ต๋๋ค.์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ํ๋๋ฅผ
app.yaml
ํ์ผ์ ์ถ๊ฐํฉ๋๋ค.vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: Google Cloud ํ๋ก์ ํธ ID. ์ปค๋ฅํฐ๊ฐ ๊ณต์ VPC์ ํธ์คํธ ํ๋ก์ ํธ์ ์๋ ๊ฒฝ์ฐ ํธ์คํธ ํ๋ก์ ํธ์ ID์ฌ์ผ ํฉ๋๋ค.REGION
: ์ปค๋ฅํฐ๊ฐ ์๋ ๋ฆฌ์ CONNECTOR_NAME
: ์ปค๋ฅํฐ ์ด๋ฆ
์๋น์ค๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
gcloud app deploy
์๋น์ค๋ฅผ ๋ฐฐํฌํ ํ์๋ ๋ด๋ถ IP ์ฃผ์๋ก ์์ฒญ์ ๋ณด๋ด VPC ๋คํธ์ํฌ์ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
Java 8
App Engine URL Fetch ์๋น์ค
URLFetchService
์ ์ฌ์ฉ์ ์ค๋จํฉ๋๋ค.์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์์๋ฅผ ์๋น์ค์
appengine-web.xml
ํ์ผ์ ์ถ๊ฐํฉ๋๋ค.<vpc-access-connector> <name>projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME</name> </vpc-access-connector>
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: Google Cloud ํ๋ก์ ํธ ID. ์ปค๋ฅํฐ๊ฐ ๊ณต์ VPC์ ํธ์คํธ ํ๋ก์ ํธ์ ์๋ ๊ฒฝ์ฐ ํธ์คํธ ํ๋ก์ ํธ์ ID์ฌ์ผ ํฉ๋๋ค.REGION
: ์ปค๋ฅํฐ๊ฐ ์๋ ๋ฆฌ์ CONNECTOR_NAME
: ์ปค๋ฅํฐ ์ด๋ฆ
์๋น์ค๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
gcloud app deploy WEB-INF/appengine-web.xml
์๋น์ค๋ฅผ ๋ฐฐํฌํ ํ์๋ ๋ด๋ถ IP ์ฃผ์๋ก ์์ฒญ์ ๋ณด๋ด VPC ๋คํธ์ํฌ์ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
Go 1.11
App Engine URL Fetch ์๋น์ค์ ์ฌ์ฉ์ ์ค๋จํฉ๋๋ค.
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค๋ URL Fetch๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ URL Fetch๋ฅผ ์ฌ์ฉํ์ฌ ์ํํ ์์ฒญ์ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ค์ ์ ๋ฌด์ํฉ๋๋ค. ๋์ ์์ผ์ ์ฌ์ฉํ์ฌ ์์๋ฐ์ด๋ ์ฐ๊ฒฐ์ ์ํํฉ๋๋ค.
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ํ๋๋ฅผ
app.yaml
ํ์ผ์ ์ถ๊ฐํฉ๋๋ค.vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: Google Cloud ํ๋ก์ ํธ IDREGION
: ์ปค๋ฅํฐ๊ฐ ์๋ ๋ฆฌ์ CONNECTOR_NAME
: ์ปค๋ฅํฐ ์ด๋ฆ
์๋น์ค๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
gcloud app deploy
์๋น์ค๋ฅผ ๋ฐฐํฌํ ํ์๋ ๋ด๋ถ IP ์ฃผ์๋ก ์์ฒญ์ ๋ณด๋ด VPC ๋คํธ์ํฌ์ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ๋ชจ๋ ๋ฐํ์
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ํ๋๋ฅผ
app.yaml
ํ์ผ์ ์ถ๊ฐํฉ๋๋ค.vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
: Google Cloud ํ๋ก์ ํธ ID. ์ปค๋ฅํฐ๊ฐ ๊ณต์ VPC์ ํธ์คํธ ํ๋ก์ ํธ์ ์๋ ๊ฒฝ์ฐ ํธ์คํธ ํ๋ก์ ํธ์ ID์ฌ์ผ ํฉ๋๋ค.REGION
: ์ปค๋ฅํฐ๊ฐ ์๋ ๋ฆฌ์ CONNECTOR_NAME
: ์ปค๋ฅํฐ ์ด๋ฆ
์๋น์ค๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
gcloud app deploy
์๋น์ค๋ฅผ ๋ฐฐํฌํ ํ์๋ ๋ด๋ถ IP ์ฃผ์๋ก ์์ฒญ์ ๋ณด๋ด VPC ๋คํธ์ํฌ์ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ปค๋ฅํฐ์ ๋ฐฉํ๋ฒฝ ๊ท์น ๊ตฌ์ฑ
์๋น์ค ํ๋ก์ ํธ์ ์ปค๋ฅํฐ์ ํ์ํ ๋ฐฉํ๋ฒฝ ๊ท์น
๋ ๋ฆฝํ VPC ๋คํธ์ํฌ ๋๋ ๊ณต์ VPC ๋คํธ์ํฌ์ ํธ์คํธ ํ๋ก์ ํธ์ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค๋ฉด Google Cloud ์์ ์ปค๋ฅํฐ ์๋์ ํ์ํ ๋ชจ๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ ๋ฆฝํ VPC ๋คํธ์ํฌ ๋๋ ๊ณต์ VPC ํธ์คํธ ํ๋ก์ ํธ์ ์ปค๋ฅํฐ์ ๋ํ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ฐธ์กฐํ์ธ์.
ํ์ง๋ง ์๋น์ค ํ๋ก์ ํธ์์ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ค๊ณ ์ปค๋ฅํฐ๊ฐ ํธ์คํธ ํ๋ก์ ํธ์ ๊ณต์ VPC ๋คํธ์ํฌ๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ ๋ค์ ๋ฒ์์์ ์ปค๋ฅํฐ ์๋์ ํ์ํ ํธ๋ํฝ์ ํ์ฉํ๋๋ก ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
- ์๋ฒ๋ฆฌ์ค ์ธํ๋ผ IP ๋ฒ์:
35.199.224.0/19
- ์ํ ์ ๊ฒ ํ๋ก๋ธ IP ๋ฒ์:
35.191.0.0/16
,35.191.192.0/18
,130.211.0.0/22
์ด๋ฌํ ๋ฒ์๋ Cloud Run, Cloud Run Functions, App Engine ํ์ค ํ๊ฒฝ์ Google ์ธํ๋ผ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ IP ์ฃผ์์ ๋ชจ๋ ์์ฒญ์ Google ์ธํ๋ผ์์ ๋ฐ์ํ์ฌ ๊ฐ ์๋ฒ๋ฆฌ์ค ๋ฆฌ์์ค๊ฐ ์ฐ๊ฒฐ๋ ์ปค๋ฅํฐ์๋ง ํต์ ํ ์ ์๊ฒ ํฉ๋๋ค.
์ปค๋ฅํฐ์ ์๋ธ๋ท์์ VPC ๋คํธ์ํฌ์ ๋ฆฌ์์ค๋ก์ ํธ๋ํฝ์ ํ์ฉํด์ผ ํฉ๋๋ค.
์ด ๋จ๊ณ๋ฅผ ์ํํ๋ ค๋ฉด ํธ์คํธ ํ๋ก์ ํธ์ ๋ํ ๋ค์ ์ญํ ์ค ํ๋๊ฐ ์์ด์ผ ํฉ๋๋ค.
- ์์ ์ ์ญํ (
roles/owner
) - Compute ๋ณด์ ๊ด๋ฆฌ์ ์ญํ (
roles/compute.securityAdmin
) compute.firewalls.create
๊ถํ์ด ์ฌ์ฉ ์ค์ ๋ ์ปค์คํ Identity and Access Management(IAM) ์ญํ
๊ธฐ๋ณธ ๊ตฌ์ฑ์์๋ ๊ณต์ VPC ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์๋น์ค ํ๋ก์ ํธ์ ์๋ฒ๋ฆฌ์ค ๋ฆฌ์์ค๊ฐ ๋คํธ์ํฌ์ ๋ชจ๋ ๋ฆฌ์์ค์ ์์ฒญ์ ๋ณด๋ผ ์ ์๋๋ก ๊ท์น์ ์ ์ฉํฉ๋๋ค.
์ด๋ฌํ ๊ท์น์ ์ ์ฉํ๋ ค๋ฉด ํธ์คํธ ํ๋ก์ ํธ์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
Google์ ์๋ฒ๋ฆฌ์ค ์ธํ๋ผ ๋ฐ ์ํ ์ ๊ฒ ํ๋ก๋ธ์ ์์ฒญ์ด ๋คํธ์ํฌ์ ๋ชจ๋ ์ปค๋ฅํฐ์ ๋๋ฌํ๋๋ก ํ์ฉํ๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค. ์ด๋ฌํ ๋ช ๋ น์ด์์ UDP ํฌํธ์ TCP ํฌํธ๋ ๊ฐ๊ฐ ํ๋ก์ ๋ฐ HTTP ์ํ ์ ๊ฒ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ง์ ๋ ํฌํธ๋ฅผ ๋ณ๊ฒฝํ์ง ๋ง์ธ์.
gcloud compute firewall-rules create serverless-to-vpc-connector \ --allow tcp:667,udp:665-666,icmp \ --source-ranges=35.199.224.0/19 \ --direction=INGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
gcloud compute firewall-rules create vpc-connector-to-serverless \ --allow tcp:667,udp:665-666,icmp \ --destination-ranges=35.199.224.0/19 \ --direction=EGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
gcloud compute firewall-rules create vpc-connector-health-checks \ --allow tcp:667 \ --source-ranges=35.191.0.0/16,35.191.192.0/18,130.211.0.0/22 \ --direction=INGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
VPC_NETWORK
๋ฅผ ์ปค๋ฅํฐ๋ฅผ ์ฐ๊ฒฐํ VPC ๋คํธ์ํฌ์ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.VPC ๋คํธ์ํฌ์ ์ด ๋คํธ์ํฌ๋ฅผ ๋์์ผ๋ก ํ๋ ์ปค๋ฅํฐ์ ์์ฒญ์ ํ์ฉํ๋ ์ธ๊ทธ๋ ์ค ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค.
gcloud compute firewall-rules create vpc-connector-requests \ --allow tcp,udp,icmp \ --direction=INGRESS \ --source-tags vpc-connector \ --network=VPC_NETWORK
์ด ๊ท์น์ผ๋ก ์ปค๋ฅํฐ์์ ๋คํธ์ํฌ์ ๋ชจ๋ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ํ๊ฒฝ์์ ๋๋ฌํ ์ ์๋ ๋ฆฌ์์ค๋ฅผ ์ ํํ๋ ค๋ฉด ์ปค๋ฅํฐ VM์ VPC ๋คํธ์ํฌ ๋ฆฌ์์ค ์ก์ธ์ค ์ ํ์ ์ฐธ์กฐํ์ธ์.
ํน์ ์ปค๋ฅํฐ์ ๋ฐฉํ๋ฒฝ ๊ท์น ๋ง๋ค๊ธฐ
์๋น์ค ํ๋ก์ ํธ์ ์ปค๋ฅํฐ์ ํ์ํ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ ์ฐจ๋ฅผ ๋ฐ๋ฅด๋ฉด ํ์ฌ์ ์ปค๋ฅํฐ์ ํฅํ ์์ฑ๋๋ ์ปค๋ฅํฐ๋ฅผ ํฌํจํ ๋ชจ๋ ์ปค๋ฅํฐ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋ฉ๋๋ค. ์ด๋ฅผ ์ํ์ง ์๊ณ ๋์ ์ ํน์ ์ปค๋ฅํฐ์๋ง ์ ์ฉ๋๋ ๊ท์น์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ํด๋น ์ปค๋ฅํฐ์๋ง ์ ์ฉ๋๋๋ก ๊ท์น์ ๋ฒ์๋ฅผ ์ขํ์ ์ง์ ํ ์ ์์ต๋๋ค.
๊ท์น์ ๋ฒ์๋ฅผ ํน์ ์ปค๋ฅํฐ๋ก ์ ํํ๋ ค๋ฉด ๋ค์ ๋ฉ์ปค๋์ฆ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
- ๋คํธ์ํฌ ํ๊ทธ: ๋ชจ๋ ์ปค๋ฅํฐ์๋ 2๊ฐ์ ๋คํธ์ํฌ ํ๊ทธ์ธ
vpc-connector
์vpc-connector-REGION-CONNECTOR_NAME
์ด ์์ต๋๋ค. ํ์ ํ์์ ์ฌ์ฉํ์ฌ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ฒ์๋ฅผ ํน์ ์ปค๋ฅํฐ๋ก ์ ํํฉ๋๋ค. - IP ๋ฒ์: ์ด ์ต์ ์ ์ธ๊ทธ๋ ์ค ๊ท์น์์ ์๋ํ์ง ์์ผ๋ฏ๋ก ์ด๊ทธ๋ ์ค ๊ท์น์๋ง ์ฌ์ฉํฉ๋๋ค. ์ปค๋ฅํฐ ์๋ธ๋ท์ IP ๋ฒ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ฒ์๋ฅผ ๋จ์ผ VPC ์ปค๋ฅํฐ๋ก ์ ํํ ์ ์์ต๋๋ค.
์ปค๋ฅํฐ VM ์ก์ธ์ค VPC ๋คํธ์ํฌ ๋ฆฌ์์ค ์ ํ
VPC ๋ฐฉํ๋ฒฝ ๊ท์น ๋๋ ๋ฐฉํ๋ฒฝ ์ ์ฑ ์ ๊ท์น์ ์ฌ์ฉํ์ฌ ๋์ VPC ๋คํธ์ํฌ์ ๋ฆฌ์์ค์ ๋ํ ์ปค๋ฅํฐ์ ์ก์ธ์ค๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๋ค์ ์ ๋ต ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์ ํ์ ์ํํ ์ ์์ต๋๋ค.
- ๋์์ด ์ปค๋ฅํฐ VM ์ก์ธ์ค๋ฅผ ์ ํํ๋ ค๋ ๋ฆฌ์์ค๋ฅผ ๋ํ๋ด๊ณ ์์ค๊ฐ ์ปค๋ฅํฐ VM์ ๋ํ๋ด๋ ์ธ๊ทธ๋ ์ค ๊ท์น์ ๋ง๋ญ๋๋ค.
- ๋์์ด ์ปค๋ฅํฐ VM์ ๋ํ๋ด๊ณ ๋์์ด ์ปค๋ฅํฐ VM ์ก์ธ์ค๋ฅผ ์ ํํ๋ ค๋ ๋ฆฌ์์ค๋ฅผ ๋ํ๋ด๋ ์ด๊ทธ๋ ์ค ๊ท์น์ ๋ง๋ญ๋๋ค.
๋ค์ ์์์์๋ ๊ฐ ์ ๋ต์ ๋ณด์ฌ์ค๋๋ค.
์ธ๊ทธ๋ ์ค ๊ท์น์ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ์ ํ
๋คํธ์ํฌ ํ๊ทธ๋ CIDR ๋ฒ์๋ฅผ ์ ํํ์ฌ VPC ๋คํธ์ํฌ๋ก ๋ค์ด์ค๋ ํธ๋ํฝ์ ์ ์ดํฉ๋๋ค.
๋คํธ์ํฌ ํ๊ทธ
๋ค์ ๋จ๊ณ์์๋ ์ปค๋ฅํฐ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ๊ธฐ์ค์ผ๋ก VPC ๋คํธ์ํฌ์ ๋ํ ์ปค๋ฅํฐ์ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ์ธ๊ทธ๋ ์ค ๊ท์น์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น์ ์ฝ์ ํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ์๋์ง ํ์ธํ์ธ์. ๋ค์ Identity and Access Management(IAM) ์ญํ ์ค ํ๋๊ฐ ์์ด์ผ ํฉ๋๋ค.
- Compute ๋ณด์ ๊ด๋ฆฌ์ ์ญํ
compute.firewalls.create
๊ถํ์ด ์ฌ์ฉ ์ค์ ๋ ์ปค์คํ IAM ์ญํ
VPC ๋คํธ์ํฌ์์ ์ปค๋ฅํฐ ํธ๋ํฝ์ ๊ฑฐ๋ถํ์ธ์.
์ปค๋ฅํฐ ๋คํธ์ํฌ ํ๊ทธ์์ ์ธ๊ทธ๋ ์ค๋ฅผ ๊ฑฐ๋ถํ๋ ค๋ฉด VPC ๋คํธ์ํฌ์์ ์ฐ์ ์์๊ฐ 1000๋ณด๋ค ๋ฎ์ ์ธ๊ทธ๋ ์ค ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค๊ฐ VPC ๋คํธ์ํฌ์์ ๋ง๋๋ ์์์ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ฌ์ ์๋ฉ๋๋ค.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
๋ค์์ ๋ฐ๊ฟ๋๋ค.
RULE_NAME: ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ด๋ฆ. ์๋ฅผ ๋ค๋ฉด
deny-vpc-connector
์ ๋๋ค.PROTOCOL: VPC ์ปค๋ฅํฐ์์ ํ์ฉํ ํ๋ ์ด์์ ํ๋กํ ์ฝ. ์ง์๋๋ ํ๋กํ ์ฝ์
tcp
๋๋udp
์ ๋๋ค. ์๋ฅผ ๋ค์ดtcp:80,udp
๋ ํฌํธ 80์ ํตํ TCP ํธ๋ํฝ ๋ฐ UDP ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์allow
ํ๋๊ทธ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.๋ณด์ ๋ฐ ๊ฒ์ฆ์ ์ํด ์ง์๋์ง ์๋ ํ๋กํ ์ฝ
ah
,all
,esp
,icmp
,ipip
,sctp
์ ๋ํ ํธ๋ํฝ์ ์ฐจ๋จํ๋๋ก ๊ฑฐ๋ถ ๊ท์น์ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค.VPC_CONNECTOR_NETWORK_TAG: ํฅํ ๋ชจ๋ ์ปค๋ฅํฐ๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ์ปค๋ฅํฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ค๋ ๊ฒฝ์ฐ ๋ฒ์ฉ ์ปค๋ฅํฐ ๋คํธ์ํฌ ํ๊ทธ ๋๋ ํน์ ์ปค๋ฅํฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ค๋ ๊ฒฝ์ฐ ๊ณ ์ ํ ๋คํธ์ํฌ ํ๊ทธ
- ๋ฒ์ฉ ๋คํธ์ํฌ ํ๊ทธ:
vpc-connector
๊ณ ์ ๋คํธ์ํฌ ํ๊ทธ:
vpc-connector-REGION-CONNECTOR_NAME
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
- REGION: ์ ํํ ์ปค๋ฅํฐ์ ๋ฆฌ์
- CONNECTOR_NAME: ์ ํํ ์ปค๋ฅํฐ์ ์ด๋ฆ
์ปค๋ฅํฐ ๋คํธ์ํฌ ํ๊ทธ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ๋ฒ์ฉ ๋คํธ์ํฌ ํ๊ทธ:
VPC_NETWORK: VPC ๋คํธ์ํฌ์ ์ด๋ฆ
PRIORITY: 0~65535 ์ฌ์ด์ ์ ์. ์๋ฅผ ๋ค์ด 0์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ ๋๋ค.
์ปค๋ฅํฐ ํธ๋ํฝ์ ์์ ํ ๋ฆฌ์์ค์ ๋ํ ์ปค๋ฅํฐ ํธ๋ํฝ์ ํ์ฉํ์ธ์.
allow
๋ฐtarget-tags
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ VPC ์ปค๋ฅํฐ์์ ์ก์ธ์คํ VPC ๋คํธ์ํฌ์ ๋ฆฌ์์ค๋ฅผ ํ๊ฒํ ํ๋ ์ธ๊ทธ๋ ์ค ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค. ์ด ๊ท์น์ ์ฐ์ ์์๋ฅผ ์ด์ ๋จ๊ณ์์ ๋ง๋ ๊ท์น์ ์ฐ์ ์์๋ณด๋ค ๋ฎ์ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
๋ค์์ ๋ฐ๊ฟ๋๋ค.
RULE_NAME: ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ด๋ฆ. ์๋ฅผ ๋ค๋ฉด
allow-vpc-connector-for-select-resources
์ ๋๋ค.PROTOCOL: VPC ์ปค๋ฅํฐ์์ ํ์ฉํ ํ๋ ์ด์์ ํ๋กํ ์ฝ. ์ง์๋๋ ํ๋กํ ์ฝ์
tcp
๋๋udp
์ ๋๋ค. ์๋ฅผ ๋ค์ดtcp:80,udp
๋ ํฌํธ 80์ ํตํ TCP ํธ๋ํฝ ๋ฐ UDP ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์allow
ํ๋๊ทธ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.VPC_CONNECTOR_NETWORK_TAG: ํฅํ ๋ชจ๋ ์ปค๋ฅํฐ๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ์ปค๋ฅํฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ค๋ ๊ฒฝ์ฐ ๋ฒ์ฉ ์ปค๋ฅํฐ ๋คํธ์ํฌ ํ๊ทธ ๋๋ ํน์ ์ปค๋ฅํฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ค๋ ๊ฒฝ์ฐ ๊ณ ์ ํ ๋คํธ์ํฌ ํ๊ทธ. ์ด ํ๊ทธ๋ ์ด์ ๋จ๊ณ์์ ์ง์ ํ ๋คํธ์ํฌ ํ๊ทธ์ ์ผ์นํด์ผ ํฉ๋๋ค.
- ๋ฒ์ฉ ๋คํธ์ํฌ ํ๊ทธ:
vpc-connector
๊ณ ์ ๋คํธ์ํฌ ํ๊ทธ:
vpc-connector-REGION-CONNECTOR_NAME
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
- REGION: ์ ํํ ์ปค๋ฅํฐ์ ๋ฆฌ์
- CONNECTOR_NAME: ์ ํํ ์ปค๋ฅํฐ์ ์ด๋ฆ
์ปค๋ฅํฐ ๋คํธ์ํฌ ํ๊ทธ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ๋ฒ์ฉ ๋คํธ์ํฌ ํ๊ทธ:
VPC_NETWORK: VPC ๋คํธ์ํฌ์ ์ด๋ฆ
RESOURCE_TAG: VPC ์ปค๋ฅํฐ์์ ์ก์ธ์คํ VPC ๋ฆฌ์์ค์ ๋คํธ์ํฌ ํ๊ทธ
PRIORITY: ์ด์ ๋จ๊ณ์์ ์ค์ ํ ์ฐ์ ์์๋ณด๋ค ์์ ์ ์. ์๋ฅผ ๋ค์ด ์ด์ ๋จ๊ณ์์ ๋ง๋ ๊ท์น์ ์ฐ์ ์์๋ฅผ 990์ผ๋ก ์ค์ ํ๋ฉด 980์ ์๋ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋๋ ํ์ ๋ฐ ์ ํ์ ํ๋๊ทธ์ ๋ํ ์์ธํ ๋ด์ฉ์ gcloud compute firewall-rules create
๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
CIDR ๋ฒ์
๋ค์ ๋จ๊ณ์์๋ ์ปค๋ฅํฐ์ CIDR ๋ฒ์๋ฅผ ๊ธฐ์ค์ผ๋ก VPC ๋คํธ์ํฌ์ ๋ํ ์ปค๋ฅํฐ์ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ์ธ๊ทธ๋ ์ค ๊ท์น์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น์ ์ฝ์ ํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ์๋์ง ํ์ธํ์ธ์. ๋ค์ Identity and Access Management(IAM) ์ญํ ์ค ํ๋๊ฐ ์์ด์ผ ํฉ๋๋ค.
- Compute ๋ณด์ ๊ด๋ฆฌ์ ์ญํ
compute.firewalls.create
๊ถํ์ด ์ฌ์ฉ ์ค์ ๋ ์ปค์คํ IAM ์ญํ
VPC ๋คํธ์ํฌ์์ ์ปค๋ฅํฐ ํธ๋ํฝ์ ๊ฑฐ๋ถํ์ธ์.
์ปค๋ฅํฐ์ CIDR ๋ฒ์์์ ์ธ๊ทธ๋ ์ค๋ฅผ ๊ฑฐ๋ถํ๋ ค๋ฉด VPC ๋คํธ์ํฌ์์ ์ฐ์ ์์๊ฐ 1000๋ณด๋ค ๋ฎ์ ์ธ๊ทธ๋ ์ค ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค๊ฐ VPC ๋คํธ์ํฌ์์ ๋ง๋๋ ์์์ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ฌ์ ์๋ฉ๋๋ค.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
๋ค์์ ๋ฐ๊ฟ๋๋ค.
RULE_NAME: ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ด๋ฆ. ์๋ฅผ ๋ค๋ฉด
deny-vpc-connector
์ ๋๋ค.PROTOCOL: VPC ์ปค๋ฅํฐ์์ ํ์ฉํ ํ๋ ์ด์์ ํ๋กํ ์ฝ. ์ง์๋๋ ํ๋กํ ์ฝ์
tcp
๋๋udp
์ ๋๋ค. ์๋ฅผ ๋ค์ดtcp:80,udp
๋ ํฌํธ 80์ ํตํ TCP ํธ๋ํฝ ๋ฐ UDP ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์allow
ํ๋๊ทธ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.๋ณด์ ๋ฐ ๊ฒ์ฆ์ ์ํด ์ง์๋์ง ์๋ ํ๋กํ ์ฝ
ah
,all
,esp
,icmp
,ipip
,sctp
์ ๋ํ ํธ๋ํฝ์ ์ฐจ๋จํ๋๋ก ๊ฑฐ๋ถ ๊ท์น์ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค.VPC_CONNECTOR_CIDR_RANGE: ์ก์ธ์ค๋ฅผ ์ ํํ๋ ์ปค๋ฅํฐ์ CIDR ๋ฒ์
VPC_NETWORK: VPC ๋คํธ์ํฌ์ ์ด๋ฆ
PRIORITY: 0~65535 ์ฌ์ด์ ์ ์. ์๋ฅผ ๋ค์ด 0์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ ๋๋ค.
์ปค๋ฅํฐ ํธ๋ํฝ์ ์์ ํ ๋ฆฌ์์ค์ ๋ํ ์ปค๋ฅํฐ ํธ๋ํฝ์ ํ์ฉํ์ธ์.
allow
๋ฐtarget-tags
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ VPC ์ปค๋ฅํฐ์์ ์ก์ธ์คํ VPC ๋คํธ์ํฌ์ ๋ฆฌ์์ค๋ฅผ ํ๊ฒํ ํ๋ ์ธ๊ทธ๋ ์ค ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค. ์ด ๊ท์น์ ์ฐ์ ์์๋ฅผ ์ด์ ๋จ๊ณ์์ ๋ง๋ ๊ท์น์ ์ฐ์ ์์๋ณด๋ค ๋ฎ์ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
๋ค์์ ๋ฐ๊ฟ๋๋ค.
RULE_NAME: ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ด๋ฆ. ์๋ฅผ ๋ค๋ฉด
allow-vpc-connector-for-select-resources
์ ๋๋ค.PROTOCOL: VPC ์ปค๋ฅํฐ์์ ํ์ฉํ ํ๋ ์ด์์ ํ๋กํ ์ฝ. ์ง์๋๋ ํ๋กํ ์ฝ์
tcp
๋๋udp
์ ๋๋ค. ์๋ฅผ ๋ค์ดtcp:80,udp
๋ ํฌํธ 80์ ํตํ TCP ํธ๋ํฝ ๋ฐ UDP ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์allow
ํ๋๊ทธ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.VPC_CONNECTOR_CIDR_RANGE: ์ก์ธ์ค๋ฅผ ์ ํํ๋ ์ปค๋ฅํฐ์ CIDR ๋ฒ์
VPC_NETWORK: VPC ๋คํธ์ํฌ์ ์ด๋ฆ
RESOURCE_TAG: VPC ์ปค๋ฅํฐ์์ ์ก์ธ์คํ VPC ๋ฆฌ์์ค์ ๋คํธ์ํฌ ํ๊ทธ
PRIORITY: ์ด์ ๋จ๊ณ์์ ์ค์ ํ ์ฐ์ ์์๋ณด๋ค ์์ ์ ์. ์๋ฅผ ๋ค์ด ์ด์ ๋จ๊ณ์์ ๋ง๋ ๊ท์น์ ์ฐ์ ์์๋ฅผ 990์ผ๋ก ์ค์ ํ๋ฉด 980์ ์๋ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋๋ ํ์ ๋ฐ ์ ํ์ ํ๋๊ทธ์ ๋ํ ์์ธํ ๋ด์ฉ์ gcloud compute firewall-rules create
๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด๊ทธ๋ ์ค ๊ท์น์ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ์ ํ
๋ค์ ๋จ๊ณ์์๋ ์ปค๋ฅํฐ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ์ด๊ทธ๋ ์ค ๊ท์น์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น์ ์ฝ์ ํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ์๋์ง ํ์ธํ์ธ์. ๋ค์ Identity and Access Management(IAM) ์ญํ ์ค ํ๋๊ฐ ์์ด์ผ ํฉ๋๋ค.
- Compute ๋ณด์ ๊ด๋ฆฌ์ ์ญํ
compute.firewalls.create
๊ถํ์ด ์ฌ์ฉ ์ค์ ๋ ์ปค์คํ IAM ์ญํ
์ปค๋ฅํฐ์ ์ด๊ทธ๋ ์ค ํธ๋ํฝ์ ๊ฑฐ๋ถํ์ธ์.
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ์์ ์ค์ ๋ ์๋ต์ ์ ์ธํ ๋ฐ์ ํธ๋ํฝ์ ๋์์ผ๋ก ๋ณด๋ด์ง ์๋๋ก ์ด๊ทธ๋ ์ค ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --direction=EGRESS \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --network=VPC_NETWORK \ --priority=PRIORITY
๋ค์์ ๋ฐ๊ฟ๋๋ค.
RULE_NAME: ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ด๋ฆ. ์๋ฅผ ๋ค๋ฉด
deny-vpc-connector
์ ๋๋ค.PROTOCOL: VPC ์ปค๋ฅํฐ์์ ํ์ฉํ ํ๋ ์ด์์ ํ๋กํ ์ฝ. ์ง์๋๋ ํ๋กํ ์ฝ์
tcp
๋๋udp
์ ๋๋ค. ์๋ฅผ ๋ค์ดtcp:80,udp
๋ ํฌํธ 80์ ํตํ TCP ํธ๋ํฝ ๋ฐ UDP ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์allow
ํ๋๊ทธ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.๋ณด์ ๋ฐ ๊ฒ์ฆ์ ์ํด ์ง์๋์ง ์๋ ํ๋กํ ์ฝ
ah
,all
,esp
,icmp
,ipip
,sctp
์ ๋ํ ํธ๋ํฝ์ ์ฐจ๋จํ๋๋ก ๊ฑฐ๋ถ ๊ท์น์ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค.VPC_CONNECTOR_NETWORK_TAG: ๊ท์น์ ๋ชจ๋ ๊ธฐ์กด VPC ์ปค๋ฅํฐ์ ๋์ค์ ์์ฑ๋๋ VPC ์ปค๋ฅํฐ์ ์ ์ฉํ๋ ค๋ ๊ฒฝ์ฐ์๋ ๋ฒ์ฉ VPC ์ปค๋ฅํฐ ๋คํธ์ํฌ ํ๊ทธ. ๋๋ ํน์ ์ปค๋ฅํฐ๋ฅผ ์ ์ดํ๋ ค๋ ๊ฒฝ์ฐ์๋ ๊ณ ์ ํ VPC ์ปค๋ฅํฐ ๋คํธ์ํฌ ํ๊ทธ์ ๋๋ค.
VPC_NETWORK: VPC ๋คํธ์ํฌ์ ์ด๋ฆ
PRIORITY: 0~65535 ์ฌ์ด์ ์ ์. ์๋ฅผ ๋ค์ด 0์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ ๋๋ค.
๋์์ด ์ปค๋ฅํฐ์์ ์ก์ธ์คํ๋ ค๋ CIDR ๋ฒ์์ ์์ผ๋ฉด ์ด๊ทธ๋ ์ค ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค.
allow
๋ฐdestination-ranges
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ๋์ ๋ฒ์์ ์ปค๋ฅํฐ์์ ์ด๊ทธ๋ ์ค ํธ๋ํฝ์ ํ์ฉํ๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค. ๋์ ๋ฒ์๋ฅผ ์ปค๋ฅํฐ์์ ์ก์ธ์คํ VPC ๋คํธ์ํฌ์ ๋ฆฌ์์ค CIDR ๋ฒ์๋ก ์ค์ ํฉ๋๋ค. ์ด ๊ท์น์ ์ฐ์ ์์๋ฅผ ์ด์ ๋จ๊ณ์์ ๋ง๋ ๊ท์น์ ์ฐ์ ์์๋ณด๋ค ๋ฎ์ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --destination-ranges=RESOURCE_CIDR_RANGE \ --direction=EGRESS \ --network=VPC_NETWORK \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --priority=PRIORITY
๋ค์์ ๋ฐ๊ฟ๋๋ค.
RULE_NAME: ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ด๋ฆ. ์๋ฅผ ๋ค๋ฉด
allow-vpc-connector-for-select-resources
์ ๋๋ค.PROTOCOL: VPC ์ปค๋ฅํฐ์์ ํ์ฉํ ํ๋ ์ด์์ ํ๋กํ ์ฝ. ์ง์๋๋ ํ๋กํ ์ฝ์
tcp
๋๋udp
์ ๋๋ค. ์๋ฅผ ๋ค์ดtcp:80,udp
๋ ํฌํธ 80์ ํตํ TCP ํธ๋ํฝ ๋ฐ UDP ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์allow
ํ๋๊ทธ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.RESOURCE_CIDR_RANGE: ์ก์ธ์ค๋ฅผ ์ ํํ๋ ์ปค๋ฅํฐ์ CIDR ๋ฒ์
VPC_NETWORK: VPC ๋คํธ์ํฌ์ ์ด๋ฆ
VPC_CONNECTOR_NETWORK_TAG: ๊ท์น์ ๋ชจ๋ ๊ธฐ์กด VPC ์ปค๋ฅํฐ์ ๋์ค์ ์์ฑ๋๋ VPC ์ปค๋ฅํฐ์ ์ ์ฉํ๋ ค๋ ๊ฒฝ์ฐ์๋ ๋ฒ์ฉ VPC ์ปค๋ฅํฐ ๋คํธ์ํฌ ํ๊ทธ. ๋๋ ํน์ ์ปค๋ฅํฐ๋ฅผ ์ ์ดํ๋ ค๋ ๊ฒฝ์ฐ์๋ ๊ณ ์ ํ VPC ์ปค๋ฅํฐ ๋คํธ์ํฌ ํ๊ทธ์ ๋๋ค. ์ด์ ๋จ๊ณ์์ ๊ณ ์ ํ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ํด๋น ๊ณ ์ ํ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
PRIORITY: ์ด์ ๋จ๊ณ์์ ์ค์ ํ ์ฐ์ ์์๋ณด๋ค ์์ ์ ์. ์๋ฅผ ๋ค์ด ์ด์ ๋จ๊ณ์์ ๋ง๋ ๊ท์น์ ์ฐ์ ์์๋ฅผ 990์ผ๋ก ์ค์ ํ๋ฉด 980์ ์๋ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋๋ ํ์ ๋ฐ ์ ํ์ ํ๋๊ทธ์ ๋ํ ์์ธํ ๋ด์ฉ์ gcloud compute firewall-rules create
๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ปค๋ฅํฐ ์ ๋ฐ์ดํธ
Google Cloud ์ฝ์, Google Cloud CLI, API๋ฅผ ์ฌ์ฉํ์ฌ ์ปค๋ฅํฐ์ ๋ค์ ์์ฑ์ ์ ๋ฐ์ดํธ ๋ฐ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
- ๋จธ์ (์ธ์คํด์ค) ์ ํ
- ์ต์ ๋ฐ ์ต๋ ์ธ์คํด์ค ์
- ์ต๊ทผ ์ฒ๋ฆฌ๋, ์ธ์คํด์ค ์, CPU ์ฌ์ฉ๋ฅ
๋จธ์ ์ ํ ์ ๋ฐ์ดํธ
์ฝ์
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ๊ฐ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์์ ํ ์ปค๋ฅํฐ๋ฅผ ์ ํํ๊ณ ์์ ์ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค ์ ํ ๋ชฉ๋ก์์ ์ํ๋ ๋จธ์ (์ธ์คํด์ค) ์ ํ์ ์ ํํฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋จธ์ ์ ํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฒ๋ฆฌ๋ ๋ฐ ํ์ฅ์ ๋ํ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
์ปค๋ฅํฐ ๋จธ์ ์ ํ์ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
๋ค์์ ๋ฐ๊ฟ๋๋ค.gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
CONNECTOR_NAME
: ์ปค๋ฅํฐ ์ด๋ฆREGION
: ์ปค๋ฅํฐ ๋ฆฌ์ ์ ์ด๋ฆMACHINE_TYPE
: ์ ํธํ๋ ๋จธ์ ์ ํ. ์ฌ์ฉ ๊ฐ๋ฅํ ๋จธ์ ์ ํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฒ๋ฆฌ๋ ๋ฐ ํ์ฅ์ ๋ํ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ต์ ๋ฐ ์ต๋ ์ธ์คํด์ค ์ ์ค์ด๊ธฐ
์ต์ ๋ฐ ์ต๋ ์ธ์คํด์ค ์๋ฅผ ์ค์ด๋ ค๋ฉด ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
- ์ ํธํ๋ ๊ฐ์ผ๋ก ์ ์ปค๋ฅํฐ๋ฅผ ๋ง๋ญ๋๋ค.
- ์ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ์๋น์ค ๋๋ ํจ์๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
- ํธ๋ํฝ์ด ์ด๋๋๋ฉด ์ด์ ์ปค๋ฅํฐ๋ฅผ ์ญ์ ํฉ๋๋ค.
์ต์ ๋ฐ ์ต๋ ์ธ์คํด์ค ์ ์ฆ๊ฐ
์ฝ์
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ๊ฐ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์์ ํ ์ปค๋ฅํฐ๋ฅผ ์ ํํ๊ณ ์์ ์ ํด๋ฆญํฉ๋๋ค.
์ต์ ์ธ์คํด์ค ํ๋์์ ์ ํธํ๋ ์ต์ ์ธ์คํด์ค ์๋ฅผ ์ ํํฉ๋๋ค.
์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต์๊ฐ์ ํ์ฌ ๊ฐ์ ๋๋ค. ์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต๋๊ฐ์ ์ต๋ ์ธ์คํด์ค ํ๋์ ํ์ฌ ๊ฐ์์ 1์ ๋บ ๊ฐ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ต๋ ์ธ์คํด์ค ํ๋ ๊ฐ์ด 8์ธ ๊ฒฝ์ฐ ์ต์ ์ธ์คํด์ค ํ๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ต๋๊ฐ์ 7์ ๋๋ค.
์ต๋ ์ธ์คํด์ค ํ๋์์ ์ ํธํ๋ ์ต๋ ์ธ์คํด์ค ์๋ฅผ ์ ํํฉ๋๋ค.
์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต์๊ฐ์ ํ์ฌ ๊ฐ์ ๋๋ค. ์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต๋๊ฐ์ 10์ ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
์ปค๋ฅํฐ์ ์ต์ ๋๋ ์ต๋ ์ธ์คํด์ค ์๋ฅผ ๋๋ฆฌ๋ ค๋ฉด ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
๋ค์์ ๋ฐ๊ฟ๋๋ค.gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
CONNECTOR_NAME
: ์ปค๋ฅํฐ ์ด๋ฆREGION
: ์ปค๋ฅํฐ ๋ฆฌ์ ์ ์ด๋ฆMIN_INSTANCES
: ์ ํธํ๋ ์ต์ ์ธ์คํด์ค ์.- ์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต์๊ฐ์
min_instances
์ ํ์ฌ ๊ฐ์ ๋๋ค. ํ์ฌ ๊ฐ์ ์ฐพ์ผ๋ ค๋ฉด ํ์ฌ ์์ฑ ๊ฐ ์ฐพ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์. min_instances
๊ฐmax_instances
๋ณด๋ค ์์์ผ ํ๋ฏ๋ก ์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต๋๊ฐ์ ํ์ฌmax_instances
๊ฐ์์ 1์ ๋บ ๊ฐ์ ๋๋ค. ์๋ฅผ ๋ค์ดmax_instances
๊ฐ 8์ด๋ฉด ์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต๋๊ฐ์ 7์ ๋๋ค. ์ปค๋ฅํฐ๊ฐ ๊ธฐ๋ณธ๊ฐ์ธmax-instances
10์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต๋๊ฐ์ 9์ ๋๋ค.max-instances
์ ๊ฐ์ ์ฐพ์ผ๋ ค๋ฉด ํ์ฌ ์์ฑ ๊ฐ ์ฐพ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต์๊ฐ์
MAX_INSTANCES
:- ์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต์๊ฐ์
max_instances
์ ํ์ฌ ๊ฐ์ ๋๋ค. ํ์ฌ ๊ฐ์ ์ฐพ์ผ๋ ค๋ฉด ํ์ฌ ์์ฑ ๊ฐ ์ฐพ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์. - ์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต๋๊ฐ์ 10์ ๋๋ค.
์ต์ ์ธ์คํด์ค ์๋ง ๋๋ฆฌ๊ณ ์ต๋๊ฐ์ ๋์ด๊ณ ์ถ์ง ์์ ๊ฒฝ์ฐ์๋ ์ต๋ ์ธ์คํด์ค ์๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค. ๋ฐ๋๋ก ์ต๋ ์ธ์คํด์ค ์๋ง ์ ๋ฐ์ดํธํ๊ณ ์ต์๊ฐ์ ์ ๋ฐ์ดํธํ์ง ์์ผ๋ ค๋ฉด ์ต์ ์ธ์คํด์ค ์๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค. ์ธ์คํด์ค์ ์ต์ ๋๋ ์ต๋ ์๋ฅผ ํ์ฌ ๊ฐ์ผ๋ก ์ ์งํ๋ ค๋ฉด ํ์ฌ ๊ฐ์ ์ง์ ํฉ๋๋ค. ํ์ฌ ๊ฐ์ ์ฐพ์ผ๋ ค๋ฉด ํ์ฌ ์์ฑ ๊ฐ ์ฐพ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ด ํ๋์์ ์ฌ์ฉํ ์ ์๋ ์ต์๊ฐ์
ํ์ฌ ์์ฑ ๊ฐ ์ฐพ๊ธฐ
์ปค๋ฅํฐ์ ํ์ฌ ์์ฑ ๊ฐ์ ์ฐพ์ผ๋ ค๋ฉด ํฐ๋ฏธ๋์์ ๋ค์์ ์คํํฉ๋๋ค.
gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
CONNECTOR_NAME
: ์ปค๋ฅํฐ ์ด๋ฆREGION
: ์ปค๋ฅํฐ ๋ฆฌ์ ์ ์ด๋ฆPROJECT
: Google Cloud ํ๋ก์ ํธ์ ์ด๋ฆ
์ปค๋ฅํฐ ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง
์ปค๋ฅํฐ ์ค์ ์กฐ์ ์๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ ๋์์ด ๋๋ ์๊ฐ๋ณ ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํฉ๋๋ค. ์๋ฅผ ๋ค์ด CPU ์ฌ์ฉ๋ฅ ์ด ๊ธ์ฆํ๋ฉด ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ์ธ์คํด์ค ์ต๋ ๊ฐ์ ์ฆ๊ฐ๋ฅผ ์๋ํ ์ ์์ต๋๋ค. ๋๋ ์ฒ๋ฆฌ๋์ ์ต๋์น๋ก ์ค์ ํ ๊ฒฝ์ฐ ๋ ํฐ ๋จธ์ ์ ํ์ผ๋ก ์ ํํ ์ ์์ต๋๋ค.
Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ์ปค๋ฅํฐ์ ์ฒ๋ฆฌ๋, ์ธ์คํด์ค ์, CPU ์ฌ์ฉ๋ฅ ์ธก์ ํญ๋ชฉ์ ๋ํ ์ฐจํธ๋ฅผ ํ์ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ๊ฐ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ชจ๋ํฐ๋งํ ์ปค๋ฅํฐ ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
1~90์ผ ์ค์์ ํ์ํ ์ผ์๋ฅผ ์ ํํฉ๋๋ค.
์ฒ๋ฆฌ๋ ์ฐจํธ์์ ์ฐจํธ ์๋ก ํฌ์ธํฐ๋ฅผ ๊ฐ์ ธ๊ฐ ์ปค๋ฅํฐ์ ์ต๊ทผ ์ฒ๋ฆฌ๋์ ํ์ธํฉ๋๋ค.
์ธ์คํด์ค ์ ์ฐจํธ์์ ์ฐจํธ ์๋ก ํฌ์ธํฐ๋ฅผ ๊ฐ์ ธ๊ฐ ์ปค๋ฅํฐ๊ฐ ์ต๊ทผ์ ์ฌ์ฉํ ์ธ์คํด์ค ์๋ฅผ ํ์ธํฉ๋๋ค.
CPU ์ฌ์ฉ๋ฅ ์ฐจํธ์์ ์ฐจํธ ์๋ก ํฌ์ธํฐ๋ฅผ ๊ฐ์ ธ๊ฐ ์ปค๋ฅํฐ์ ์ต๊ทผ CPU ์ฌ์ฉ๋์ ํ์ธํฉ๋๋ค. ์ฐจํธ์๋ 50๋ฒ์งธ, 95๋ฒ์งธ, 99๋ฒ์งธ ๋ฐฑ๋ถ์์์ ์ธ์คํด์ค์ ๋ถ์ฐ๋ CPU ์ฌ์ฉ๋์ด ํ์๋ฉ๋๋ค.
์ปค๋ฅํฐ ์ญ์
์ปค๋ฅํฐ๋ฅผ ์ญ์ ํ๊ธฐ ์ ์ ์ปค๋ฅํฐ๋ฅผ ์์ง ์ฌ์ฉํ๋ ์๋ฒ๋ฆฌ์ค ๋ฆฌ์์ค์์ ์ปค๋ฅํฐ๋ฅผ ์ญ์ ํด์ผ ํฉ๋๋ค. ์๋ฒ๋ฆฌ์ค ๋ฆฌ์์ค์์ ์ปค๋ฅํฐ๋ฅผ ์ญ์ ํ๊ธฐ ์ ์ ์ปค๋ฅํฐ๋ฅผ ์ญ์ ํ๋ฉด ๋์ค์ VPC ๋คํธ์ํฌ๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
๊ณต์ VPC ํธ์คํธ ํ๋ก์ ํธ์์ ์ปค๋ฅํฐ๋ฅผ ์ค์ ํ๋ ๊ณต์ VPC ์ฌ์ฉ์์ ๊ฒฝ์ฐ gcloud compute networks vpc-access connectors describe
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋ ์๋ฒ๋ฆฌ์ค ๋ฆฌ์์ค๊ฐ ์๋ ํ๋ก์ ํธ๋ฅผ ๋์ดํ ์ ์์ต๋๋ค.
์ปค๋ฅํฐ๋ฅผ ์ญ์ ํ๋ ค๋ฉด Google Cloud ์ฝ์์ด๋ Google Cloud CLI๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ๊ฐ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ญ์ ํ ์ปค๋ฅํฐ๋ฅผ ์ ํํฉ๋๋ค.
์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
์ปค๋ฅํฐ๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๋ค์
gcloud
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์.gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
๋ค์์ ๋ฐ๊ฟ๋๋ค.
- CONNECTOR_NAME: ์ญ์ ํ ์ปค๋ฅํฐ์ ์ด๋ฆ
- REGION: ์ปค๋ฅํฐ๊ฐ ์์นํ ๋ฆฌ์
ํ๋ก์ ํธ์ ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด ๊ด๋ฆฌ
์ด ์น์ ์์๋ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ์ ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด์ ๋ง๋ค๊ณ ํ๋ก์ ํธ ์์ค์์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ์ปค์คํ ์กฐ์ง ์ ์ฑ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ปค์คํ ์กฐ์ง ์ ์ฑ ๋ง๋ค๊ธฐ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Google Cloud ์กฐ์ง ์ ์ฑ ์ ์ฌ์ฉํ๋ฉด ์กฐ์ง ๋ฆฌ์์ค๋ฅผ ์ค์์์ ํ๋ก๊ทธ๋๋งคํฑ ๋ฐฉ์์ผ๋ก ์ ์ดํ ์ ์์ต๋๋ค. ์กฐ์ง ์ ์ฑ ๊ด๋ฆฌ์๋ Google Cloud ๋ฆฌ์์ค ๊ณ์ธต ๊ตฌ์กฐ์์Google Cloud ๋ฆฌ์์ค ๋ฐ ์ด๋ฌํ ๋ฆฌ์์ค์ ํ์ ์์์ ์ ์ฉ๋๋ ์ ์ฝ ์กฐ๊ฑด์ด๋ผ๋ ์ ํ์ฌํญ ์งํฉ์ธ ์กฐ์ง ์ ์ฑ ์ ์ ์ํ ์ ์์ต๋๋ค. ์กฐ์ง, ํด๋, ํ๋ก์ ํธ ์์ค์์ ์กฐ์ง ์ ์ฑ ์ ์ ์ฉํ ์ ์์ต๋๋ค.
์กฐ์ง ์ ์ฑ ์ ๋ค์ํGoogle Cloud ์๋น์ค์ ๋ํ ์ฌ์ ์ ์๋ ์ ์ฝ ์กฐ๊ฑด์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ์กฐ์ง ์ ์ฑ ์์ ์ ํ๋๋ ํน์ ํ๋๋ฅผ ๋์ฑ ์ธ๋ถ์ ์ผ๋ก ๋ง์ถค์ค์ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ์ ์ดํ๋ ค๋ฉด ์ปค์คํ ์กฐ์ง ์ ์ฑ ๋ ๋ง๋ค๋ฉด ๋ฉ๋๋ค.
์ด์
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค๋ฅผ ์ฌ์ฉํ๋ฉด Serverless VPC Access API์์ ์ฌ์ฉ์ ๊ตฌ์ฑ ํ๋ ๋๋ถ๋ถ์ ์ฌ์ฉํ์ฌ ์ํ๋ ์๋งํผ ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด์ ์์ฑํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ๊ฐ ์ฌ์ฉํ ์ ์๋ ์๋ธ๋ท์ ์ง์ ํ๋ ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด์ ๋ง๋ค ์ ์์ต๋๋ค.
์ ์ฉ๋๋ฉด ์์ฒญ์ด ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด์ด ์ ์ฉ๋๋ ์ ์ฑ ์ ์๋ฐํ๋ฉด gcloud CLI ๋ฐ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ๋ก๊ทธ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ์ค๋ฅ ๋ฉ์์ง์๋ ์ ์ฝ ์กฐ๊ฑด ID์ ์๋ฐํ ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด์ ๋ํ ์ค๋ช ์ด ํฌํจ๋ฉ๋๋ค.
์ ์ฑ ์์
๊ธฐ๋ณธ์ ์ผ๋ก ์กฐ์ง ์ ์ฑ ์ ์ ์ฑ ์ ์ ์ฉํ๋ ๋ฆฌ์์ค์ ํ์ ์์์ ์์๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ํด๋์ ์ ์ฑ ์ ์ ์ฉํ๋ฉด Google Cloud ๊ฐ ํด๋์ ๋ชจ๋ ํ๋ก์ ํธ์ ์ ์ฑ ์ ์ ์ฉํฉ๋๋ค. ์ด ๋์ ๋ฐ ์ด๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ณ์ธต ๊ตฌ์กฐ ํ๊ฐ ๊ท์น์ ์ฐธ์กฐํ์ธ์.
์ ํ์ฌํญ
๋จธ์ ์ ํ, ์ต์ ์ธ์คํด์ค ๋๋ ์ต๋ ์ธ์คํด์ค๋ฅผ ์ง์ ํ๋ ๊ฒ์ ์ง์๋์ง ์์ต๋๋ค.
์์ํ๊ธฐ ์ ์
์กฐ์ง ID๋ฅผ ์๊ณ ์์ด์ผ ํฉ๋๋ค.
ํ์ํ ์ญํ
์กฐ์ง ์ ์ฑ
์ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๊ถํ์ ์ป์ผ๋ ค๋ฉด ๊ด๋ฆฌ์์๊ฒ ์กฐ์ง ๋ฆฌ์์ค์ ๋ํ ์กฐ์ง ์ ์ฑ
๊ด๋ฆฌ์(roles/orgpolicy.policyAdmin
) IAM ์ญํ ์ ๋ถ์ฌํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ธ์.
์ญํ ๋ถ์ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ปค์คํ ์ญํ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ํตํด ํ์ํ ๊ถํ์ ์ป์ ์๋ ์์ต๋๋ค.
์ปค์คํ ์ ์ฝ์กฐ๊ฑด ๋ง๋ค๊ธฐ
์ปค์คํ ์ ์ฝ์กฐ๊ฑด์ ์กฐ์ง ์ ์ฑ ์ ์ ์ฉํ๋ ์๋น์ค์์ ์ง์๋๋ ๋ฆฌ์์ค, ๋ฉ์๋, ์กฐ๊ฑด, ์์ ์ ์ฌ์ฉํ์ฌ YAML ํ์ผ์์ ์ ์๋ฉ๋๋ค. ์ปค์คํ ์ ์ฝ์กฐ๊ฑด์ ์กฐ๊ฑด์ Common Expression Language(CEL)๋ฅผ ์ฌ์ฉํ์ฌ ์ ์๋ฉ๋๋ค. CEL์ ์ฌ์ฉํด์ ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด์์ ์กฐ๊ฑด์ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด ๋ง๋ค๊ธฐ ๋ฐ ๊ด๋ฆฌ์ CEL ์น์ ์ ์ฐธ์กฐํ์ธ์.
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด์ YAML ํ์ผ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- vpcaccess.googleapis.com/Connector
methodTypes:
- CREATE
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
๋ค์์ ๋ฐ๊ฟ๋๋ค.
ORGANIZATION_ID
: ์กฐ์ง ID(์:123456789
)CONSTRAINT_NAME
: ์ ์ปค์คํ ์ ์ฝ์กฐ๊ฑด์ ์ฌ์ฉํ๋ ค๋ ์ด๋ฆ. ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด์custom.
์ผ๋ก ์์ํด์ผ ํ๋ฉฐ ๋๋ฌธ์, ์๋ฌธ์, ์ซ์๋ง ํฌํจํ ์ ์์ต๋๋ค(์: custom.defaultNetworkConstraint.). ์ด ํ๋์ ์ต๋ ๊ธธ์ด๋ ํ๋ฆฌํฝ์ค๋ฅผ ์ ์ธํ๊ณ 70์(์๋ฌธ ๊ธฐ์ค)์ ๋๋ค.CONDITION
: ์ง์๋๋ ์๋น์ค ๋ฆฌ์์ค์ ํํ์ ๋ํด ์์ฑ๋ CEL ์กฐ๊ฑด. ์ด ํ๋์ ์ต๋ ๊ธธ์ด๋ 1000์(์๋ฌธ ๊ธฐ์ค)์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด"resource.network == default"
์ ๋๋ค.ACTION
:condition
์ด ์ถฉ์กฑ๋ ๋ ์ํํ ์์ .ALLOW
๋๋DENY
์ผ ์ ์์ต๋๋ค.DISPLAY_NAME
: ์ ์ฝ์กฐ๊ฑด์ ๋ํ ์ฌ์ฉ์ ์นํ์ ์ธ ์ด๋ฆ. ์ด ํ๋์ ์ต๋ ๊ธธ์ด๋ 200์(์๋ฌธ ๊ธฐ์ค)์ ๋๋ค.DESCRIPTION
: ์ ์ฑ ์ ์๋ฐํ ๋ ์ค๋ฅ ๋ฉ์์ง๋ก ํ์ํ ์ ์ฝ ์กฐ๊ฑด์ ๋ํ ์ฌ์ฉ์ ์นํ์ ์ธ ์ค๋ช (์:"Require network to not be set to default."
์ด ํ๋์ ์ต๋ ๊ธธ์ด๋ 2,000์(์๋ฌธ ๊ธฐ์ค)).
์ปค์คํ ์ ์ฝ์กฐ๊ฑด์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ปค์คํ ์ ์ฝ์กฐ๊ฑด ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ปค์คํ ์ ์ฝ์กฐ๊ฑด ์ค์
์ ์ปค์คํ ์ ์ฝ์กฐ๊ฑด์ YAML ํ์ผ์ ๋ง๋ ํ์๋ ์กฐ์ง์์ ์กฐ์ง ์ ์ฑ ์ ์ฌ์ฉํ ์ ์๋๋ก ์ค์ ํด์ผ ํฉ๋๋ค. ์ปค์คํ ์ ์ฝ์กฐ๊ฑด์ ์ค์ ํ๋ ค๋ฉดgcloud org-policies set-custom-constraint
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
๋ฅผ ์ปค์คํ
์ ์ฝ์กฐ๊ฑด ํ์ผ์ ์ ์ฒด ๊ฒฝ๋ก๋ก ๋ฐ๊ฟ๋๋ค. ์๋ฅผ ๋ค๋ฉด /home/user/customconstraint.yaml
์
๋๋ค.
์๋ฃ๋๋ฉด Google Cloud ์กฐ์ง ์ ์ฑ
๋ชฉ๋ก์์ ์กฐ์ง ์ ์ฑ
์ผ๋ก ์ปค์คํ
์ ์ฝ์กฐ๊ฑด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ปค์คํ
์ ์ฝ์กฐ๊ฑด์ด ์กด์ฌํ๋์ง ํ์ธํ๋ ค๋ฉด gcloud org-policies list-custom-constraints
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
๋ฅผ ์กฐ์ง ๋ฆฌ์์ค ID๋ก ๋ฐ๊ฟ๋๋ค.
์์ธํ ๋ด์ฉ์ ์กฐ์ง ์ ์ฑ
๋ณด๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ปค์คํ ์ ์ฝ์กฐ๊ฑด ์ ์ฉ
์ ์ฝ์กฐ๊ฑด์ ์ฐธ์กฐํ๋ ์กฐ์ง ์ ์ฑ ์ ๋ง๋ค๊ณ ํด๋น ์กฐ์ง ์ ์ฑ ์ Google Cloud ๋ฆฌ์์ค์ ์ ์ฉํ์ฌ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ฉํ ์ ์์ต๋๋ค.์ฝ์
- Google Cloud ์ฝ์์์ ์กฐ์ง ์ ์ฑ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ํ๋ก์ ํธ ์ ํ ๋๊ตฌ์์ ์กฐ์ง ์ ์ฑ ์ ์ค์ ํ ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
- ์กฐ์ง ์ ์ฑ ํ์ด์ง์ ๋ชฉ๋ก์์ ์ ์ฝ์กฐ๊ฑด์ ์ ํํ์ฌ ํด๋น ์ ์ฝ์กฐ๊ฑด์ ์ ์ฑ ์ธ๋ถ์ ๋ณด ํ์ด์ง๋ฅผ ๋ด ๋๋ค.
- ์ด ๋ฆฌ์์ค์ ์กฐ์ง ์ ์ฑ ์ ๊ตฌ์ฑํ๋ ค๋ฉด ์ ์ฑ ๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ์ฑ ์์ ํ์ด์ง์์ ์์ ์ ์ฑ ์ฌ์ ์๋ฅผ ์ ํํฉ๋๋ค.
- ๊ท์น ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ์ฉ ์น์ ์์ ์ด ์กฐ์ง ์ ์ฑ ์ ์ฉ์ ์ฌ์ฉ ์ค์ ํ ์ง ์ฌ๋ถ๋ฅผ ์ ํํฉ๋๋ค.
- (์ ํ์ฌํญ) ํ๊ทธ๋ก ์กฐ์ง ์ ์ฑ ์ ์กฐ๊ฑด๋ถ๋ก ๋ง๋ค๋ ค๋ฉด ์กฐ๊ฑด ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ์กฐ๊ฑด๋ถ ๊ท์น์ ์กฐ์ง ์ ์ฑ ์ ์ถ๊ฐํ๋ฉด ๋น์กฐ๊ฑด๋ถ ๊ท์น์ ์ต์ ํ๋ ์ด์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ์ฑ ์ ์ ์ฅํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ์ง ์ ์ฑ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
- ๋ณ๊ฒฝ์ฌํญ ํ ์คํธ๋ฅผ ํด๋ฆญํ์ฌ ์กฐ์ง ์ ์ฑ ์ ํจ๊ณผ๋ฅผ ์๋ฎฌ๋ ์ด์ ํฉ๋๋ค. ๊ธฐ์กด ๊ด๋ฆฌํ ์ ์ฝ์กฐ๊ฑด์๋ ์ ์ฑ ์๋ฎฌ๋ ์ด์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ ์ฑ ์๋ฎฌ๋ ์ดํฐ๋ก ์กฐ์ง ์ ์ฑ ๋ณ๊ฒฝ์ฌํญ ํ ์คํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์กฐ์ง ์ ์ฑ ์ ์๋ฃํ๊ณ ์ ์ฉํ๋ ค๋ฉด ์ ์ฑ ์ค์ ์ ํด๋ฆญํฉ๋๋ค. ์ ์ฑ ์ด ์ ์ฉ๋๋ ๋ฐ ์ต๋ 15๋ถ์ด ์์๋ฉ๋๋ค.
gcloud
๋ถ๋ฆฌ์ธ ๊ท์น์ด ์๋ ์กฐ์ง ์ ์ฑ ์ ๋ง๋ค๋ ค๋ฉด ์ ์ฝ์กฐ๊ฑด์ ์ฐธ์กฐํ๋ ์ ์ฑ YAML ํ์ผ์ ๋ง๋ญ๋๋ค.
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
๋ค์์ ๋ฐ๊ฟ๋๋ค.
-
PROJECT_ID
: ์ ์ฝ์กฐ๊ฑด์ ์ ์ฉํ ํ๋ก์ ํธ -
CONSTRAINT_NAME
: ์ปค์คํ ์ ์ฝ์กฐ๊ฑด์ ๋ํด ์ ์๋ ์ด๋ฆ. ์๋ฅผ ๋ค๋ฉดcustom.defaultNetworkConstraint
์ ๋๋ค.
์ ์ฝ์กฐ๊ฑด์ด ํฌํจ๋ ์กฐ์ง ์ ์ฑ ์ ์ ์ฉํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud org-policies set-policy POLICY_PATH
POLICY_PATH
๋ฅผ ์กฐ์ง ์ ์ฑ
YAML ํ์ผ์ ์ ์ฒด ๊ฒฝ๋ก๋ก ๋ฐ๊ฟ๋๋ค. ์ ์ฑ
์ด ์ ์ฉ๋๋ ๋ฐ ์ต๋ 15๋ถ์ด ์์๋ฉ๋๋ค.
์ปค์คํ ์ ์ฝ์กฐ๊ฑด ํ ์คํธ
์ธ๊ทธ๋ ์ค ์ค์ ์ ์ ํํ๋ ์์๋ฅผ ํ
์คํธํ๋ ค๋ฉด ๋คํธ์ํฌ๋ฅผ default
๋ก ์ค์ ํ์ฌ ํ๋ก์ ํธ์ ์ปค๋ฅํฐ๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
gcloud compute networks vpc-access connectors create org-policy-test \
--project=PROJECT_ID \
--region=REGION_ID \
--network=default
์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Operation denied by custom org policies: ["customConstraints/custom.defaultNetworkConstraint": "Require network to not be set to default."]
์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก์ ์ปค์คํ ์กฐ์ง ์ ์ฑ ์์
๋ค์ ํ์๋ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ์์ ์ ์ฉํ ์ ์๋ ์ปค์คํ ์ ์ฝ ์กฐ๊ฑด์ ์์๊ฐ ๋์ ์์ต๋๋ค.
์ค๋ช | ์ ์ฝ์กฐ๊ฑด ๊ตฌ๋ฌธ |
---|---|
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ๊ฐ ํน์ ๋คํธ์ํฌ๋ง ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค. |
name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistNetworks resourceTypes: - vpcaccess.googleapis.com/Connector methodTypes: - CREATE condition: "resource.network == 'allowlisted-network'" actionType: ALLOW displayName: allowlistNetworks description: Require connectors to use a specific network. |
์ค๋ช | ์ ์ฝ์กฐ๊ฑด ๊ตฌ๋ฌธ |
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ๊ฐ ํน์ ์๋ธ๋ท์๋ง ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค. |
name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictSubnetForProject resourceTypes: - vpcaccess.googleapis.com/Connector methodTypes: - CREATE condition: "resource.subnet.name == 'allocated-subnet'" actionType: ALLOW displayName: restrictSubnetForProject description: This project is only allowed to use the subnet "allocated-subnet". |
์ปค๋ฅํฐ ๋์ Direct VPC๋ฅผ ์ฌ์ฉํ๋๋ก Cloud Run ํ๊ฒฝ ๊ตฌ์ฑ
Cloud Run ์๋น์ค๋ฅผ ์ฌ์ฉ ์ค์ ํ์ฌ ์ด๊ทธ๋ ์ค(์์๋ฐ์ด๋) ํธ๋ํฝ์ VPC ๋คํธ์ํฌ๋ก ์ง์ ์ ์กํ์ฌ Compute Engine VM ์ธ์คํด์ค, Memorystore ์ธ์คํด์ค, ๋ด๋ถ IP ์ฃผ์๊ฐ ์๋ ๊ธฐํ ๋ชจ๋ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
Direct VPC๋ฅผ ์ฌ์ฉํ๋๋ก ์๋น์ค ๊ตฌ์ฑ
Direct VPC ์ด๊ทธ๋ ์ค๋ฅผ ์ฌ์ฉํ๋ฉด Cloud Run ์๋น์ค๊ฐ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ ์์ด VPC ๋คํธ์ํฌ๋ก ํธ๋ํฝ์ ์ ์กํ ์ ์์ต๋๋ค. ๋คํธ์ํฌ ๋น์ฉ์ ์๋น์ค ์์ฒด์ ๋ง์ฐฌ๊ฐ์ง๋ก 0์ผ๋ก ์กฐ์ ๋ฉ๋๋ค. VPC ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ด Cloud Run ์๋น์ค ๋ฒ์ ์์ ์ง์ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ์ถ๊ฐํ์ฌ ๋คํธ์ํฌ ๋ณด์์ ๋์ฑ ์ธ๋ถํํ ์ ์์ต๋๋ค.
Google Cloud ์ฝ์, Google Cloud CLI, YAML ๋๋ Terraform์ ์ฌ์ฉํ์ฌ ์๋น์ค์ ํจ๊ป Direct VPC ์ด๊ทธ๋ ์ค๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ฝ์
๋ฐฐํฌํ ์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ์๋น์ค ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ๊ธฐ์กด ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ์๋น์ค๋ฅผ ํด๋ฆญํ ํ ์ ๋ฒ์ ์์ ๋ฐ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ ํ์์ ๋ฐ๋ผ ์ด๊ธฐ ์๋น์ค ์ค์ ํ์ด์ง๋ฅผ ์์ฑํ ํ ์ปจํ ์ด๋, ๋ณผ๋ฅจ, ๋คํธ์ํน, ๋ณด์์ ํด๋ฆญํ์ฌ ์๋น์ค ๊ตฌ์ฑ ํ์ด์ง๋ฅผ ํผ์นฉ๋๋ค.
๋คํธ์ํน ํญ์ ํด๋ฆญํฉ๋๋ค.
์์๋ฐ์ด๋ ํธ๋ํฝ์ ์ํด VPC์ ์ฐ๊ฒฐ์ ํด๋ฆญํฉ๋๋ค.
VPC๋ก ์ง์ ํธ๋ํฝ ์ ์ก์ ํด๋ฆญํฉ๋๋ค.
๋คํธ์ํฌ ํ๋์์ ํธ๋ํฝ์ ์ ์กํ VPC ๋คํธ์ํฌ๋ฅผ ์ ํํฉ๋๋ค.
์๋ธ๋ท ํ๋์์ ์๋น์ค๊ฐ IP ์ฃผ์๋ฅผ ์์ ํ ์๋ธ๋ท์ ์ ํํฉ๋๋ค. ๋์ผํ ์๋ธ๋ท์ ์ฌ๋ฌ ์๋น์ค๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
(์ ํ์ฌํญ) ์๋น์ค ๋๋ ์ฐ๊ฒฐํ ๋คํธ์ํฌ ํ๊ทธ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค. ๋คํธ์ํฌ ํ๊ทธ๋ ๋ฒ์ ์์ค์์ ์ง์ ๋ฉ๋๋ค. ๊ฐ ์๋น์ค ๋ฒ์ ์
network-tag-2
์ ๊ฐ์ ๋ค๋ฅธ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.ํธ๋ํฝ ๋ผ์ฐํ ์ ๋ค์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
- VPC ๋คํธ์ํฌ๋ฅผ ํตํด ๋ด๋ถ ์ฃผ์๋ก๋ง ํธ๋ํฝ์ ์ ์กํ๋๋ก ๋น๊ณต๊ฐ IP์ ๋ํ ์์ฒญ๋ง VPC๋ก ๋ผ์ฐํ ํฉ๋๋ค.
- VPC ๋คํธ์ํฌ๋ฅผ ํตํด ๋ชจ๋ ์์๋ฐ์ด๋ ํธ๋ํฝ์ ์ ์กํ๋ ค๋ฉด ๋ชจ๋ ํธ๋ํฝ์ VPC๋ก ๋ผ์ฐํ ํฉ๋๋ค.
๋ง๋ค๊ธฐ ๋๋ ๋ฐฐํฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์๋น์ค๊ฐ VPC ๋คํธ์ํฌ์ ์๋์ง ํ์ธํ๋ ค๋ฉด ์๋น์ค๋ฅผ ํด๋ฆญํ ํ ๋คํธ์ํน ํญ์ ํด๋ฆญํฉ๋๋ค. ๋คํธ์ํฌ์ ์๋ธ๋ท์ VPC ์นด๋์ ๋์ด๋ฉ๋๋ค.
์ด์ ๋ฐฉํ๋ฒฝ ๊ท์น์์ ํ์ฉํ๋ ๋๋ก Cloud Run ์๋น์ค์์ VPC ๋คํธ์ํฌ์ ๋ชจ๋ ๋ฆฌ์์ค๋ก ์์ฒญ์ ์ ์กํ ์ ์์ต๋๋ค.
gcloud
Google Cloud CLI์์ ์ปค๋ฅํฐ ์์ด Cloud Run ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
gcloud
๊ตฌ์ฑ์์๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค.gcloud components update
ํ๋ก์ ํธ์ Compute Engine API๊ฐ ์ฌ์ฉ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.
gcloud services enable compute.googleapis.com
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ Cloud Run ์๋น์ค๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
gcloud run deploy SERVICE_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --vpc-egress=EGRESS_SETTING \ --region=REGION
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
- SERVICE_NAME: Cloud Run ์๋น์ค ์ด๋ฆ
- IMAGE_URL: ์ปจํ
์ด๋ ์ด๋ฏธ์ง์ ๋ํ ์ฐธ์กฐ(์:
us-docker.pkg.dev/cloudrun/container/hello:latest
). Artifact Registry๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ์ฅ์ REPO_NAME์ด ์ด๋ฏธ ์์ฑ๋์ด ์์ด์ผ ํฉ๋๋ค. URL์LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
ํ์์ ๋ฐ๋ฆ ๋๋ค. - (์ ํ์ฌํญ) NETWORK: VPC ๋คํธ์ํฌ ์ด๋ฆ. VPC ๋คํธ์ํฌ ๋๋ ์๋ธ๋ท, ๋๋ ๋ ๋ค๋ฅผ ์ง์ ํฉ๋๋ค. ๋คํธ์ํฌ๋ง ์ง์ ํ๋ฉด ์๋ธ๋ท์ ๋คํธ์ํฌ์ ๋์ผํ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.
- (์ ํ์ฌํญ) SUBNET: ์๋ธ๋ท ์ด๋ฆ. ์๋ธ๋ท์
/26
์ด์์ด์ด์ผ ํฉ๋๋ค. ์ง์ VPC ์ด๊ทธ๋ ์ค๋ IPv4 ๋ฒ์ RFC 1918, RFC 6598, ํด๋์ค E๋ฅผ ์ง์ํฉ๋๋ค. ๋์ผํ ์๋ธ๋ท์์ ์ฌ๋ฌ ์๋น์ค ๋๋ ์์ ์ ๋ฐฐํฌํ๊ฑฐ๋ ์คํํ ์ ์์ง๋ง ์๋ธ๋ท์ ๊ธฐ์กด ์ปค๋ฅํฐ์์ ๊ณต์ ํ ์ ์์ต๋๋ค. - (์ ํ์ฌํญ) NETWORK_TAG_NAMES: ์๋น์ค์ ์ฐ๊ฒฐํ ๋คํธ์ํฌ ํ๊ทธ์ ์ผํ๋ก ๊ตฌ๋ถ๋ ์ด๋ฆ. ์๋น์ค์ ๊ฒฝ์ฐ ๋คํธ์ํฌ ํ๊ทธ๊ฐ ๋ฒ์ ์์ค์์ ์ง์ ๋ฉ๋๋ค. ๊ฐ ์๋น์ค ๋ฒ์ ์
network-tag-2
์ ๊ฐ์ ๋ค๋ฅธ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. - EGRESS_SETTING: ์ด๊ทธ๋ ์ค ์ค์ ๊ฐ
all-traffic
: ๋ชจ๋ ์์๋ฐ์ด๋ ํธ๋ํฝ์ VPC ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์กprivate-ranges-only
: VPC ๋คํธ์ํฌ๋ฅผ ํตํด ๋ด๋ถ ์ฃผ์๋ก๋ง ํธ๋ํฝ์ ์ ์ก
- REGION: ์๋น์ค ๋ฆฌ์
์๋น์ค๊ฐ VPC ๋คํธ์ํฌ์ ์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud run services describe SERVICE_NAME \ --region=REGION
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
SERVICE_NAME
: ์๋น์ค ์ด๋ฆREGION
: ์ด์ ๋จ๊ณ์์ ์ง์ ํ ์๋น์ค์ ๋ฆฌ์
์ถ๋ ฅ์๋ ๋คํธ์ํฌ, ์๋ธ๋ท, ์ด๊ทธ๋ ์ค ์ค์ ์ ์ด๋ฆ์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
VPC access: Network: default Subnet: subnet Egress: private-ranges-only
์ด์ ๋ฐฉํ๋ฒฝ ๊ท์น์์ ํ์ฉํ๋ ๋๋ก Cloud Run ์๋น์ค์์ VPC ๋คํธ์ํฌ์ ๋ชจ๋ ๋ฆฌ์์ค๋ก ์์ฒญ์ ์ ์กํ ์ ์์ต๋๋ค.
YAML
์ ์๋น์ค๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ์๋ ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค. ๊ธฐ์กด ์๋น์ค๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ YAML ๊ตฌ์ฑ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
gcloud run services describe SERVICE --format export > service.yaml
๋ค์ ์์ฑ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE_NAME labels: cloud.googleapis.com/location: REGION spec: template: metadata: annotations: run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]' run.googleapis.com/vpc-access-egress: EGRESS_SETTING spec: containers: - image: IMAGE
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
- SERVICE_NAME: Cloud Run ์๋น์ค ์ด๋ฆ ์๋น์ค ์ด๋ฆ์ 49์ ์ดํ์ฌ์ผ ํ๋ฉฐ ๋ฆฌ์ ๋ฐ ํ๋ก์ ํธ๋ณ๋ก ๊ณ ์ ํด์ผ ํฉ๋๋ค.
- REGION: Cloud Run ์๋น์ค์ ๋ฆฌ์ . ์ด ๋ฆฌ์ ์ ์๋ธ๋ท ๋ฆฌ์ ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค.
- (์ ํ์ฌํญ) NETWORK: VPC ๋คํธ์ํฌ ์ด๋ฆ. VPC ๋คํธ์ํฌ ๋๋ ์๋ธ๋ท, ๋๋ ๋ ๋ค๋ฅผ ์ง์ ํฉ๋๋ค. ๋คํธ์ํฌ๋ง ์ง์ ํ๋ฉด ์๋ธ๋ท์ ๋คํธ์ํฌ์ ๋์ผํ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.
- (์ ํ์ฌํญ) SUBNET: ์๋ธ๋ท ์ด๋ฆ. ์๋ธ๋ท์
/26
์ด์์ด์ด์ผ ํฉ๋๋ค. ์ง์ VPC ์ด๊ทธ๋ ์ค๋ IPv4 ๋ฒ์ RFC 1918, RFC 6598, ํด๋์ค E๋ฅผ ์ง์ํฉ๋๋ค. ๋์ผํ ์๋ธ๋ท์์ ์ฌ๋ฌ ์๋น์ค ๋๋ ์์ ์ ๋ฐฐํฌํ๊ฑฐ๋ ์คํํ ์ ์์ง๋ง ์๋ธ๋ท์ ๊ธฐ์กด ์ปค๋ฅํฐ์์ ๊ณต์ ํ ์ ์์ต๋๋ค. - (์ ํ์ฌํญ) NETWORK_TAG_NAMES: ์๋น์ค์ ์ฐ๊ฒฐํ ๋คํธ์ํฌ ํ๊ทธ์ ์ด๋ฆ. ์๋น์ค์ ๊ฒฝ์ฐ ๋คํธ์ํฌ ํ๊ทธ๊ฐ ๋ฒ์ ์์ค์์ ์ง์ ๋ฉ๋๋ค. ๊ฐ ์๋น์ค ๋ฒ์ ์
network-tag-2
์ ๊ฐ์ ๋ค๋ฅธ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. - EGRESS_SETTING: ์ด๊ทธ๋ ์ค ์ค์ ๊ฐ
all-traffic
: ๋ชจ๋ ์์๋ฐ์ด๋ ํธ๋ํฝ์ VPC ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์กprivate-ranges-only
: VPC ๋คํธ์ํฌ๋ฅผ ํตํด ๋ด๋ถ ์ฃผ์๋ก๋ง ํธ๋ํฝ์ ์ ์ก
- IMAGE: ์๋น์ค ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ URL
๋ํ ํ๊ฒฝ ๋ณ์ ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ๊ณผ ๊ฐ์ ์ถ๊ฐ ๊ตฌ์ฑ์ ์ง์ ํ ์ ์์ต๋๋ค.
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ ๋ฐ์ดํธํฉ๋๋ค.
gcloud run services replace service.yaml
Terraform
Terraform ๊ตฌ์ฑ์ ์ ์ฉํ๊ฑฐ๋ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋ณธ Terraform ๋ช ๋ น์ด๋ฅผ ์ฐธ์กฐํ์ธ์.
main.tf
ํ์ผ์ ๋ค์์ ์ถ๊ฐํฉ๋๋ค.
์ ํ์ ์ผ๋ก ์๋น์ค์ ๋ํ ์ธ์ฆ๋์ง ์์ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ ค๋ฉด ์๋น์ค๋ฅผ ๊ณต๊ฐ๋ก ์ค์ ํฉ๋๋ค.
Direct VPC๋ฅผ ์ฌ์ฉํ๋๋ก ์์ ๊ตฌ์ฑ
Direct VPC ์ด๊ทธ๋ ์ค๋ฅผ ์ฌ์ฉํ๋ฉด Cloud Run ์์ ์ด ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ ์์ด VPC ๋คํธ์ํฌ๋ก ํธ๋ํฝ์ ์ ์กํ ์ ์์ต๋๋ค. VPC ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ด Cloud Run ์์ ์์ ์ง์ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ์ถ๊ฐํ์ฌ ๋คํธ์ํฌ ๋ณด์์ ๋์ฑ ์ธ๋ถํํ ์ ์์ต๋๋ค.
Google Cloud ์ฝ์, Google Cloud CLI, YAML์ ์ฌ์ฉํ์ฌ ์์ ๊ณผ ํจ๊ป Direct VPC ์ด๊ทธ๋ ์ค๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ฝ์
์ ์์ ์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ ์์ ํญ์ ํด๋ฆญํ๊ณ ํ์์ ๋ฐ๋ผ ์ด๊ธฐ ์์ ์ค์ ํ์ด์ง๋ฅผ ์์ฑํฉ๋๋ค. ๊ธฐ์กด ์์ ์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ ์์ ์ ํด๋ฆญํ ํ ์์ ์ ํด๋ฆญํฉ๋๋ค.
์ปจํ ์ด๋, ๋ณ์ ๋ฐ ๋ณด์ ๋น๋ฐ, ์ฐ๊ฒฐ, ๋ณด์์ ํด๋ฆญํ์ฌ ์์ ์์ฑ ํ์ด์ง๋ฅผ ํผ์นฉ๋๋ค.
์ฐ๊ฒฐ ํญ์ ํด๋ฆญํฉ๋๋ค.
์์๋ฐ์ด๋ ํธ๋ํฝ์ ์ํด VPC์ ์ฐ๊ฒฐ์ ํด๋ฆญํฉ๋๋ค.
VPC๋ก ์ง์ ํธ๋ํฝ ์ ์ก์ ํด๋ฆญํฉ๋๋ค.
๋คํธ์ํฌ ํ๋์์ ํธ๋ํฝ์ ์ ์กํ VPC ๋คํธ์ํฌ๋ฅผ ์ ํํฉ๋๋ค.
์๋ธ๋ท ํ๋์์ ์์ ์ด IP ์ฃผ์๋ฅผ ์์ ํ ์๋ธ๋ท์ ์ ํํฉ๋๋ค. ๋์ผํ ์๋ธ๋ท์์ ์ฌ๋ฌ ์์ ์ ์คํํ ์ ์์ต๋๋ค.
ํธ๋ํฝ ๋ผ์ฐํ ์ ๋ค์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
- VPC ๋คํธ์ํฌ๋ฅผ ํตํด ๋ด๋ถ ์ฃผ์๋ก๋ง ํธ๋ํฝ์ ์ ์กํ๋๋ก ๋น๊ณต๊ฐ IP์ ๋ํ ์์ฒญ๋ง VPC๋ก ๋ผ์ฐํ ํฉ๋๋ค.
- VPC ๋คํธ์ํฌ๋ฅผ ํตํด ๋ชจ๋ ์์๋ฐ์ด๋ ํธ๋ํฝ์ ์ ์กํ๋ ค๋ฉด ๋ชจ๋ ํธ๋ํฝ์ VPC๋ก ๋ผ์ฐํ ํฉ๋๋ค.
(์ ํ์ฌํญ) ์๋น์ค ๋๋ ์ฐ๊ฒฐํ ๋คํธ์ํฌ ํ๊ทธ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค. ๋คํธ์ํฌ ํ๊ทธ๋ ๋ฒ์ ์์ค์์ ์ง์ ๋ฉ๋๋ค. ๊ฐ ์๋น์ค ๋ฒ์ ์
network-tag-2
์ ๊ฐ์ ๋ค๋ฅธ ๋คํธ์ํฌ ํ๊ทธ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.(์ ํ์ฌํญ) ์์ ์ ์ฐ๊ฒฐํ ๋คํธ์ํฌ ํ๊ทธ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค. ์์ ์ ๊ฒฝ์ฐ ๋คํธ์ํฌ ํ๊ทธ๋ ์คํ ์์ค์์ ์ง์ ๋ฉ๋๋ค. ๊ฐ ์์ ์คํ์๋
network-tag-2
์ ๊ฐ์ ๋ค๋ฅธ ๋คํธ์ํฌ ํ๊ทธ๊ฐ ์์ ์ ์์ต๋๋ค.๋ง๋ค๊ธฐ ๋๋ ์ ๋ฐ์ดํธ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์์ ์ด VPC ๋คํธ์ํฌ์ ์๋์ง ํ์ธํ๋ ค๋ฉด ์์ ์ ํด๋ฆญํ ๋ค์ ๊ตฌ์ฑ ํญ์ ํด๋ฆญํฉ๋๋ค. ๋คํธ์ํฌ์ ์๋ธ๋ท์ VPC ์นด๋์ ๋์ด๋ฉ๋๋ค.
์ด์ ๋ฐฉํ๋ฒฝ ๊ท์น์์ ํ์ฉํ๋ ๋๋ก Cloud Run ์์ ์ ์คํํ๊ณ VPC ๋คํธ์ํฌ์ ๋ชจ๋ ๋ฆฌ์์ค๋ก ์์ ์ ์์ฒญ์ ์ ์กํ ์ ์์ต๋๋ค.
gcloud
Google Cloud CLI์์ ์ปค๋ฅํฐ ์์ด Cloud Run ์์ ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
gcloud
๊ตฌ์ฑ์์๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค.gcloud components update
ํ๋ก์ ํธ์ Compute Engine API๊ฐ ์ฌ์ฉ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.
gcloud services enable compute.googleapis.com
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ Cloud Run ์์ ์ ๋ง๋ญ๋๋ค.
gcloud run jobs create JOB_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --vpc-egress=EGRESS_SETTING \ --region=REGION
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
- JOB_NAME: Cloud Run ์์ ์ด๋ฆ
- IMAGE_URL: ์ปจํ
์ด๋ ์ด๋ฏธ์ง์ ๋ํ ์ฐธ์กฐ(์:
us-docker.pkg.dev/cloudrun/container/job:latest
) - (์ ํ์ฌํญ) NETWORK: VPC ๋คํธ์ํฌ ์ด๋ฆ. VPC ๋คํธ์ํฌ ๋๋ ์๋ธ๋ท์ ์ง์ ํ๊ฑฐ๋ ๋ ๋ค ์ง์ ํฉ๋๋ค. ๋คํธ์ํฌ๋ง ์ง์ ํ๋ฉด ์๋ธ๋ท์ ๋คํธ์ํฌ์ ๋์ผํ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.
- (์ ํ์ฌํญ) SUBNET: ์๋ธ๋ท ์ด๋ฆ. ์๋ธ๋ท์
/26
์ด์์ด์ด์ผ ํฉ๋๋ค. ์ง์ VPC ์ด๊ทธ๋ ์ค๋ IPv4 ๋ฒ์ RFC 1918, RFC 6598, ํด๋์ค E๋ฅผ ์ง์ํฉ๋๋ค. ๋์ผํ ์๋ธ๋ท์์ ์ฌ๋ฌ ์๋น์ค ๋๋ ์์ ์ ๋ฐฐํฌํ๊ฑฐ๋ ์คํํ ์ ์์ง๋ง ์๋ธ๋ท์ ๊ธฐ์กด ์ปค๋ฅํฐ์์ ๊ณต์ ํ ์ ์์ต๋๋ค. - (์ ํ์ฌํญ) NETWORK_TAG_NAMES: ์์
์ ์ฐ๊ฒฐํ ๋คํธ์ํฌ ํ๊ทธ์ ์ด๋ฆ. ์์
์ ๊ฒฝ์ฐ ๋คํธ์ํฌ ํ๊ทธ๋ ์คํ ์์ค์์ ์ง์ ๋ฉ๋๋ค. ๊ฐ ์์
์คํ์๋
network-tag-2
์ ๊ฐ์ ๋ค๋ฅธ ๋คํธ์ํฌ ํ๊ทธ๊ฐ ์์ ์ ์์ต๋๋ค. - EGRESS_SETTING: ์ด๊ทธ๋ ์ค ์ค์ ๊ฐ
all-traffic
: ๋ชจ๋ ์์๋ฐ์ด๋ ํธ๋ํฝ์ VPC ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์กprivate-ranges-only
: VPC ๋คํธ์ํฌ๋ฅผ ํตํด ๋ด๋ถ ์ฃผ์๋ก๋ง ํธ๋ํฝ์ ์ ์ก
- REGION: ์์ ์ ๋ฆฌ์
์์ ์ด VPC ๋คํธ์ํฌ์ ์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud run jobs describe JOB_NAME \ --region=REGION
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
JOB_NAME
: ์์ ์ด๋ฆREGION
: ์ด์ ๋จ๊ณ์์ ์ง์ ํ ์์ ์ ๋ฆฌ์
์ถ๋ ฅ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋คํธ์ํฌ์ ์๋ธ๋ท์ ์ด๋ฆ์ด ํฌํจ๋ฉ๋๋ค.
VPC network: Network: default Subnet: default
์ด์ ๋ฐฉํ๋ฒฝ ๊ท์น์์ ํ์ฉํ๋ ๋๋ก Cloud Run ์์ ์ ์คํํ๊ณ VPC ๋คํธ์ํฌ์ ๋ชจ๋ ๋ฆฌ์์ค๋ก ์์ ์ ์์ฒญ์ ์ ์กํ ์ ์์ต๋๋ค.
YAML
์ ์์ ์ ๋ง๋๋ ๊ฒฝ์ฐ์๋ ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค. ๊ธฐ์กด ์์ ์ ์ ๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ YAML ๊ตฌ์ฑ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
gcloud run jobs describe JOB_NAME --format export > job.yaml
๋ค์ ์์ฑ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME labels: cloud.googleapis.com/location: REGION spec: template: metadata: annotations: run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]' run.googleapis.com/vpc-access-egress: EGRESS_SETTING spec: containers: - image: IMAGE
๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
- JOB_NAME: Cloud Run ์์ ์ด๋ฆ ์์ ์ด๋ฆ์ 49์ ์ดํ์ฌ์ผ ํ๋ฉฐ ๋ฆฌ์ ๋ฐ ํ๋ก์ ํธ๋ณ๋ก ๊ณ ์ ํด์ผ ํฉ๋๋ค.
- REGION: Cloud Run ์์ ์ ๋ฆฌ์ . ์ด ๋ฆฌ์ ์ ์๋ธ๋ท์ ๋ฆฌ์ ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค.
- (์ ํ์ฌํญ) NETWORK: VPC ๋คํธ์ํฌ ์ด๋ฆ. VPC ๋คํธ์ํฌ ๋๋ ์๋ธ๋ท, ๋๋ ๋ ๋ค๋ฅผ ์ง์ ํฉ๋๋ค. ๋คํธ์ํฌ๋ง ์ง์ ํ๋ฉด ์๋ธ๋ท์ ๋คํธ์ํฌ์ ๋์ผํ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.
- (์ ํ์ฌํญ) SUBNET: ์๋ธ๋ท ์ด๋ฆ. ์๋ธ๋ท์
/26
์ด์์ด์ด์ผ ํฉ๋๋ค. ์ง์ VPC ์ด๊ทธ๋ ์ค๋ IPv4 ๋ฒ์ RFC 1918, RFC 6598, ํด๋์ค E๋ฅผ ์ง์ํฉ๋๋ค. ๋์ผํ ์๋ธ๋ท์์ ์ฌ๋ฌ ์๋น์ค ๋๋ ์์ ์ ๋ฐฐํฌํ๊ฑฐ๋ ์คํํ ์ ์์ง๋ง ์๋ธ๋ท์ ๊ธฐ์กด ์ปค๋ฅํฐ์์ ๊ณต์ ํ ์ ์์ต๋๋ค. - (์ ํ์ฌํญ) NETWORK_TAG_NAMES: ์์
์ ์ฐ๊ฒฐํ ๋คํธ์ํฌ ํ๊ทธ์ ์ด๋ฆ. ์์
์ ๊ฒฝ์ฐ ๋คํธ์ํฌ ํ๊ทธ๋ ์คํ ์์ค์์ ์ง์ ๋ฉ๋๋ค. ๊ฐ ์์
์คํ์๋
network-tag-2
์ ๊ฐ์ ๋ค๋ฅธ ๋คํธ์ํฌ ํ๊ทธ๊ฐ ์์ ์ ์์ต๋๋ค. - EGRESS_SETTING: ์ด๊ทธ๋ ์ค ์ค์ ๊ฐ
all-traffic
: ๋ชจ๋ ์์๋ฐ์ด๋ ํธ๋ํฝ์ VPC ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์กprivate-ranges-only
: VPC ๋คํธ์ํฌ๋ฅผ ํตํด ๋ด๋ถ ์ฃผ์๋ก๋ง ํธ๋ํฝ์ ์ ์ก
- IMAGE: ์์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ URL
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ๋ง๋ค๊ฑฐ๋ ์ ๋ฐ์ดํธํฉ๋๋ค.
gcloud run jobs replace job.yaml
๋ฌธ์ ํด๊ฒฐ
์๋น์ค ๊ณ์ ๊ถํ
์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค๋ Google Cloud ํ๋ก์ ํธ์์ ์์ ์ ์ํํ๋ ๋ฐ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์๋น์ค ์์ด์ ํธ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํฉ๋๋ค. ์ด ์๋น์ค ๊ณ์ ์ ์ด๋ฉ์ผ ์ฃผ์ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์๋น์ค ๊ณ์ ์๋ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์๋น์ค ์์ด์ ํธ ์ญํ (roles/vpcaccess.serviceAgent
)์ด ์์ต๋๋ค. ์ด ๊ณ์ ์ ๊ถํ์ ๋ณ๊ฒฝํ๋ฉด ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์์
์ด ์คํจํ ์ ์์ต๋๋ค.
๋คํธ์ํฌ ์ฑ๋ฅ ์ ํ ๋๋ ์ ํด CPU ์ฌ์ฉ๋ฅ ์ด ๋์
์์ฒ ๊ฐ์ ์ธ์คํด์ค์ ๋จ์ผ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ์ ํ๋๊ณ ์ ํด CPU ์ฌ์ฉ๋ฅ ์ด ๋์์ง ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ฌ๋ฌ ์ปค๋ฅํฐ ๊ฐ์ ์๋น์ค๋ฅผ ์ค๋ฉํ์ธ์.
์ปค์คํ MTU ๊ด๋ จ ๋ฌธ์
์ปค์คํ MTU์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด Cloud Run์ ๊ธฐ๋ณธ MTU ์ค์ ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ค๋ฅ
์๋น์ค ๊ณ์ ์ ์๋น์ค ์์ด์ ํธ ์ญํ ํ์ ์ค๋ฅ
๋ฆฌ์์ค ์๋น์ค ์ฌ์ฉ๋ ์ ํ
์กฐ์ง ์ ์ฑ
์ ์ฝ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ Cloud Deployment Manager(deploymentmanager.googleapis.com
)๋ฅผ ์ฐจ๋จํ๋ฉด ๋ค์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋ ์ ์์ต๋๋ค.
Serverless VPC Access service account (service-<PROJECT_NUMBER>@gcp-sa-vpcaccess.iam.gserviceaccount.com) needs Serverless VPC Access Service Agent role in the project.
์กฐ์ง ์ ์ฑ ์ ์ค์ ํ์ฌ ์ฐจ๋จ ๋ชฉ๋ก์์ Deployment Manager๋ฅผ ์ญ์ ํ๊ฑฐ๋ ํ์ฉ ๋ชฉ๋ก์ ์ถ๊ฐํฉ๋๋ค.
์ปค๋ฅํฐ ์์ฑ ์ค๋ฅ
์ปค๋ฅํฐ๋ฅผ ๋ง๋๋ ์ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋ค์์ ์๋ํด ๋ณด์ธ์.
- VPC ๋คํธ์ํฌ์ ๊ธฐ์กด IP ์ฃผ์ ์์ฝ๊ณผ ๊ฒน์น์ง ์๋ RFC 1918 ๋ด๋ถ IP ๋ฒ์๋ฅผ ์ง์ ํฉ๋๋ค.
- ID๊ฐ
serverless-vpc-access-images
์ธ ํ๋ก์ ํธ์์ Compute Engine VM ์ด๋ฏธ์ง ์ฌ์ฉ ๊ถํ์ ํ๋ก์ ํธ์ ๋ถ์ฌํฉ๋๋ค. ์ด์ ๋ฐ๋ผ ์กฐ์ง ์ ์ฑ ์ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด๋ฏธ์ง ์ก์ธ์ค ์ ์ฝ์กฐ๊ฑด ์ค์ ์ ์ฐธ์กฐํ์ธ์.
๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์
์ปค๋ฅํฐ๋ฅผ ์ง์ ํ์ง๋ง ์ฌ์ ํ VPC ๋คํธ์ํฌ์ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์๋ ๊ฒฝ์ฐ VPC ๋คํธ์ํฌ์ ์ปค๋ฅํฐ์ IP ์ฃผ์ ๋ฒ์์์ ์ธ๊ทธ๋ ์ค๋ฅผ ๊ฑฐ๋ถํ๋ ์ฐ์ ์์๊ฐ 1000 ์ดํ์ธ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์๋์ง ํ์ธํฉ๋๋ค.
๊ณต์ VPC ์๋น์ค ํ๋ก์ ํธ์์ ์ปค๋ฅํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์๋ฒ๋ฆฌ์ค ์ธํ๋ผ์์ ์ปค๋ฅํฐ๋ก์ ์ธ๊ทธ๋ ์ค๋ฅผ ํ์ฉํด์ผ ํฉ๋๋ค.
์ฐ๊ฒฐ ๊ฑฐ๋ถ ์ค๋ฅ
๋คํธ์ํฌ ์ฑ๋ฅ์ ์ ํ์ํค๋ connection refused
๋๋ connection timeout
์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์
์ ํธ์ถ ์ ๋ฐ์ ๊ฑธ์ณ ๋ฌด์ ํ์ผ๋ก ์ฐ๊ฒฐ์ด ์ฆ๊ฐํ ์ ์์ต๋๋ค. ์ธ์คํด์ค๋น ์ฌ์ฉ๋๋ ์ต๋ ์ฐ๊ฒฐ ์๋ฅผ ์ ํํ๋ ค๋ฉด ์ฐ๊ฒฐ ํ์ ์ง์ํ๋ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฐ๊ฒฐ ํ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์์ ์ค๋ฅ
VPC ๋คํธ์ํฌ ๋๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ญ์ ํ ๋ ๋ค์๊ณผ ๋น์ทํ ๋ฉ์์ง๊ฐ ํ์๋ ์ ์์ต๋๋ค. The resource
"aet-uscentral1-subnet--1-egrfw" was not found.
์ด ์ค๋ฅ ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ VPC ๋ฐฉํ๋ฒฝ ๊ท์น ๋ฌธ์์ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์์ ์ค๋ฅ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋จ๊ณ
- ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ๊ฐ์ฌ ๋ก๊น ์ผ๋ก ๊ด๋ฆฌ์ ํ๋์ ๋ชจ๋ํฐ๋งํ๊ธฐ
- VPC ์๋น์ค ์ ์ด๋ก ์๋น์ค ๊ฒฝ๊ณ๋ฅผ ๋ง๋ค์ด ๋ฆฌ์์ค์ ๋ฐ์ดํฐ ๋ณดํธํ๊ธฐ
- ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค์ ๊ด๋ จ๋ Identity and Access Management(IAM) ์ญํ ์์๋ณด๊ธฐ. ๊ฐ ์ญํ ๊ณผ ๊ด๋ จ๋ ๊ถํ ๋ชฉ๋ก์ IAM ๋ฌธ์์ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ญํ ์ ์ฐธ์กฐํ์ธ์.
- ๋ค์์์ Memorystore์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.