GitHub ํธ์คํธํ ์คํ๊ธฐ์ ๋ํ Azure ๊ฐ์ธ ๋คํธ์ํน ๊ตฌ์ฑ
Azure VNET์์ GitHub ํธ์คํธํ ์คํ๊ธฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์คํ๊ธฐ ๋คํธ์ํน ์ ์ฑ ์ ๋ชจ๋ ๊ถํ์ ์ ๊ณตํ๋ฉด์ CI/CD์ GitHub๊ด๋ฆฌ ์ธํ๋ผ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. Azure VNET์ ๋ํ ์์ธํ ๋ด์ฉ์ Azure ๋ฌธ์์ Azure Virtual Network๋?์ ์ฐธ์กฐํ์ธ์.
์ฌ๋ฌ VNET ์๋ธ๋ท์ GitHub์ ์ฐ๊ฒฐํ๊ณ ์คํ๊ธฐ ๊ทธ๋ฃน์ ํตํด ์คํ๊ธฐ์ ๋ํ ํ๋ผ์ด๋น ๋ฆฌ์์ค ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์คํ๊ธฐ ๊ทธ๋ฃน์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ ํฐ ์คํ๊ธฐ ์ก์ธ์ค ์ ์ด์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
Azure VNET ๋ด์์ GitHub ํธ์คํธ ์คํ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ ์์ ์ ํ ์ ์์ต๋๋ค.
- ์ธํฐ๋ท ํฌํธ๋ฅผ ์ด์ง ์๊ณ ์คํ๊ธฐ๋ฅผ Azure VNET ๋ด์ ๋ฆฌ์์ค์ ๋น๊ณต๊ฐ๋ก ์ฐ๊ฒฐํ๋ฉฐ, ์ฌ๊ธฐ์๋ Azure VNET์์ ์ก์ธ์คํ ์ ์๋ ์จ-ํ๋ ๋ฏธ์ค ๋ฆฌ์์ค๋ ํฌํจ๋ฉ๋๋ค.
- GitHub ํธ์คํธ ์คํ๊ธฐ์ ์ก์ธ์ค๋ฅผ ๋น๋กฏํด, ์์๋ฐ์ด๋ ๋คํธ์ํฌ ์ ์ฑ ์์ ์ ์ด๊ฐ ๊ฐ๋ฅํ ์ฐ๊ฒฐ์ ์ ํํฉ๋๋ค.
- GitHub ํธ์คํธ ์คํ๊ธฐ ๋คํธ์ํฌ ๋ก๊ทธ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์คํ๊ธฐ์์ ๋ชจ๋ ์ฐ๊ฒฐ์ ํ์ธํฉ๋๋ค.
Azure VNET์์ ๋ ํฐ ์คํ๊ธฐ ์ฌ์ฉ ์ ๋ณด
Azure VNET์์๋ 2-64 vCPU Ubuntu ๋ฐ Windows ์คํ๊ธฐ๊ฐ ์ง์๋ฉ๋๋ค. ์ด๋ฌํ ์คํ๊ธฐ ์ ํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ํ ์คํ๊ธฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
GitHub-ํธ์คํธํ ์คํ๊ธฐ์ฉ ๊ฐ์ธ ๋คํธ์ํน์ ๋ํ ์คํ๊ธฐ์ ๊ณ ์ IP ์ฃผ์๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ๋ํ ์คํ๊ธฐ๋ฅผ ์ํ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ธ ๋์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ํ ์คํ๊ธฐ์ ๋คํธ์ํน์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ํ ์คํ๊ธฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
๋คํธ์ํฌ ํต์ ์ ๋ณด
GitHub ๋คํธ์ํฌ์ VNET ๊ฐ์ ํต์ ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด GitHub ํธ์คํธ ์คํ๊ธฐ์ NIC(๋คํธ์ํฌ ์ธํฐํ์ด์ค ์นด๋)๊ฐ Azure VNET์ ๋ฐฐํฌ๋ฉ๋๋ค.
NIC๋ VNET ๋ด์ ์์ผ๋ฏ๋ก GitHub๋ ์ธ๋ฐ์ด๋ ์ฐ๊ฒฐ์ ์ฐจ๋จํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Azure ๊ฐ์ ๋จธ์ ์ ๋์ผํ VNET์ ์ธ๋ฐ์ด๋ ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Microsoft Learn์ AllowVNetInBound๋ฅผ ์ฐธ์กฐํ์ธ์. ์คํ๊ธฐ์์ ๋ชจ๋ ์ธ๋ฐ์ด๋ ์ฐ๊ฒฐ์ ๋ช
์์ ์ผ๋ก ์ฐจ๋จํ๋ ๊ฒ์ด ์ข์ต๋๋ค. GitHub๋ ์ด๋ฌํ ์ปดํจํฐ์ ๋ํ ์ธ๋ฐ์ด๋ ์ฐ๊ฒฐ์ด ํ์ํ์ง ์์ต๋๋ค.
NIC๋ฅผ ์ฌ์ฉํ๋ฉด Azure VM(๊ฐ์ ๋จธ์ )์์ ์ธํฐ๋ท, Azure ๋ฐ ์จ-ํ๋ ๋ฏธ์ค ๋ฆฌ์์ค์ ํต์ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ ํต์ ์ด ๋คํธ์ํฌ ๊ฒฝ๊ณ ๋ด์์ ๋น๊ณต๊ฐ๋ก ์ ์ง๋๊ณ VNET์ ์ ์ฉ๋ ๋คํธ์ํน ์ ์ฑ ๋ ์คํ๊ธฐ์ ์ ์ฉ๋ฉ๋๋ค. ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ Microsoft Learn์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ค์ ๋ณ๊ฒฝ์ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ ํญ๋ชฉ
2025๋ 11์๋ถํฐ GitHub Actions ์๋น์ค์์ ๋ง๋ NIC๋ ๋ ์ด์ Azure ๊ตฌ๋ ์ ํ์๋์ง ์์ต๋๋ค. ์์ผ๋ก NIC๋ ์ด์ ์๋น์ค ๊ตฌ๋ ์ ํ๋ก๋น์ ๋๊ณ ์๋ธ๋ท์์ IP ์ฃผ์๊ฐ ํ ๋น๋ฉ๋๋ค.

- GitHub Actions ์ํฌํ๋ก๊ฐ ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค.
- GitHub Actions ์๋น์ค๋ ์คํ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค.
- ์คํ๊ธฐ ์๋น์ค๋ GitHub ํธ์คํธ ์คํ๊ธฐ๊ธฐ์ NIC(๋คํธ์ํฌ ์ธํฐํ์ด์ค ์นด๋)๋ฅผ Azure VNET์ ๋ฐฐํฌํฉ๋๋ค.
- ์คํ๊ธฐ ์์ด์ ํธ๊ฐ ์ํฌํ๋ก ์์ ์ ์ ํํฉ๋๋ค. GitHub Actions ์๋น์ค๋ ์์ ์ ํ์ ๋๊ธฐํฉ๋๋ค.
- ์คํ๊ธฐ๋ GitHub Actions ์๋น์ค๋ก ๋ก๊ทธ๋ฅผ ๋ค์ ๋ณด๋ ๋๋ค.
- NIC๋ ์จ-ํ๋ ๋ฏธ์ค ๋ฆฌ์์ค์ ์ก์ธ์คํฉ๋๋ค.
์ง์๋๋ ์ง์ญ ์ ๋ณด
GitHub Actions ์๋น์ค๋ Azure์์ ์ ๊ณตํ๋ ๋ชจ๋ ์ง์ญ์ ํ์ ์งํฉ์ ์ง์ํฉ๋๋ค. GitHub Actions ์๋น์ค์ ์๋ธ๋ท ๊ฐ์ ํต์ ์ ์ฉ์ดํ๊ฒ ํ๋ ค๋ฉด ์๋ธ๋ท์ด ์ง์๋๋ ๋ค์ ์ง์ญ ์ค ํ๋์ ์์ด์ผ ํฉ๋๋ค.
์ฐธ๊ณ ํญ๋ชฉ
GHE.com์์ ๋ฐ์ดํฐ ๋ณด์กด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ง์๋๋ ์ง์ญ์ ๋ค๋ฆ ๋๋ค. GHE.com์ ๋คํธ์ํฌ ์ธ๋ถ ์ ๋ณด์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
๋ค์ ์ง์ญ์ GitHub.com์์ ์ง์๋ฉ๋๋ค.
AustraliaEastBrazilSouthCanadaCentralCanadaEastCentralUsEastAsiaEastUsEastUs2FranceCentralGermanyWestCentralJapanWestKoreaCentralNorthCentralUsNorthEuropeNorwayEastSouthCentralUsSoutheastAsiaSouthIndiaSwedenCentralSwitzerlandNorthUkSouthUkWestWestUsWestUs2WestUs3
Azure ํ๋ผ์ด๋น ๋คํธ์ํน์ ๋ค์ ์ง์ญ์์ GPU ์คํ๊ธฐ๋ฅผ ์ง์ํฉ๋๋ค.
EastUsNorthCentralUsSouthCentralUsWestUs
Azure ๊ฐ์ธ ๋คํธ์ํน์ ๋ค์ ์ง์ญ์์ arm64 ์คํ๊ธฐ๋ฅผ ์ง์ํฉ๋๋ค.
CentralUsEastUsEastUs2NorthCentralUsSouthCentralUsWestUsWestUs2WestUs3
์ํ๋ ์ง์ญ์ด ์ง์๋์ง ์๋ ๊ฒฝ์ฐ ์ด GitHub ์์์์ ์ ์ง์ญ ๊ฐ์ฉ์ฑ์ ๋ํ ์์ฒญ์ ์ ์ถํ์ธ์. ๋ํ ๊ธ๋ก๋ฒ ๊ฐ์ ๋คํธ์ํฌ ํผ์ด๋ง์ ์ฌ์ฉํ์ฌ Azure ์ง์ญ ๊ฐ์ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํ ์๋ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Azure ์ค๋ช ์์ ๊ฐ์ ๋คํธ์ํฌ ํผ์ด๋ง์ ์ฐธ์กฐํ์ธ์.
GitHub Actions ์๋น์ค ๊ถํ ์ ๋ณด
NIC๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌํ๊ณ ์๋ธ๋ท์ NIC๋ฅผ ์กฐ์ธํ๊ธฐ ์ํด GitHub Actions ์๋น์ค๋ Azure ๊ตฌ๋ ์์ ๋ค์ Azure RBAC(์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด) ๊ถํ์ ์ ์งํฉ๋๋ค. Azure ๋ฆฌ์์ค์ ์ธ๋ถํ๋ ์ก์ธ์ค ๊ด๋ฆฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ Azure ์ค๋ช ์์์ Azure RBAC๋ฅผ ์ฐธ์กฐํ์ธ์.
GitHub.Network/operations/readGitHub.Network/networkSettings/readGitHub.Network/networkSettings/writeGitHub.Network/networkSettings/deleteGitHub.Network/RegisteredSubscriptions/readMicrosoft.Network/locations/operations/readMicrosoft.Network/locations/operationResults/readMicrosoft.Network/locations/usages/readMicrosoft.Network/networkInterfaces/readMicrosoft.Network/networkInterfaces/writeMicrosoft.Network/networkInterfaces/deleteMicrosoft.Network/networkInterfaces/join/actionMicrosoft.Network/networkSecurityGroups/join/actionMicrosoft.Network/networkSecurityGroups/readMicrosoft.Network/publicIpAddresses/readMicrosoft.Network/publicIpAddresses/writeMicrosoft.Network/publicIPAddresses/join/actionMicrosoft.Network/routeTables/join/actionMicrosoft.Network/virtualNetworks/readMicrosoft.Network/virtualNetworks/subnets/join/actionMicrosoft.Network/virtualNetworks/subnets/readMicrosoft.Network/virtualNetworks/subnets/writeMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/deleteMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/readMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/writeMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/details/readMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/actionMicrosoft.Resources/subscriptions/resourceGroups/readMicrosoft.Resources/subscriptions/resourcegroups/deployments/readMicrosoft.Resources/subscriptions/resourcegroups/deployments/writeMicrosoft.Resources/subscriptions/resourcegroups/deployments/operations/readMicrosoft.Resources/deployments/readMicrosoft.Resources/deployments/writeMicrosoft.Resources/deployments/operationStatuses/read
๋ค์ ๊ถํ์ Azure ํ ๋ํธ์ ์๋ ๋ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ต๋๋ค. Azure ํ๋ผ์ด๋น ๋คํธ์ํน์ ๊ตฌ์ฑํ ํ Azure ํ ๋ํธ์ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์๋ฉ๋๋ค.
GitHub CPS Network ServiceID:85c49807-809d-4249-86e7-192762525474GitHub Actions APIID:4435c199-c3da-46b9-a61d-76de3f2c9f82
VNET์ ๋คํธ์ํฌ ์ ์ฑ ์ฌ์ฉ
GitHub ํธ์คํธ ์คํ๊ธฐ NIC๊ฐ Azure VNET์ ๋ฐฐํฌ๋๋ฏ๋ก VNET์ ์ ์ฉ๋ ๋คํธ์ํน ์ ์ฑ ๋ ์คํ๊ธฐ์ ์ ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด VNET์ด Azure ExpressRoute๋ฅผ ์ฌ์ฉํ์ฌ ์จ-ํ๋ ๋ฏธ์ค ๋ฆฌ์์ค(์: Artifactory)์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋๋ก ๊ตฌ์ฑ๋๊ฑฐ๋ ๋ค๋ฅธ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด VPN ํฐ๋์ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ, ํด๋น ์ก์ธ์ค ์ ์ฑ ๋ ์คํ๊ธฐ์๋ ์ ์ฉ๋ฉ๋๋ค. ๋ํ VNET์ NSG(๋คํธ์ํฌ ๋ณด์ ๊ทธ๋ฃน)์ ์ ์ฉ๋๋ ๋ชจ๋ ์์๋ฐ์ด๋ ๊ท์น๋ ์ ์ฉ๋๋ฏ๋ก ์คํ๊ธฐ์์ ์์๋ฐ์ด๋ ์ก์ธ์ค๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
VNET์ ๋ํ ๋คํธ์ํฌ ๋ก๊ทธ ๋ชจ๋ํฐ๋ง์ ์ฌ์ฉํ๋๋ก ์ค์ ํ ๊ฒฝ์ฐ ์คํ๊ธฐ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ชจ๋ํฐ๋งํ ์๋ ์์ต๋๋ค.
GitHub ํธ์คํ ์คํ๊ธฐ๋ ๋คํธ์ํฌ์์ ์ฌ์ฉ ์ค์ธ ์์๋ฐ์ด๋ ์ ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋คํธ์ํฌ์์ Azure์ ๊ธฐ๋ณธ ์์๋ฐ์ด๋ ์ก์ธ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ IP๋ ์์ธกํ ์ ์์ผ๋ฉฐ GitHub IP ํ์ฉ ๋ชฉ๋ก์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์์ ์ ์ธ ์์๋ฐ์ด๋ IP ์ฌ์ฉ์ ๋ํ ๊ถ์ฅ ์ฌํญ์ Azure ์ค๋ช ์์ ๊ธฐ๋ณธ ์์๋ฐ์ด๋ ์ก์ธ์ค๋ฅผ ์ฐธ์กฐํ์ธ์.
Azure VNET์์ GitHub ํธ์คํธ ์คํ๊ธฐ ์ฌ์ฉ
Azure VNET์์ GitHub ํธ์คํธํ ์คํ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Azure ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํ ๋ค์ GitHub์์ ๋คํธ์ํน ๊ตฌ์ฑ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ํฐํ๋ผ์ด์ฆ์ ์กฐ์ง์ ์ ๋คํธ์ํฌ ๊ตฌ์ฑ์ ๋ง๋ค ์ ์์ผ๋ฉฐ ์ํฐํ๋ผ์ด์ฆ ์์ค ๋คํธ์ํฌ ๊ตฌ์ฑ๋ง ์์ํ ์ ์์ต๋๋ค. ์ํฐํ๋ผ์ด์ฆ ์์ ์๋ ์ํฐํ๋ผ์ด์ฆ์ ์กฐ์ง์ด ์ํฐํ๋ผ์ด์ฆ์ ๋ ๋ฆฝ์ ์ธ ๋คํธ์ํฌ ๊ตฌ์ฑ์ ๋ง๋ค ์ ์๋๋ก ํ๋ ์ ์ฑ ์ ์ค์ ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ํฐํ๋ผ์ด์ฆ์ GitHub ํธ์คํธํ ์คํ๊ธฐ์ ๋ํ ๊ฐ์ธ ๋คํธ์ํน ๊ตฌ์ฑ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
Enterprise ์์ค์์ Azure ๊ฐ์ธ ๋คํธ์ํน์ ๊ตฌ์ฑํ๋ ์ ์ฐจ๋ ์ํฐํ๋ผ์ด์ฆ์ GitHub ํธ์คํธํ ์คํ๊ธฐ์ ๋ํ ๊ฐ์ธ ๋คํธ์ํน ๊ตฌ์ฑ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์กฐ์ง ์์ค์์ Azure ๊ฐ์ธ ๋คํธ์ํน์ ๊ตฌ์ฑํ๋ ์ ์ฐจ๋ ์กฐ์ง์์ GitHub ํธ์คํธํ ์คํ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ธ ๋คํธ์ํน ๊ตฌ์ฑ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.